線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1964
推到 Plurk!
推到 Facebook!

如何判斷電腦執行的Windows版本?

尚未結案
delphi
初階會員


發表:52
回覆:64
積分:38
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-14 14:38:28 IP:61.63.xxx.xxx 未訂閱
function WinSystem : String; var      OSVersion : TOSVersionInfo;      WinVersion: String;      OrdHigh   : DWORD;      OrdLow    : DWORD; begin      OSVersion.dwOSVersionInfoSize := sizeof(OSVersion);      GetVersionEx(OSVersion);      OrdHigh := (OSVersion.dwBuildNumber shr 24) and $FF;      OrdLow := (OSVersion.dwBuildNumber shr 16) and $FF; if OSVersion.dwPlatformId=VER_PLATFORM_WIN32_NT then    begin       if (OrdHigh>=5) then        begin                 WinVersion := 'Windows 2000'            end else           begin                WinVersion := 'Windows NT'             end;        end;  if OSVersion.dwPlatformId=VER_PLATFORM_WIN32_WINDOWS then     begin            if (OrdLow>=90) or (OrdHigh>=5) then             begin                WinVersion := 'Windows Millennium'             end;           if (OrdLow>=10) and (OrdLow<90) then begin WinVersion := 'Windows 98' end; if (OrdLow<10) then begin WinVersion := 'Windows 95' end; if (OrdLow<5) then begin WinVersion := 'Windows 3.1/ WfWg' end; end; Result := WinVersion; end; 這個只能判斷nt,就算在2000ㄉ版本下也是判斷成nt,請問如何判斷nt,2000,xp 謝謝各位先進 ^o^
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-14 14:48:21 IP:147.8.xxx.xxx 未訂閱
If you're using Delphi 7, take a look at SysUtils.pas for the following:      Win32Platform   Win32MajorVersion   Win32MinorVersion   Win32BuildNumber    function CheckWin32Version(AMajor: Integer; AMinor: Integer = 0): Boolean;    On my 2000: Win32MajorVersion=5 
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-14 15:05:34 IP:211.76.xxx.xxx 未訂閱
Hi Delphi 兄您好: 試試這段 < class="code"> 轉貼 type TWin32Version = (wvUnknown, wvWin95, wvWin98, wvWinNT, wvWin2000); function GetWinVersion: TWin32Version; begin Result := wvUnknown; if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then if (Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and (Win32MinorVersion > 0)) then Result := wvWin98 else Result := wvWin95 else if Win32MajorVersion <= 4 then Result := wvWinNT else if Win32MajorVersion = 5 then Result := wvWin2000 end; 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
delphi
初階會員


發表:52
回覆:64
積分:38
註冊:2002-05-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-14 15:23:51 IP:61.63.xxx.xxx 未訂閱
還是一樣但謝謝你 ^o^
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-14 16:48:58 IP:61.221.xxx.xxx 未訂閱
delphi你好: 我知道有api可以叫出電腦的說明,就像在我的電腦上按右鍵-->內容 還可以抓出版本資訊,只是我忘記了 請你自己先找一下吧!!!
------
======================
昏睡~
不昏睡~
不由昏睡~
banson1716
高階會員


發表:55
回覆:182
積分:167
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-19 01:41:10 IP:61.223.xxx.xxx 未訂閱
Windows類型和版本 從註冊表中得到目前操作系統是Windows95或是WindowsNT,並得到其版本,首先 要在USES段加入下面的內容 uses Registry, ComCtrls, ExtCtrls; 然後才在需要的地方加入下面這句 var MyVersionInfo: TOSVersionInfo; MyReg: TRegistry; IsNT: Boolean; begin MyReg := TRegistry.Create; MyReg.RootKey := HKEY_LOCAL_MACHINE; IsNT := False; MyVersionInfo.dwOSVersionInfoSize := sizeof(TOSVERSIONINFO); if GetVersionEx(MyVersionInfo) then Label1.Caption := IntToStr(MyVersionInfo.dwPlatformId) else Label1.Caption := 'false'; if MyVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then Label1.Caption := 'Windows 95'; if MyVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then begin IsNT := True; Label1.Caption := 'Windows NT'; end; try if IsNT then if not MyReg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion', FALSE) then else Label2.Caption := MyReg.ReadString('CurrentVersion') else if not MyReg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion', FALSE) then else Label2.Caption := MyReg.ReadString('VersionNumber'); finally end; // try..finally end;
系統時間:2024-05-04 3:45:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!