Tombo in Windows 7 / Windows Server 2008 R2
Few years ago my friend showed me interesting application called Tombo. Author of Tombo describes it like this: TOMBO is yet another NotesTaker works on Windows/Windows CE (taken from here) . It means that it can be used to save notes and it runs on desktop windows as well as windows mobile/phone.
So I have been using Tombo for years and obviously I wanted to take with me to Windows 7 / Windows Server 2008 R2. Since it has been done in 2006 you might expect some issues with on newer OS. But that’s what I’m going to find out!
Okay what happens if I try to install the application by running the install.exe (after I have unzipped the installation package):
Clearly there is version check in place that fails :-( But Windows 7 is actually clever enough that it notices this issue and displays following dialog:
Program Compatibility Assistant would fix the install if I would click the Reinstall using recommended settings but this time I won’t do that.
Instead I’ll use Application Compatibility Toolkit (ACT) to fix the issue. Since Tombo is fairly obviously failing version check I’ll just apply version lie to it. I’ll create new application fix for Tombo installer:
Here I’m going to apply just Windows XP SP3 version lie (so Tombo thinks we’re running it in XP): Then I’ll just click Finish, Save and Install the database directly from the UI (or you can do it via command line using sdbinst).
Now I’m able to pass that version check. I’ll just click next with defaults and see this confirmation dialog (notice the destination folder):
So now I’m finally ready to run Tombo by clicking the icon:
At first run it will ask me to do the configuration:
If I set Root folder to some folder on my computer and press OK my settings are saved and everything works fine... Except if I take closer look at the Tombo folder:
I can notice the Compatibility files appearing to the Windows Explorer. If I now click that I’ll notice that windows has written Tombo setting to the VirtualStore:
In this case the path is C:\Users\username\AppData\Local\VirtualStore\Program Files\Tombo (more info in here). For demonstration purposes I’ll just delete that xml file and launch Tombo again. But before I’ll click OK in the configuration dialog I’ll switch to Task Manager and remove UAC Virtualization selection for Tombo (and select Change virtualization from the confirmation dialog):
If I now try to set Root folder and click OK I’ll get this error:
But Tombo is still running after that error message. If I now exit the main application it gives me another message:
So it tries to write it’s settings to the Program files but is unable to do so and configuration changes are lost. Tombo would have worked with virtualization but when I turned it of I started seeing some error messages.
I can actually use tools like LUA Buglight or Standard User Analyzer (SUA) (which ships with ACT) to verify this behavior. However this time I won’t details of those application. But here is one screenshot of SUA after it has been used to run Tombo:
SUA displays fair amount of information related to that issue. Now we’re ready to do something for it if we don’t like the virtualstore solution.
I could solve this issue in many ways. I could simple copy the Tombo files to different folder (where standard user would have read write rights) and run it from there. But I want to solve this by redirecting file operations from program files to my desktop (as an example).
Here comes Compatibility Administrator back in to the game. Let’s create new application fix:
Then I click Next and select None for the operating system mode and then click again next.
Now I need to configure CorrectFilePath fix using parameters button:
So basically with following command I redirected the file to my desktop (or more precisely to the desktop of the user who is using Tombo):
NOTE: It’s important that you place the quotes correctly so that redirection works.
When I have Saved and Installed the fix I’m ready to enjoy the redirection of the configuration file to the desktop.
I just wanted to demonstrate few steps that you could take when trying out older applications compatibility on Windows 7 / Windows Server 2008 R2. I’m probably going to get back to this subject later so if you’re interested then stay tuned for more post in this category.
Anyways... Happy hacking!