Entwickler-Ecke
Windows API - Windows Version ermitteln inkl. Windows 7 x86 & x64
bummi - Do 19.04.12 18:14
vielleicht hilft der Anhang
kandesbunzler - Do 19.04.12 22:40
Danke bummi.
Ich versuche gerade, die Unit uGetWindowsVersion einzubinden, erhalte aber beim Compilieren die Fehlermeldung: "The data area passed to a system call is too small". Der Debugger bleibt in Zeile 143 stehen (raise Exception.Create(SysErrorMessage(getLastError)).
Was könnte hier fehlschlagen?
Gruß,
kandesbunzler.
PS: Ergänzungen/Alternativen sind willkommen!
Delete - Fr 20.04.12 00:33
szCSDVersion: array[0..127] of WideChar;
ändern in
szCSDVersion: array[0..127] of AnsiChar;
kandesbunzler - Fr 20.04.12 06:44
Guten Morgen,
es hat prima geklappt, danke an Euch.
Gruß
kandesbunzler.
Delphi-Laie - Fr 20.04.12 15:00
Es funktioniert im Sinne einer sinnvollen Ausgabe durchaus.
Allerdings stört / stößt sich Delphi beim Compilieren doch noch an etwas: "[Warnung] uGetWindowsVersion.pas(253): Variable 'GetProductInfo' wurde wahrscheinlich nicht Initialisiert".
Delete - Fr 20.04.12 19:10
//GetProductInfo
statt: @GetProductInfo := GetProcAddress(LibraryHandle, 'GetProductInfo');
Delphi-Quelltext
1: 2: 3: 4:
| initialization @GetProductInfo := GetProcAddress(LibraryHandle('KERNEL32.DLL'),'GetProductInfo');
End. |
Delphi-Laie - Sa 21.04.12 11:51
Die meinerseits monierte Warnung lag (nur) daran, daß in besagter Unit um die Zeile 250:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| LibraryHandle := LoadLibrary('kernel32.dll'); if LibraryHandle <> 0 then begin @GetProductInfo := GetProcAddress(LibraryHandle, 'GetProductInfo'); if Assigned(GetProductInfo) then begin GetProductInfo(osvi.dwMajorVersion, osvi.dwMinorVersion, 0, 0, ProductType); end; end;
GetProductInfo(osvi.dwMajorVersion, osvi.dwMinorVersion, 0, 0, ProductType); |
GetProductInfo irrtümlich noch einmal aufgerufen wurde.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!