Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bonmario - Giugno 30, 2023, 09:21:02 am

Titolo: Reperire "Build SO" completa di Windows 11
Inserito da: bonmario - Giugno 30, 2023, 09:21:02 am
Ciao a tutti,
su Windows 11, lanciando il comando Winver, mi restituisce queste informazioni: (build SO 22621.1848)

In Lazarus, usando questo codice
Codice: [Seleziona]
    var OSVersionInfo: TOSVersionInfo;
begin
    OSVersionInfo.dwOSVersionInfoSize := SizeOf(OSVersionInfo);
    GetVersionEx(OSVersionInfo);
end;

in OSVersionInfo.dwBuildNumber mi ritrovo correttamente "22621".
Io però avrei bisogno di conoscere quello che Winver mi mette dopo il punto, cioè 1848.

Avete idea di come si fa?

Grazie, Mario
Titolo: Re:Reperire "Build SO" completa di Windows 11
Inserito da: DragoRosso - Giugno 30, 2023, 09:57:46 am
Non c'è alcun modo.

Devi leggere il registro di sistema:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
Titolo: Re:Reperire "Build SO" completa di Windows 11
Inserito da: bonmario - Giugno 30, 2023, 10:18:26 am
Grazie, va benissimo anche quello !!!

Ciao, Mario
Titolo: Re:Reperire "Build SO" completa di Windows 11
Inserito da: DragoRosso - Giugno 30, 2023, 11:42:52 am
A titolo informativo, esiste il record avanzato informativo, ma comunque non riporta quella informazione. In realtà l'informazione dovrebbe essere riportata, ma penso che per un discorso retrò anni 90 (derivante da Win98) non sia mai stato attuato.

Queste sono le definizioni aggiuntive:

Codice: [Seleziona]
  type
  _OSVERSIONINFOEX = packed record
    dwOSVersionInfoSize: DWORD;
    dwMajorVersion: DWORD;
    dwMinorVersion: DWORD;
    dwBuildNumber: DWORD;
    dwPlatformId: DWORD;
    szCSDVersion: array[0..127] of WideChar;
    wServicePackMajor: WORD;
    wServicePackMinor: WORD;
    wSuiteMask: WORD;
    wProductType: BYTE;
    wReserved:BYTE;
  end;
TOSVersionInfoEx = _OSVERSIONINFOEX;

function GetVersionEx(var lpVersionInformation: TOSVersionInfoEx): BOOL; external 'kernel32' name 'GetVersionExW';

Ciao
Titolo: Re:Reperire "Build SO" completa di Windows 11
Inserito da: bonmario - Giugno 30, 2023, 12:54:00 pm
A titolo informativo, esiste il record avanzato informativo, ma comunque non riporta quella informazione. In realtà l'informazione dovrebbe essere riportata, ma penso che per un discorso retrò anni 90 (derivante da Win98) non sia mai stato attuato.

Dovrebbe essere quello a cui mi riferivo io nel primo post.

Ciao, Mario