Zine.net online

Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc
w Szukaj

arkadiusz.wasniewski

Kiedy nie działa tryb zgodności w Windows 7

W razie problemów z działaniem aplikacji w systemie Windows 7 można we właściwościach danego programu (Properties –> Comaptibility) włączyć tryb zgodności (Compatibility mode) poprzez wybranie wcześniejszej wersji systemu operacyjnego. Do dyspozycji mamy:

  • Windows 95;
  • Windows 98 / Windows Me;
  • Windows NT 4.0 z Service Pack 5;
  • Windows 2000;
  • Windows XP z Service Pack w wersji 2 lub 3;
  • Windows Server 2003 z Service Pack 1;
  • Windows Vista;
  • Windows Vista z Service Pack 1 lub 2.

Rozwiązanie to jednak nie zadziała poprawnie jeśli aplikacja samodzielnie sprawdza wersję systemu i od tego uzależnia swoją dalszą pracę. Weźmy dla przykładu poniższy kod:

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]

    public class OSVERSIONINFO

    {

        public int OSVersionInfoSize;

        public int MajorVersion;

        public int MinorVersion;

        public int BuildNumber;

        public int PlatformId;

        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]

        public string CSDVersion;

    }

 

    class Program

    {

        [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]

        public static extern bool GetVersionEx([In, Out] OSVERSIONINFO ver);

 

        static void Main()

        {

            var structure = new OSVERSIONINFO();

            structure.OSVersionInfoSize = Marshal.SizeOf(structure);

            GetVersionEx(structure);

            Console.WriteLine(string.Format("Wersja systemu: {0}.{1}",

                structure.MajorVersion,

                structure.MinorVersion));

            Console.ReadKey();

        }

    }

Jaki system nie wybierzemy w trybie zgodności, dla Windows 7 RC wynik zawsze będzie identyczny: Wersja systemu: 6.1 (podobnie zresztą jak dla Windows Server 2008 R2).

PS. Z powyższych przyczyn w Windows 7 póki co nie działa między innymi WD Anywhere Backup. Jest to więc kwestia aplikacji a nie problemów z samym systemem operacyjnym.

Opublikowane 20 maja 2009 10:48 przez arkadiusz.wasniewski
Filed under: , ,

Komentarze:

 

dotnetomaniak.pl said:

Dziękujemy za publikację - Trackback z dotnetomaniak.pl

maja 20, 2009 19:13
 

luxlucas said:

Użyteczne info, serdeczne dzięki!

Nie mogłem zainstalować Simplorera, bo wyskakiwał komunikat typu "system is not supported". Po włączeniu trybu zgodności poszło jak z płatka

listopada 16, 2009 19:18
Komentarze anonimowe wyłączone
W oparciu o Community Server (Personal Edition), Telligent Systems