views:

1352

answers:

2

are there any specific issues that should be tested for Win7 compatibility when APP works well with Vista.

notes: my app uses Systray and has .Manifest file.

+3  A: 

If the app runs well in Vista it can be expected to do the same in Windows 7. If your manifest file lacks a Compatibility section, then your application will run in Vista compatibility mode by default, as explained here.*

I assume that by "systray" you are referring to the Notification Area. User control of the Notification Area has been enhanced in Windows 7, and your users may need to enable your application's icon to show there. The MSDN documentation suggests some considerations for use of the Notification Area - that it's really for short-term notifications, especially for apps that have no desktop presence. For example, it's not intended for quick-launch.

There's no reason to expect Delphi-related issues in this context.

*EDIT: From the MSDN article (link with asterisk above):

Applications without a Compatibility section in their manifest will receive Windows Vista behavior by default on Windows 7 and future Windows versions. Note that Windows XP and Windows Vista ignore this manifest section and it has no impact on them.

The following Windows components provide divergent behavior based on the Compatibility section in Windows 7:

  • RPC Default Thread Pool
  • DirectDraw Lock
  • DirectDraw Bit Block Transfer (Blt) to Primary without Clipping Window
  • GetOverlappedResult API
  • Program Compatibility Assistant (PCA)

Details for each behavior (Vista vs. Win7) can be found in that article.

Argalatyr
I tested both with COMPATIBILITY block and without it, no difference at all (both working just fine). Is there any reason to add compatibility block from user point of view?
Tom
OK, have added some specifics, but full details are in the linked MSDN article.
Argalatyr
+3  A: 

The short answer seems to be that most applications that run without major problems on Windows Vista will work on Windows 7. There is some good general Win 7 App Compatibility advice on the CIOL network which you most need to be aware of if you're moving from Windows XP to Windows Vista but the general summary is:

  • Do not assume a folder location on Windows - Folders such as Program Files, My Music etc can change paths between versions of Windows. The My Documents folder for example has changed location in every version of Windows from XP onwards.
  • Use the correct APIs when saving information to the registry or folders - You may fall afoul of Windows UAC if you do not use the "official" API. Vista and Windows 7 are far less forgiving than XP when it comes to saving application data depending upon the context of it (current user, all users, application data etc).
  • Abide by the principles of UAC - The Windows UAC feature has been toned down since Windows Vista for Windows 7 but you should still write your application according to the guidance given such as designing and testing it to run without admin rights unless absolutely necessary.

In addition to these hints: given your application's use of the SysTray and you may wish to check out the alpha of the "Windows 7 Controls for Delphi" from Daniel Wischnewski. He has also written 1 or 2 posts demonstrating their use which give you a feel for some of the new visual differences in this particular area. There have also been a few Windows 7 / 64 Bit Specific errors reported for Delphi 2009 which you might encounter during development and testing of your app.

jamiei
The listed admonitions apply to Vista as well as Windows 7, so they don't specifically answer the question. Good advice, in any case. Similarly, the errors mentioned are related to the D2009 **IDE**, not compiled programs (the latter being the subject of the question).
Argalatyr
jamiei
also Codesign if at all possible. It will avoid some uglier dialogs when the user first runs your application.
skamradt
+1 for Codesign (skamradt) - this will be increasingly important.
Argalatyr