![]() |
falsche Windows Version wird angezeigt
manifest ist eingebunden
Delphi-Quellcode:
ausgelesen wird immer "Windows Server 2016"..... var OSVersionInfo: TOSVersionInfoEx; ..... if (OsVersionInfo.dwMajorVersion = 10) and (OsVersionInfo.dwMinorVersion = 0) then begin if (OsVersionInfo.wProductType = VER_NT_WORKSTATION) then begin VersionString := 'Windows 10'; VersionTyp := wvWin10; end else begin VersionString := 'Windows Server 2016'; //Windows Server Technical Preview VersionTyp := wvWinServer2016; end; end; habe aber die Windows 10 Pro Auszug ![]()
Code:
Windows 10 10.0* 10 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server Technical Preview 10.0* 10 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION Windows 8.1 6.3* 6 3 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION Windows Server 2012 R2 6.3* 6 3 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION Windows 8 6.2 6 2 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION Windows Server 2012 6.2 6 2 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION ..... * For applications that have been manifested for Windows 8.1 or Windows 10. Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). To manifest your applications for Windows 8.1 or Windows 10, refer to Targeting your application for Windows. hab ich irgendwas übersehen? Edit:
Delphi-Quellcode:
liefert im übrigen 0 zurück insofern währe der Code ok nur Zeigt mein Windows OsVersionInfo.wProductType falsch an
OsVersionInfo.wProductType
|
AW: falsche Windows Version wird angezeigt
Hallo,
bitte das Manifest mal anhängen. Heiko |
AW: falsche Windows Version wird angezeigt
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" name="Windows10Tools" type="*"/> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> </application> </compatibility> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> </assembly> |
AW: falsche Windows Version wird angezeigt
|
AW: falsche Windows Version wird angezeigt
Liste der Anhänge anzeigen (Anzahl: 1)
Hab da grad nix gesehen was mir weiterhilft oder hab ich was übersehen
|
AW: falsche Windows Version wird angezeigt
#13 bzw. dessen Manifest-Link auf
![]() möglicherweise? |
AW: falsche Windows Version wird angezeigt
Das Manifest spielt hier keine Rolle bzw. der Fehler ist nicht dort zu suchen, denn es wird ja korrekt in den Abschnitt mit 10.0 (Major.Minor) gegangen; zumal die Compatibility ID für die Workstation und Server-Editionen immer identisch sind. Der Product Type ist falsch. Daher wäre wichtig zu wissen, wie denn die Variable OSVersionInfo gefüllt wird.
Ergänzung: Dass wProductType = 0 ist, kann schonmal nicht sein, denn VER_NT_WORKSTATION ist 1 (und die anderen Werte sind 2 und 3). Das erklärt aber zumindest, warum dein Code das zurückgibt. MfG Dalai |
AW: falsche Windows Version wird angezeigt
Ja aber weil wProductType = 0 bzw. nicht VER_NT_WORKSTATION ist, springt das Programm ja in die Server Schleife
var OSVersionInfo: TOSVersionInfoEx;
Delphi-Quellcode:
if (OsVersionInfo.dwMajorVersion = 10) and (OsVersionInfo.dwMinorVersion = 0) then
begin if (OsVersionInfo.wProductType = VER_NT_WORKSTATION) then begin VersionString := 'Windows 10.0'; VersionTyp := wvWin10; end else begin VersionString := 'Windows Server 2016'; VersionTyp := wvWinServer2016; end; Showmessage(inttostr(OsVersionInfo.wProductType)); //liefert 0 end; if (OsVersionInfo.wSuiteMask and VER_SUITE_PERSONAL) = VER_SUITE_PERSONAL then VersionString := VersionString + ' Home Edition' else VersionString := VersionString + ' Professional'; end; ändere ich if (OsVersionInfo.wProductType = VER_NT_WORKSTATION) then in if (OsVersionInfo.wProductType <> VER_NT_WORKSTATION) then wird Windows 10 erkannt was ja aber falsch ist laut MSDN OsVersionInfo.dwMajorVersion, OsVersionInfo.dwMinorVersion, OsVersionInfo.szCSDVersion, OsVersionInfo.dwBuildNumber und OsVersionInfo.wSuiteMask wird also richtig ausgelesen warum dann OsVersionInfo.wProductType nicht |
AW: falsche Windows Version wird angezeigt
Zitat:
Zitat:
Zitat:
MfG Dalai |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz