نمایش نتایج 1 تا 5 از 5

نام تاپیک: در کدام ویندوز هستیم ویندوز 98 یا XP

  1. #1
    کاربر دائمی آواتار soroush_vs
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    شیراز
    سن
    38
    پست
    457

    Thumbs down در کدام ویندوز هستیم ویندوز 98 یا XP

    چطوری میشه فهخمید که الان برنامه در ویندوز 98 یا Xp اجرا شده؟
    لطفا اگه کسی اطلاعی داره بگه صواب داره!
    آخرین ویرایش به وسیله soroush_vs : دوشنبه 22 اسفند 1384 در 22:35 عصر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    ایران
    پست
    136
    دوست عزیز این سوال قبلا پاسخ داده شده.
    با این حال چون کد نسبتا جامعی بدست اوردم برای استفاده شما و دیگر دوستان در اینجا قرار میدهم:


    const
    { operating system (OS)constants }
    cOsUnknown = -1;
    cOsWin95 = 0;
    cOsWin98 = 1;
    cOsWin98SE = 2;
    cOsWinME = 3;
    cOsWinNT = 4;
    cOsWin2000 = 5;
    cOsXP = 6;


    function GetOperatingSystem: Integer;
    var
    osVerInfo: TOSVersionInfo;
    majorVer, minorVer: Integer;
    begin
    Result := cOsUnknown;
    { set operating system type flag }
    osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
    if GetVersionEx(osVerInfo) then
    begin
    majorVer := osVerInfo.dwMajorVersion;
    minorVer := osVerInfo.dwMinorVersion;
    case osVerInfo.dwPlatformId of
    VER_PLATFORM_WIN32_NT: { Windows NT/2000 }
    begin
    if majorVer <= 4 then
    Result := cOsWinNT
    else if (majorVer = 5) and (minorVer = 0) then
    Result := cOsWin2000
    else if (majorVer = 5) and (minorVer = 1) then
    Result := cOsXP
    else
    Result := cOsUnknown;
    end;
    VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME }
    begin
    if (majorVer = 4) and (minorVer = 0) then
    Result := cOsWin95
    else if (majorVer = 4) and (minorVer = 10) then
    begin
    if osVerInfo.szCSDVersion[1] = 'A' then
    Result := cOsWin98SE
    else
    Result := cOsWin98;
    end
    else if (majorVer = 4) and (minorVer = 90) then
    Result := cOsWinME
    else
    Result := cOsUnknown;
    end;
    else
    Result := cOsUnknown;
    end;
    end
    else
    Result := cOsUnknown;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ShowMessage(IntToStr(GetOperatingSystem));
    end;


    {************************************************}
    { Some useful functions }
    {************************************************}

    function IsXP: Boolean;
    var
    OS: TOSVERSIONINFO;
    begin
    OS.dwOSVersionInfoSize := SizeOf(TOSVERSIONINFO);
    GetVersionEx(osv);
    Result := (OS.dwPlatformId = VER_PLATFORM_WIN32_NT) and
    (OS.dwMajorVersion = 5) and (OS.dwMinorVersion = 1);
    end;

    function IsWin2000: Boolean;
    var
    OS: TOSVersionInfo;
    begin
    ZeroMemory(@OS, SizeOf(OS));
    OS.dwOSVersionInfoSize := SizeOf(OS);
    GetVersionEx(OS);
    Result := (OS.dwMajorVersion >= 5) and
    (OS.dwPlatformId = VER_PLATFORM_WIN32_NT);
    end;


    function IsWinNT2: Boolean;
    var
    OS: TOSVersionInfo;
    begin
    ZeroMemory(@OS, SizeOf(OS));
    OS.dwOSVersionInfoSize := SizeOf(OS);
    GetVersionEx(OS);
    Result := OS.dwPlatformId = VER_PLATFORM_WIN32_NT;
    end;

    { or: }

    function IsWinNT2: Boolean;
    begin
    Result := Win32Platform = VER_PLATFORM_WIN32_NT;
    end;


    function IsWinME: Boolean;
    var
    OS: TOSVersionInfo;
    begin
    ZeroMemory(@OS, SizeOf(OS));
    OS.dwOSVersionInfoSize := SizeOf(OS);
    GetVersionEx(OS);
    Result := (OS.dwMajorVersion = 4) and (OS.dwMinorVersion = 90) and
    (OS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS);
    end;


    function IsWin95: Boolean;
    var
    OS: TOSVersionInfo;
    begin
    ZeroMemory(@OS, SizeOf(OS));
    OS.dwOSVersionInfoSize := SizeOf(OS);
    GetVersionEx(OS);
    Result := (OS.dwMajorVersion >= 4) and (OS.dwMinorVersion = 0) and
    (OS.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS);
    end;

    {************************************************}
    { Function to detect OS Version by Nico Bendlin }
    {************************************************}


    {$IFDEF CONDITIONALEXPRESSIONS}
    {$IF Defined(TOSVersionInfoEx)}
    {$DEFINE TOSVERSIONINFOEX_DEFINED}
    {$IFEND}
    {$ENDIF}
    {$IFNDEF TOSVERSIONINFOEX_DEFINED}

    type
    POSVersionInfoEx = ^TOSVersionInfoEx;
    TOSVersionInfoEx = packed record
    dwOSVersionInfoSize: DWORD;
    dwMajorVersion : DWORD;
    dwMinorVersion : DWORD;
    dwBuildNumber : DWORD;
    dwPlatformId : DWORD;
    szCSDVersion : array [0..127] of AnsiChar;
    wServicePackMajor : Word;
    wServicePackMinor : Word;
    wSuiteMask : Word;
    wProductType : Byte;
    wReserved : Byte;
    end;

    const
    VER_SERVER_NT = $80000000;
    {$EXTERNALSYM VER_SERVER_NT}
    VER_WORKSTATION_NT = $40000000;
    {$EXTERNALSYM VER_WORKSTATION_NT}
    VER_SUITE_SMALLBUSINESS = $00000001;
    {$EXTERNALSYM VER_SUITE_SMALLBUSINESS}
    VER_SUITE_ENTERPRISE = $00000002;
    {$EXTERNALSYM VER_SUITE_ENTERPRISE}
    VER_SUITE_BACKOFFICE = $00000004;
    {$EXTERNALSYM VER_SUITE_BACKOFFICE}
    VER_SUITE_COMMUNICATIONS = $00000008;
    {$EXTERNALSYM VER_SUITE_COMMUNICATIONS}
    VER_SUITE_TERMINAL = $00000010;
    {$EXTERNALSYM VER_SUITE_TERMINAL}
    VER_SUITE_SMALLBUSINESS_RESTRICTED = $00000020;
    {$EXTERNALSYM VER_SUITE_SMALLBUSINESS_RESTRICTED}
    VER_SUITE_EMBEDDEDNT = $00000040;
    {$EXTERNALSYM VER_SUITE_EMBEDDEDNT}
    VER_SUITE_DATACENTER = $00000080;
    {$EXTERNALSYM VER_SUITE_DATACENTER}
    VER_SUITE_SINGLEUSERTS = $00000100;
    {$EXTERNALSYM VER_SUITE_SINGLEUSERTS}
    VER_SUITE_PERSONAL = $00000200;
    {$EXTERNALSYM VER_SUITE_PERSONAL}
    VER_SUITE_BLADE = $00000400;
    {$EXTERNALSYM VER_SUITE_BLADE}
    VER_SUITE_EMBEDDED_RESTRICTED = $00000800;
    {$EXTERNALSYM VER_SUITE_EMBEDDED_RESTRICTED}
    VER_SUITE_SECURITY_APPLIANCE = $00001000;
    {$EXTERNALSYM VER_SUITE_SECURITY_APPLIANCE}

    const
    VER_NT_WORKSTATION = $0000001;
    {$EXTERNALSYM VER_NT_WORKSTATION}
    VER_NT_DOMAIN_CONTROLLER = $0000002;
    {$EXTERNALSYM VER_NT_DOMAIN_CONTROLLER}
    VER_NT_SERVER = $0000003;
    {$EXTERNALSYM VER_NT_SERVER}

    {$ENDIF} // TOSVERSIONINFOEX_DEFINED


    function GetOSVersionInfo(var Info: TOSVersionInfoEx): Boolean;
    begin
    FillChar(Info, SizeOf(TOSVersionInfoEx), 0);
    Info.dwOSVersionInfoSize := SizeOf(TOSVersionInfoEx);
    Result := GetVersionEx(TOSVersionInfo(Addr(Info)^));
    if (not Result) then
    begin
    FillChar(Info, SizeOf(TOSVersionInfoEx), 0);
    Info.dwOSVersionInfoSize := SizeOf(TOSVersionInfoEx);
    Result := GetVersionEx(TOSVersionInfo(Addr(Info)^));
    if (not Result) then
    Info.dwOSVersionInfoSize := 0;
    end;
    end;

    function GetOSVersionText: string;
    var
    Info: TOSVersionInfoEx;
    Key: HKEY;
    begin
    Result := '';
    if (not GetOSVersionInfo(Info)) then
    Exit;
    case Info.dwPlatformId of
    { Win32s }
    VER_PLATFORM_WIN32s:
    Result := 'Microsoft Win32s';
    { Windows 9x }
    VER_PLATFORM_WIN32_WINDOWS:
    if (Info.dwMajorVersion = 4) and (Info.dwMinorVersion = 0) then
    begin
    Result := 'Microsoft Windows 95';
    if (Info.szCSDVersion[1] in ['B', 'C']) then
    Result := Result +' OSR2';
    end
    else if (Info.dwMajorVersion = 4) and (Info.dwMinorVersion = 10) then
    begin
    Result := 'Microsoft Windows 98';
    if (Info.szCSDVersion[1] = 'A') then
    Result := Result + ' SE';
    end
    else if (Info.dwMajorVersion = 4) and (Info.dwMinorVersion = 90) then
    Result := 'Microsoft Windows Millennium Edition';
    { Windows NT }
    VER_PLATFORM_WIN32_NT:
    begin
    { Version }
    if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 2) then
    Result := 'Microsoft Windows Server 2003'
    else if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 1) then
    Result := 'Microsoft Windows XP'
    else if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 0) then
    Result := 'Microsoft Windows 2000'
    else
    Result := 'Microsoft Windows NT';
    { Extended }
    if (Info.dwOSVersionInfoSize >= SizeOf(TOSVersionInfoEx)) then
    begin
    { ProductType }
    if (Info.wProductType = VER_NT_WORKSTATION) then
    begin
    if (Info.dwMajorVersion = 4) then
    Result := Result + #10'Workstation 4.0'
    else if(Info.wSuiteMask and VER_SUITE_PERSONAL <> 0) then
    Result := Result + #10'Home Edition'
    else
    Result := Result + #10'Professional';
    end
    else if (Info.wProductType = VER_NT_SERVER) then
    begin
    if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 2) then
    begin
    if (Info.wSuiteMask and VER_SUITE_DATACENTER <> 0) then
    Result := Result + #10'Datacenter Edition'
    else if (Info.wSuiteMask and VER_SUITE_ENTERPRISE <> 0) then
    Result := Result + #10'Enterprise Edition'
    else if (Info.wSuiteMask = VER_SUITE_BLADE) then
    Result := Result + #10'Web Edition'
    else
    Result := Result + #10'Standard Edition';
    end
    else if (Info.dwMajorVersion = 5) and (Info.dwMinorVersion = 0) then
    begin
    if (Info.wSuiteMask and VER_SUITE_DATACENTER <> 0) then
    Result := Result + #10'Datacenter Server'
    else if (Info.wSuiteMask and VER_SUITE_ENTERPRISE <> 0) then
    Result := Result + #10'Advanced Server'
    else
    Result := Result + #10'Server';
    end
    else
    begin
    Result := Result + #10'Server ' +
    IntToStr(Info.dwMajorVersion) + '.' +
    IntToStr(Info.dwMinorVersion);
    if (Info.wSuiteMask and VER_SUITE_ENTERPRISE <> 0) then
    Result := Result + ', Enterprise Edition';
    end;
    end;
    end;
    { CSDVersion }
    if (Info.dwMajorVersion = 4) and
    (StrIComp(Info.szCSDVersion, 'Service Pack 6') = 0) and
    (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
    'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\Q246009', 0,
    KEY_QUERY_VALUE, Key) = ERROR_SUCCESS) then
    begin
    Result := Result + #10'Service Pack 6a';
    RegCloseKey(Key);
    end
    else
    Result := Result + #10 + StrPas(Info.szCSDVersion);
    Result := Result + #10'(Build ' +
    IntToStr(Info.dwBuildNumber and $FFFF) + ')';
    end;
    end;
    end;

    ////////////////////////////////////////////////////////////////////////////////

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ShowMessage(GetOSVersionText);
    end;




    از این منبع هم می توننین برای اشنایی با برخی توابع به کار رفته استفاده کنید.
    http://www.delphicorner.f9.co.uk/articles/wapi3.htm

  3. #3
    کاربر دائمی آواتار Ehsansh
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    127.0.0.1
    سن
    39
    پست
    278
    این کد رو به سختی پیدا کردم:

    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;

    امیدوارم کمکت کنه...

  4. #4
    کاربر دائمی آواتار Hamid_PaK
    تاریخ عضویت
    تیر 1384
    محل زندگی
    تهران
    پست
    1,125
    مختصر و مفید ...

    function GetWinXP: boolean;
    var
    VerInfo: TOSVersionInfo;
    begin
    FillChar(VerInfo,SizeOf(VerInfo),0);
    VerInfo.dwOSVersionInfoSize:=SizeOf(VerInfo);
    Result:=GetVersionEx(VerInfo) and (VerInfo.dwMajorVersion>=5);
    end;


    یا حق !!!

  5. #5
    کاربر دائمی آواتار soroush_vs
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    شیراز
    سن
    38
    پست
    457
    حق نگهدار همهی برو بچ باحال سایت
    از همه متشکرم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •