Niekompatybilne z win XP

0

Używam procedury:

q.dwOSVersionInfoSize := SizeOf(q);
GetVersionEx(q);
if (q.dwMajorVersion = 5) and (q.dwMinorVersion = 1) then
MessageDlg('Brak kompatybilności z Windows XP !!!', mtERROR, [mbOK], 0);
application.terminate;

Która wylancza mozliwośc uruchamiania sie programu na Windows XP jednak mimo iż działa na Xp (pokazuje odpowiedni komunikat) to na windowsie 2k po skompilowaniu pokazuje komunikat:
"Acces Violation at adress 77f83147 in module 'ntdll.dll'. Read of adress 0000005dc"
Co lepsze program sie kompiluje normalnie a dopiero przy uruchamianiu pokazuje sie w/w błąd.
Jest on spowodowany na pewno ta procedura ponieważ kiedy ja sklamruje wszytsko wraca do normy tyle ze na XP sie tez uruchamia.

Czy wie ktos moze czym moze byc to spowodowane ??

Za pomoc z góry dziekuje.

0

q.dwOSVersionInfoSize := SizeOf(q);
GetVersionEx(q);
if not ((q.dwMajorVersion = 5) and (q.dwMinorVersion = 1)) then
begin
MessageDlg('Brak kompatybilności z Windows XP !', mtERROR, [mbOK], 0);
application.terminate;
end;

Teraz zobacz :)

0

Program uruchomi się na windzie 2000, bo sprawdzasz tylko, czy jest uruchomiony na windows NT 5.1, czyli XP. 2000 ma natomiast oznaczenie NT 5.0, dlatego nie ma komunikatu. A błąd wynika pewnie z kodu, który nie działa na wszystkich NT, a który masz potem.

0

Droyobates, mimo ze kod sie prawie nie zmienił na moim windowsie 2k tez program "nie działa" wykrywa go jako XP :) Czy to ma moze jakis zwiazek z dość nowymi uaktualnieniami ??

1 użytkowników online, w tym zalogowanych: 0, gości: 1