AW: Win7 Apps don't launch - just nothing ?
Björnke von Gierke
bvg at mac.com
Mon Feb 15 07:51:11 EST 2010
On Windows 7 there's three build-in things that might prohibit your app from running (that I know about):
Windows 7 expects application to be certified, and depending on domain and security settings, might disallow an app from running if it isn't (note that _all_ 64 bit apps need to be certified, but rev is 32 bit). If that happens, there might be a dialog saying that the administrator has denied running the app, or disallowed the installation to run (in case of a .msi).
The UAC might interfere. UAC limits the things an application can do, including writing to non-user folders (application folders, c:, etc.), accessing or changing the registry, network or serial port access and certain hardware interfaces (like cd drives). Not all UAC settings result in all these things to be blocked, but any number of them _might_ be disallowed. Sometimes the screen goes dark and a dialog comes up to ask the user about giving administration privileges to the app. Again some settings might lead to a silent blocking of your app.
Finally, there's possibly a problem with legacy support. Since windows XP, every windows iteration has removed more legacy support, and instead relegated those to settings that have to be set by the user. This is to dissuade new apps from using legacy API's. If this is the problem, a silent fail is _always_ happening.
There are several third party applications that can and will make your app not work:
- Antivirus applications will block shell and VB access.
- Firewalls will block applications that use the system sockets
- Anti-copy protection can block various things, and are often included silently with games and specialised small market apps (like medical apps or CAD software).
- Malicious software like trojans, worms and viruses often block apps that look like antivirus installers
So what can one do to test what actually is the problem?
If your rev app does a lot of things on startup or (pre)openstack/card/etc, then you might want to try running a blank stack application, or a test with those handlers only being called on button presses (to see which doesn't run). That way you get an idea wether it's a specific thing within your app makes it fail.
Make sure that your app does not try to write or change files on the disk when it starts. Since Vista, Windows is very picky about where you're allowed to write files, and trying to write anywhere besides the user folders can result in some strange things. Problems include the file not being written (silent fail), your app crashing, or the file being written but not readable (because it's "virtualised" and actually somewhere else in the filesystem).
Try to run your app as administrator: right click the app, choose "information", and select the "run as administrator" checkmark there. (a little shield will be shown on the icon of the app now). An UAC dialog should come up when you start the app (say yes or it won't run).
Try if your app needs legacy mode: In the same place where you set an app to run in administration mode, you can select various legacy settings (about 20). You need to choose one, then try to start the app. I suggest to test at least win95, win98, win2000 and XPsp2.
Disable internet, then disable all third party firewall, antispyware and antivirus software. If your app runs now, you might need to add it to a whitelist in one of your security softwares.
If you do not have antivirus software, install one and make a complete system check (might take hours).
I'm sure there's more to check, but these are the windows specific gotchas that I know about.
Why do I know them? Because I like old games, and getting win95 games to run on win7-64bit tells you a lot about how Microsoft exchanged backwards compatibility with security. Even older games do not run in legacy mode, so it's DOS-Box for those (not applicable to Rev).
Funny side note: because the 32 bit app-folder has "(32-bit)" appended to it's name, legacy apps with hard coded paths only work when moved to the 64 bit app folder, because that one has the same name as on older versions. Obviously 64 bit comments do not apply to 32 bit versions of windows.
official ChatRev page:
Chat with other RunRev developers:
go stack URL "http://bjoernke.com/chatrev/chatrev1.3b3.rev"
More information about the Use-livecode