Is there a way to copy the file paths of ALL active windows' opened files? (for saving and restoring your Windows session across a restart)

There is a program I know of called Twinsplay - Professional Edition, which among its other functions, can 'session save' your current open files (i.e. user-opened files - whatever is actively displayed in the taskbar), and then restore them at any other time.

So you can restore all your opened files after say a windows restart - incredibly useful if you have to apply an update and have a bazillion things open. (See an original discussion about this here).

I'm having trouble finding a tool, or commands to put in a batch, that can isolate Twinsplay's functionality of - I suppose - noting down the paths of, and the program's that are running, all current user-opened files.

Just using Twinsplay itself would seemingly be fine to use - and I wouldn't have to ask this question. But there's two caveats with Twinsplay:

  1. It interferes with your browsers' existing session-save functionality, reading your tabs like open files and storing a second copy of them itself on top of your browser's session already, meaning you have two copies of your tabs (and they're all messed out of order too!) when restoring your browser again.

  2. The way it restores your session's files is to open them all simultaneously. there's problems with that - say I have 4 files open in Adobe InDesign, and I have a missing image link in the first document (and I don't fix that broken link when closing my session). Upon restore, InDesign will show a dialog box saying 'missing link in this document', and so prevent the other 3 simultaneously-loading docs from opening up. Twinsplay offers no saved session 'file list' anywhere so you can't even check whether all files successfully opened, you'll just forget about something you were working on if you're not careful. The only safe method is to have control at opening files one at a time, or with delays between them - easy to do in batch.

I have found ONE would-be tool, NirSoft OpenedFilesView, but that one displays EVERY open file in the system, meaning hundreds of system process files and so forth. And also it doesn't actually accurately list EVERY user-opened file in the way that the user sees it: e.g. rtf files open in wordpad did not show up as the rtf files that they are, it was in some weird system way that's useless for user-opening later.

Thanks for your help.

EDIT:

Further thoughts and development after very helpful comment by Daniel Beck on meta:

Ok I downloaded Eclipse and a sample cpp file and put your claim Daniel to the test, and you're right. Twinsplay does list Eclipse as a window it can save - but then, it doesn't even load the program up at all when you hit 'restore'. And Nirsoft doesn't list the cpp file in question at all either.

So that means, there probably is no way to do it in code unless, as you said, Eclipse had a way of explicitly telling the OS or you specifically custom-read Eclipse in a way that you could successfully read what files are open inside it.

It sounds like there's no absolute solution. Though I suppose Eclipse by its very nature seems to keep its opened files across program sessions anyway, so you'd only have to note down eclipse.exe (without a 'file open' append), like firefox.exe or chrome etc.

But I have more bad news anyway - I tried restoring outlook with twinsplay for the first time (three windows in total, an inbox window and two contact windows) and in trying restoring outlook there was a windows error: 'Cannot start microsoft outlook. The command line argument is not valid. Verify the switch you are using'.

I THINK Twinsplay's method is file-opening-based and if it doesn't correctly note down a file/parameter in its command lines appended to that window's program path for restore, then things go wrong. Twinsplay clearly uses a crude & basic method of recording which DOES work for most programs but NOT for several others, and there's millions of programs out there. So better to just save my sessions manually I think.

I mean, sure, you could train a custom-built tool to only record outlook.exe with the appropriate switches when necessary, or do it this or that a way for Eclipse, but there's millions of programs out there. So I think there would be no automatic universal solution for this....at all.

Any insight? I'm still interested in finding any time-saving shortcuts in the scenario of saving your windows session and then restoring it upon restart. So I need to know how twinsplay records the 1. file path of the program, and 2. file path of the opened file where applicable, of ALL windows listed in task manager's Applications tab. This is what I'm after, as it would save time not having to manually copy all file paths one by one. I'd like to discover this code know and turn it into my own batch/exe if I have to compile one. And I can manually edit anything which I know to be wrong like however it notes down outlook's parameters.

Thanks


There's a basic Application that does some of what you want (not everything), it's called "Cache My Work" with a tag line of "reopen your Apps after reboot".

It's up on CodePlex: http://cachemywork.codeplex.com/

There's a basic walk through of the capabilities on YouTube and a LifeHacker post too.