امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
بدست اوردن ورژن ویندوز
نویسنده پیام
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #1
بدست اوردن ورژن ویندوز
با استفاده از کد زیر به راحتی میتوانید ورژن-بیلد هرویندوزی را به دست اورید

کد:
function GetWindowsVersion: string;
type
TGNSI = procedure(var lpSystemInfo: TSystemInfo); stdcall;
TGPI = function(dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion,
dwSpMinorVersion: DWORD; var pdwReturnedProductType: DWORD): BOOL;
stdcall;

_OSVERSIONINFOEX = record
dwOSVersionInfoSize: DWORD;
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
dwBuildNumber: DWORD;
dwPlatformId: DWORD;
szCSDVersion: array [0 .. 127] of {$IFDEF UNICODE} WideChar {$ELSE}
AnsiChar {$ENDIF};
wServicePackMajor: WORD;
wServicePackMinor: WORD;
wSuiteMask: WORD;
wProductType: BYTE;
wReserved: BYTE;
end;
const
// wSuiteMask
VER_SUITE_SMALLBUSINESS = $1;
VER_SUITE_ENTERPRISE = $2;
VER_SUITE_BACKOFFICE = $4;
VER_SUITE_COMMUNICATIONS = $8;
VER_SUITE_TERMINAL = $10;
VER_SUITE_SMALLBUSINESS_RESTRICTED = $20;
VER_SUITE_EMBEDDEDNT = $40;
VER_SUITE_DATACENTER = $80;
VER_SUITE_SINGLEUSERTS = $100;
VER_SUITE_PERSONAL = $200;
VER_SUITE_BLADE = $400;
VER_SUITE_WH_SERVER = $800;
VER_SUITE_STORAGE_SERVER = $2000;
VER_SUITE_COMPUTE_SERVER = $4000;
// wProductType
VER_NT_WORKSTATION = $1;
VER_NT_DOMAIN_CONTROLLER = $2;
VER_NT_SERVER = $3;
PRODUCT_BUSINESS = $6; // Business
PRODUCT_BUSINESS_N = $10; // Business N
PRODUCT_CLUSTER_SERVER = $12; // HPC Edition
PRODUCT_DATACENTER_SERVER = $8; // Server Datacenter (fullinstallation)
PRODUCT_DATACENTER_SERVER_CORE = $C; // Server Datacenter (coreinstallation)
PRODUCT_DATACENTER_SERVER_CORE_V = $27; // Server Datacenter withoutHyper-V (core installation)
PRODUCT_DATACENTER_SERVER_V = $25; // Server Datacenter withoutHyper-V (full installation)
PRODUCT_ENTERPRISE = $4; // Enterprise
PRODUCT_ENTERPRISE_N = $1B; // Enterprise N
PRODUCT_ENTERPRISE_SERVER = $A; // Server Enterprise (fullinstallation)
PRODUCT_ENTERPRISE_SERVER_CORE = $E; // Server Enterprise (coreinstallation)
PRODUCT_ENTERPRISE_SERVER_CORE_V = $29; // Server Enterprise withoutHyper-V (core installation)
PRODUCT_ENTERPRISE_SERVER_IA64 = $F; // Server Enterprise forItanium-based Systems
PRODUCT_ENTERPRISE_SERVER_V = $26; // Server Enterprise withoutHyper-V (full installation)
PRODUCT_HOME_BASIC = $2; // Home Basic
PRODUCT_HOME_BASIC_N = $5; // Home Basic N
PRODUCT_HOME_PREMIUM = $3; // Home Premium
PRODUCT_HOME_PREMIUM_N = $1A; // Home Premium N
PRODUCT_HYPERV = $2A; // Server Hyper-V
PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT = $1E; // Windows EssentialBusiness Server Management Server
PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING = $20; // Windows EssentialBusiness Server Messaging Server
PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY = $1F; // Windows EssentialBusiness Server Security Server
PRODUCT_SERVER_FOR_SMALLBUSINESS = $18; // Windows Server 2008 forWindows Essential Server Solutions
PRODUCT_SERVER_FOR_SMALLBUSINESS_V = $23; // Windows Server 2008without Hyper-V for Windows Essential Server Solutions
PRODUCT_SMALLBUSINESS_SERVER = $9; // Windows Small Business Server
PRODUCT_SMALLBUSINESS_SERVER_PREMIUM = $19;
PRODUCT_STANDARD_SERVER = $7; // Server Standard (full installation)
PRODUCT_STANDARD_SERVER_CORE = $D; // Server Standard (coreinstallation)
PRODUCT_STANDARD_SERVER_CORE_V = $28; // Server Standard withoutHyper-V (core installation)
PRODUCT_STANDARD_SERVER_V = $24; // Server Standard without Hyper-V(full installation)
PRODUCT_STARTER = $B; // Starter
PRODUCT_STORAGE_ENTERPRISE_SERVER = $17; // Storage Server Enterprise
PRODUCT_STORAGE_EXPRESS_SERVER = $14; // Storage Server Express
PRODUCT_STORAGE_STANDARD_SERVER = $15; // Storage Server Standard
PRODUCT_STORAGE_WORKGROUP_SERVER = $16; // Storage Server Workgroup
PRODUCT_UNDEFINED = $0; // An unknown product
PRODUCT_ULTIMATE = $1; // Ultimate
PRODUCT_ULTIMATE_N = $1C; // Ultimate N
PRODUCT_WEB_SERVER = $11; // Web Server (full installation)
PRODUCT_WEB_SERVER_CORE = $1D; // Web Server (core installation)
SM_SERVERR2 = 89;
PROCESSOR_ARCHITECTURE_INTEL = 0;
PROCESSOR_ARCHITECTURE_IA64 = 6;
PROCESSOR_ARCHITECTURE_AMD64 = 9;
BUFSIZE = 80;
var
OSVERSIONINFOEX: _OSVERSIONINFOEX;
OSVERSIONINFO: _OSVERSIONINFO absolute OSVERSIONINFOEX;
si: SYSTEM_INFO;
pGNSI: TGNSI;
pGPI: TGPI;
bOsVersionInfoEx: Boolean;
hdlKey: HKEY;
lRet: LONGINT;
szProductType: array [0 .. Pred(BUFSIZE)] of Char;
dwBufLen, dwType: DWORD;
begin
Result := '';
// Try calling GetVersionEx using the OSVERSIONINFOEX structure.
// If that fails, try using the OSVERSIONINFO structure.
ZeroMemory(@si, sizeof(SYSTEM_INFO));
ZeroMemory(@OSVERSIONINFO, sizeof(_OSVERSIONINFOEX));
OSVERSIONINFO.dwOSVersionInfoSize := sizeof(_OSVERSIONINFOEX);
bOsVersionInfoEx := GetVersionEx(OSVERSIONINFO);
if not bOsVersionInfoEx then
begin
OSVERSIONINFO.dwOSVersionInfoSize := sizeof(_OSVERSIONINFO);
if not GetVersionEx(OSVERSIONINFO) then
Exit;
end;

// Call GetNativeSystemInfo if supported or GetSystemInfo otherwise.
pGNSI := GetProcAddress(GetModuleHandle('kernel32.dll'),
'GetNativeSystemInfo');
if Assigned(pGNSI) then
pGNSI(si)
else
GetSystemInfo(si);

case OSVERSIONINFO.dwPlatformId of
// Test for the Windows NT product family.
VER_PLATFORM_WIN32_NT:
begin
// Test for the specific product family.
Result := 'Unknown Windows';

if (OSVERSIONINFO.dwMajorVersion = 6) then
begin
if (OSVERSIONINFO.dwMinorVersion = 1) then
if (OSVERSIONINFOEX.wProductType = VER_NT_WORKSTATION) then
Result := 'Windows 7'
else
Result := 'Windows Server 2008 R2';

if (OSVERSIONINFO.dwMinorVersion = 0) then
if (OSVERSIONINFOEX.wProductType = VER_NT_WORKSTATION) then
Result := 'Windows Vista'
else
Result := 'Windows Server 2008';

pGPI := GetProcAddress(GetModuleHandle('kernel32.dll'),
'GetProductInfo');
pGPI(6, 0, 0, 0, dwType);

case dwType of
PRODUCT_ULTIMATE:
Result := Result + ' Ultimate Edition';
PRODUCT_HOME_PREMIUM:
Result := Result + ' Home Premium Edition';
PRODUCT_HOME_BASIC:
Result := Result + ' Home Basic Edition';
PRODUCT_ENTERPRISE:
Result := Result + ' Enterprise Edition';
PRODUCT_BUSINESS:
Result := Result + ' Business Edition';
PRODUCT_STARTER:
Result := Result + ' Starter Edition';
PRODUCT_CLUSTER_SERVER:
Result := Result + ' Cluster Server Edition';
PRODUCT_DATACENTER_SERVER:
Result := Result + ' Datacenter Edition';
PRODUCT_DATACENTER_SERVER_CORE:
Result := Result + ' Datacenter Edition (coreinstallation)';
PRODUCT_ENTERPRISE_SERVER:
Result := Result + ' Enterprise Edition';
PRODUCT_ENTERPRISE_SERVER_CORE:
Result := Result + ' Enterprise Edition (coreinstallation)';
PRODUCT_ENTERPRISE_SERVER_IA64:
Result := Result + ' Enterprise Edition for Itanium-based Systems';
PRODUCT_SMALLBUSINESS_SERVER:
Result := Result + ' Small Business Server';
PRODUCT_SMALLBUSINESS_SERVER_PREMIUM:
Result := Result + ' Small Business Server Premium Edition';
PRODUCT_STANDARD_SERVER:
Result := Result + ' Standard Edition';
PRODUCT_STANDARD_SERVER_CORE:
Result := Result + ' Standard Edition (core installation)';
PRODUCT_WEB_SERVER:
Result := Result + ' Web Server Edition';
end;

if (si.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64)
then
Result := Result + ', 64-bit'
else if (si.wProcessorArchitecture =
PROCESSOR_ARCHITECTURE_INTEL) then
Result := Result + ', 32-bit';
end;
if (OSVERSIONINFO.dwMajorVersion = 5) and
(OSVERSIONINFO.dwMinorVersion = 2) then
begin
if (GetSystemMetrics(SM_SERVERR2) <> 0) then
Result := 'Windows Server 2003 R2'
else if (OSVERSIONINFOEX.wSuiteMask =
VER_SUITE_STORAGE_SERVER) then
Result := 'Windows Storage Server 2003'
else if (OSVERSIONINFOEX.wSuiteMask = VER_SUITE_WH_SERVER)
then
Result := 'Windows Home Server'
else if (OSVERSIONINFOEX.wProductType = VER_NT_WORKSTATION)
and (si.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64) then
Result := 'Windows XP Professional x64 Edition'
else
Result := 'Windows Server 2003';

// Test for the server type.
if (OSVERSIONINFOEX.wProductType <> VER_NT_WORKSTATION) then
begin
if (si.wProcessorArchitecture =
PROCESSOR_ARCHITECTURE_IA64) then
begin
if (OSVERSIONINFOEX.wSuiteMask and VER_SUITE_DATACENTER)
<> 0 then
Result := Result + ' Datacenter Edition for Itanium-based Systems'
else if (OSVERSIONINFOEX.wSuiteMask and
VER_SUITE_ENTERPRISE) <> 0 then
Result := Result + ' Enterprise Edition for Itanium-based Systems';
end
else if (si.wProcessorArchitecture =
PROCESSOR_ARCHITECTURE_AMD64) then
begin
if (OSVERSIONINFOEX.wSuiteMask and VER_SUITE_DATACENTER)
<> 0 then
Result := Result + ' Datacenter x64 Edition'
else if (OSVERSIONINFOEX.wSuiteMask and
VER_SUITE_ENTERPRISE) <> 0 then
Result := Result + ' Enterprise x64 Edition'
else
Result := Result + ' Standard x64 Edition';
end
else
begin
if (OSVERSIONINFOEX.wSuiteMask and
VER_SUITE_COMPUTE_SERVER) <> 0 then
Result := Result + ' Compute Cluster Edition'
else if (OSVERSIONINFOEX.wSuiteMask and
VER_SUITE_DATACENTER) <> 0 then
Result := Result + ' Datacenter Edition'
else if (OSVERSIONINFOEX.wSuiteMask and
VER_SUITE_ENTERPRISE) <> 0 then
Result := Result + ' Enterprise Edition'
else if (OSVERSIONINFOEX.wSuiteMask and VER_SUITE_BLADE)
<> 0 then
Result := Result + ' Web Edition'
else
Result := Result + ' Standard Edition';
end;
end;
end;
if (OSVERSIONINFO.dwMajorVersion = 5) and
(OSVERSIONINFO.dwMinorVersion = 1) then
begin
Result := 'Windows XP';
if (OSVERSIONINFOEX.wSuiteMask and VER_SUITE_PERSONAL) <> 0
then
Result := Result + ' Home Edition'
else
Result := Result + ' Professional';
end;

if (OSVERSIONINFO.dwMajorVersion = 5) and
(OSVERSIONINFO.dwMinorVersion = 0) then
begin
Result := 'Windows 2000';

if (OSVERSIONINFOEX.wProductType = VER_NT_WORKSTATION) then
Result := Result + ' Professional'
else
begin
if (OSVERSIONINFOEX.wSuiteMask and VER_SUITE_DATACENTER) <>
0 then
Result := Result + ' Datacenter Server'
else if (OSVERSIONINFOEX.wSuiteMask and
VER_SUITE_ENTERPRISE) <> 0 then
Result := Result + ' Advanced Server'
else
Result := Result + ' Server';
end;
end;

if (OSVERSIONINFO.dwMajorVersion <= 4) then
begin
Result := 'Windows NT';
// Test for specific product on Windows NT 4.0 SP6 and later.
if bOsVersionInfoEx then
begin
// Test for the workstation type.
if (OSVERSIONINFOEX.wProductType = VER_NT_WORKSTATION) and
(si.wProcessorArchitecture <> PROCESSOR_ARCHITECTURE_AMD64) then
Result := Result + ' Workstation 4.0'
// Test for the server type.
else if (OSVERSIONINFOEX.wProductType = VER_NT_SERVER) or
(OSVERSIONINFOEX.wProductType = VER_NT_DOMAIN_CONTROLLER) then
begin
if LongBool(OSVERSIONINFOEX.wSuiteMask and
VER_SUITE_ENTERPRISE) then
Result := Result + ' Server 4.0, Enterprise Edition'
else
Result := Result + ' Server';
end;
end
else
begin // Test for specific product on Windows NT 4.0 SP5 and earlier
dwBufLen := BUFSIZE;
lRet := RegOpenKeyEx(HKEY_LOCAL_MACHINE,
'SYSTEM\CurrentControlSet\Control\ProductOptions', 0, KEY_QUERY_VALUE,
hdlKey);
if (lRet <> ERROR_SUCCESS) then
Exit;
lRet := RegQueryValueEx(hdlKey, 'ProductType', nil, nil,
@szProductType[1], @dwBufLen);
if ((lRet <> ERROR_SUCCESS) or (dwBufLen > BUFSIZE)) then
Exit;
RegCloseKey(hdlKey);
if (lstrcmpi('WINNT', szProductType) = 0) then
Result := Result + ' Workstation';
if (lstrcmpi('LANMANNT', szProductType) = 0) then
Result := Result + ' Server';
if (lstrcmpi('SERVERNT', szProductType) = 0) then
Result := Result + ' Advanced Server';
Result := Result + Format(' %d.%d',
[OSVERSIONINFO.dwMajorVersion, OSVERSIONINFO.dwMinorVersion]);
end;
end;
// Display service pack (if any) and build number.
if (OSVERSIONINFO.dwMajorVersion = 4) and
(lstrcmpi(OSVERSIONINFO.szCSDVersion, 'Service Pack 6') = 0) then
begin
// Test for SP6 versus SP6a.
lRet := RegOpenKeyEx(HKEY_LOCAL_MACHINE,
'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\Q246009', 0,
KEY_QUERY_VALUE, hdlKey);
if (lRet = ERROR_SUCCESS) then
Result := Result + Format(' Service Pack 6a (Build %d)',
[OSVERSIONINFO.dwBuildNumber and $FFFF])
else // Windows NT 4.0 prior to SP6a
Result := Result + Format(' %s (Build %d)',
[OSVERSIONINFO.szCSDVersion, OSVERSIONINFO.dwBuildNumber and $FFFF]);
RegCloseKey(hdlKey);
end
else
begin
Result := Result + Format(' %s (Build %d)',
[OSVERSIONINFO.szCSDVersion, OSVERSIONINFO.dwBuildNumber and $FFFF]);
end;
end;
// Test for the Windows 95 product family.
VER_PLATFORM_WIN32_WINDOWS:
begin
if (OSVERSIONINFO.dwMajorVersion = 4) and
(OSVERSIONINFO.dwMinorVersion = 0) then
begin
Result := 'Windows 95';
if (OSVERSIONINFO.szCSDVersion[1] = 'C') or
(OSVERSIONINFO.szCSDVersion[1] = 'B') then
Result := Result + ' OSR2';
end;
if (OSVERSIONINFO.dwMajorVersion = 4) and
(OSVERSIONINFO.dwMinorVersion = 10) then
begin
Result := 'Windows 98';
if (OSVERSIONINFO.szCSDVersion[1] = 'A') then
Result := Result + ' SE';
end;
if (OSVERSIONINFO.dwMajorVersion = 4) and
(OSVERSIONINFO.dwMinorVersion = 90) then
Result := 'Windows ME';
end;
VER_PLATFORM_WIN32s:
Result := 'Windows Win32s';
end;
end;

روش استفاده

کد:
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(GetWindowsVersion);
end;

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۰۹-فروردین-۱۳۹۰, ۱۸:۵۷:۵۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : h0x00i, رسول, siroosss, veyskarami
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: بدست اوردن ورژن ویندوز
این هم یک کد ساده تر

کد:
function WindowsVersion():string;
//steve10120@ic0de.org
var
  OSINFO: TOSVersionInfoEx;
begin
  OSINFO.dwOSVersionInfoSize := SizeOf(OSINFO);
  if GetVersionEx(OSINFO) then
  begin
    if (OSINFO.dwMajorVersion = 5) and (OSINFO.dwMinorVersion = 0) then
      Result := 'Windows 2000'
    else if (OSINFO.dwMajorVersion = 5) and (OSINFO.dwMinorVersion = 1) then
      Result := 'Windows XP'
    else if (OSINFO.dwMajorVersion = 5) and (OSINFO.dwMinorVersion = 2) and (GetSystemMetrics(SM_SERVERR2) = 0) then
      Result := 'Windows Server 2003'
    else if (OSINFO.dwMajorVersion = 5) and (OSINFO.dwMinorVersion = 2) and (GetSystemMetrics(SM_SERVERR2) <> 0) then
      Result := 'Windows Server 2003 R2'
    else if (OSINFO.dwMajorVersion = 6) and (OSINFO.dwMinorVersion = 0) and (OSINFO.wProductType = VER_NT_WORKSTATION) then
      Result := 'Windows Vista'
    else if (OSINFO.dwMajorVersion = 6) and (OSINFO.dwMinorVersion = 0) and (OSINFO.wProductType <> VER_NT_WORKSTATION) then
      Result := 'Windows Server 2008'
    else if (OSINFO.dwMajorVersion = 6) and (OSINFO.dwMinorVersion = 1) and (OSINFO.wProductType <> VER_NT_WORKSTATION) then
      Result := 'Windows Server 2008 R2'
    else if (OSINFO.dwMajorVersion = 6) and (OSINFO.dwMinorVersion = 1) and (OSINFO.wProductType = VER_NT_WORKSTATION) then
      Result := 'Windows 7'
    else
      Result := 'Unknown';
  end;
end;

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
(آخرین ویرایش در این ارسال: ۰۲-مهر-۱۳۹۲, ۰۹:۲۵:۳۱، توسط lord_viper.)
۱۵-فروردین-۱۳۹۰, ۱۰:۲۹:۳۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : siroosss, veyskarami
siroosss آفلاین
تازه وارد

ارسال‌ها: 15
موضوع‌ها: 4
تاریخ عضویت: مهر ۱۳۹۲

تشکرها : 13
( 1 تشکر در 1 ارسال )
ارسال: #3
RE: بدست اوردن ورژن ویندوز
با سلام
ببخشید من یه مشکل با کد ساده تر یعنی دومی داشتم
اولی رو تست کردم درست و کامل کار می کنه
ولی دومی خطای عدم شناسایی رو در چهار لاین و با
این عنوان Undedared identifier 'VER_NT_WORKSTATION
در هر چهار لاین میده.
میشه راهنمایی کنید
در ضمن ویندوز 8 هم داخلشون قید نشده
ولی اگر درست بشه خیلی کد ساده و شسته رفته ای میشه
ممنون میشم اگه کمک کنید
۰۲-مهر-۱۳۹۲, ۰۹:۰۷:۳۴
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #4
RE: بدست اوردن ورژن ویندوز
ویرایش شد

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۰۲-مهر-۱۳۹۲, ۰۹:۳۵:۵۴
وب سایت ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #5
RE: بدست اوردن ورژن ویندوز
کد:
function Product():string;
var
  dwOSMajorVersion, dwOSMinorVersion,
  dwSpMajorVersion, dwSpMinorVersion,
  pdwReturnedProductType : DWORD;
  tmpstr:string;
  var
  GetProductInfo:function(dwOSMajorVersion, dwOSMinorVersion,dwSpMajorVersion, dwSpMinorVersion: DWORD; var pdwReturnedProductType: DWORD): BOOL;stdcall;
begin
GetProductInfo:=GetProcAddress(GetModuleHandle(kernel32),'GetProductInfo');
GetProductInfo( dwOSMajorVersion, dwOSMinorVersion,dwSpMajorVersion, dwSpMinorVersion,pdwReturnedProductType );
if @GetProductInfo = nil then exit;

case pdwReturnedProductType of
               $00000006:
                 tmpStr := 'Business Edition';
               $00000010:
                 tmpStr := 'Business Edition';
               $00000012:
                 tmpStr := 'Cluster Server Edition';
               $00000008:
                 tmpStr := 'Server Datacenter Edition (full installation)';
               $0000000C:
                 tmpStr := 'Server Datacenter Edition (core installation)';
               $00000004:
                 tmpStr := 'Enterprise Edition';
               $0000001B:
                 tmpStr := 'Enterprise Edition';
               $0000000A:
                 tmpStr := 'Server Enterprise Edition (full installation)';
               $0000000E:
                 tmpStr := 'Server Enterprise Edition (core installation)';
               $0000000F:
                 tmpStr := 'Server Enterprise Edition for Itanium-based Systems';
               $00000002:
                 tmpStr := 'Home Basic Edition';
               $00000005:
                 tmpStr := 'Home Basic Edition';
               $00000003:
                 tmpStr := 'Home Premium Edition';
               $0000001A:
                 tmpStr := 'Home Premium Edition';
               $00000013:
                 tmpStr := 'Home Server Edition';
               $00000018:
                 tmpStr := 'Server for Small Business Edition';
               $00000009:
                 tmpStr := 'Small Business Server';
               $00000019:
                 tmpStr := 'Small Business Server Premium Edition';
               $00000007:
                 tmpStr := 'Server Standard Edition (full installation)';
               $0000000D:
                 tmpStr := 'Server Standard Edition (core installation)';
               $0000000B:
                 tmpStr := 'Starter Edition';
               $00000017:
                 tmpStr := 'Storage Server Enterprise Edition';
               $00000014:
                 tmpStr := 'Storage Server Express Edition';
               $00000015:
                 tmpStr := 'Storage Server Standard Edition';
               $00000016:
                 tmpStr := 'Storage Server Workgroup Edition';
               $00000000:
                 tmpStr := 'An unknown product';
               $00000001:
                 tmpStr := 'Ultimate Edition';
               $0000001C:
                 tmpStr := 'Ultimate Edition';
               $00000011:
                 tmpStr := 'Web Server Edition';
               $ABCDABCD:
                 tmpStr := 'Unlicensed product'
                 end;
                 Result:=Result+' '+TmpStr+' ';

end;

function GetOSName(): String;
var
  osVerInfo: TOSVersionInfo;
  tmpStr:string;
  GetVersionEx:function(var lpVersionInformation: TOSVersionInfo): BOOL; stdcall;
begin
GetVersionEx := GetProcAddress(GetModuleHandle(kernel32), 'GetVersionExA');
  Result:='UnKnown';
  osVerInfo.dwOSVersionInfoSize:=SizeOf(TOSVersionInfo);
  GetVersionEx(osVerInfo);
  case osVerInfo.dwPlatformId of
    VER_PLATFORM_WIN32_NT: begin
    if osVerInfo.dwMajorVersion > 5 then tmpstr:=Product;
      case osVerInfo.dwMajorVersion of
        4: Result:='Windows NT 4.0';
        5: case osVerInfo.dwMinorVersion of
             0: Result:='Windows 2000';
             1: Result:='Windows XP';
             2: Result:='Windows Server 2003';
           end;
             6: case osVerInfo.dwMinorVersion of
             0: Result := 'Windows Vista';
             1: Result := 'Windows 7';
             2: Result := 'Windows 8';
             end;
           end;
         end;
    VER_PLATFORM_WIN32_WINDOWS:
      begin
      case osVerInfo.dwMinorVersion of
        0: Result:='Windows 95';
       10: Result:='Windows 98';
       90: Result:='Windows Me';
      end;
    end;
  end;
  if osVerInfo.szCSDVersion <> '' then Result := Result + ' ' + osVerInfo.szCSDVersion+tmpstr;
end;

۰۲-مهر-۱۳۹۲, ۱۳:۲۶:۲۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, siroosss, lord_viper
siroosss آفلاین
تازه وارد

ارسال‌ها: 15
موضوع‌ها: 4
تاریخ عضویت: مهر ۱۳۹۲

تشکرها : 13
( 1 تشکر در 1 ارسال )
ارسال: #6
RE: بدست اوردن ورژن ویندوز
تشکر از بابت کد خوبی که قرار دادید
متاسفانه نتونستم ازش استفاده کنم
من چه طور باید ازش استفاده کنم
این تابع چیزی رو بر نگردوند
کد php:
procedure TForm4.Button1Click(SenderTObject);
begin
showmessage
(GetOSName());
end
و با فشردن دکمه UnKnown رو تو خروجی نشون میده(رو ویندوز 7 تست کردم)
(آخرین ویرایش در این ارسال: ۰۲-مهر-۱۳۹۲, ۱۸:۳۹:۴۹، توسط babyy.)
۰۲-مهر-۱۳۹۲, ۱۴:۴۸:۴۵
ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #7
RE: بدست اوردن ورژن ویندوز
دیگه واسه این کد ساده سمپل هم باید بدم؟

کد:
Edit1.Text:=GetOsName;

۰۳-مهر-۱۳۹۲, ۰۰:۵۲:۳۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, siroosss
siroosss آفلاین
تازه وارد

ارسال‌ها: 15
موضوع‌ها: 4
تاریخ عضویت: مهر ۱۳۹۲

تشکرها : 13
( 1 تشکر در 1 ارسال )
ارسال: #8
RE: بدست اوردن ورژن ویندوز
سلام مجدد
اولا دست شما درد نکنه بابت همون کد بالا که فکر کنم یه مورد کوچیکی داره
سمپل نمی خواد
این کد Edit1.Text:=GetOsName; همون کار کد بالا رو showmessage(GetOSName()); انجام میده
مشکل من این هستش که هر دو تو خروجی نوع سیستم عامل رو تشخیص نمیده
باز هم UnKnown رو تو Edit نشون میده(رو ویندوز 7 مجددا تست شد)
تشکر
۰۳-مهر-۱۳۹۲, ۱۴:۳۰:۲۱
ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

ارسال‌ها: 861
موضوع‌ها: 82
تاریخ عضویت: مرداد ۱۳۸۴

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #9
RE: بدست اوردن ورژن ویندوز
خب اون همه کیس گذاشتم ببین خروجی عددی رو سیستم عاملت چنده خودت یه کیس اضافه کن مقداردهی کن دیگه!

بیا از این رفرنس میتونی استفاده کنی خودت تمام نسخه های مختلف رو تو تابع قرار بدی

کد:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724358%28v=vs.85%29.aspx

(آخرین ویرایش در این ارسال: ۰۴-مهر-۱۳۹۲, ۱۷:۰۷:۱۳، توسط veyskarami.)
۰۴-مهر-۱۳۹۲, ۱۷:۰۰:۱۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, siroosss
siroosss آفلاین
تازه وارد

ارسال‌ها: 15
موضوع‌ها: 4
تاریخ عضویت: مهر ۱۳۹۲

تشکرها : 13
( 1 تشکر در 1 ارسال )
ارسال: #10
RE: بدست اوردن ورژن ویندوز
خوبه داداش دستت درد نکنه
با کمکت ردیف شد
ممنون
۰۶-مهر-۱۳۹۲, ۰۰:۱۳:۴۹
ارسال‌ها
پاسخ
samavi2020 آفلاین
تازه وارد

ارسال‌ها: 7
موضوع‌ها: 2
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 4
( 1 تشکر در 1 ارسال )
ارسال: #11
RE: بدست اوردن ورژن ویندوز
سلام
این پست را امروز دیدم
برای دوستانی که از این به بعد این پست را مشاهده می کنند این یونیت را می گذارم.

http://s3.picofile.com/file/8195092284/G...o.pas.html

پیروز باشید
۰۱-تير-۱۳۹۴, ۱۵:۴۴:۰۱
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question [سوال] معرفی برنامه پیشفرض برای خواندن یک فرمت به ویندوز samavi2020 7 6,036 ۱۲-شهریور-۱۳۹۲, ۱۱:۱۳:۴۷
آخرین ارسال: samavi2020
Question بدست آوردن زبان نوشتار(input language) پنجره فعال ویندوز The.Ghost 1 2,169 ۲۴-خرداد-۱۳۹۲, ۲۳:۲۹:۴۶
آخرین ارسال: veyskarami
  سورس نرم افزار فتوشاپ ورژن 1.01 lord_viper 0 2,036 ۰۹-اردیبهشت-۱۳۹۲, ۱۸:۲۰:۰۳
آخرین ارسال: lord_viper
  تعیین نوع ویندوز The.Ghost 3 3,649 ۰۹-آذر-۱۳۹۱, ۱۴:۰۹:۰۴
آخرین ارسال: veyskarami
Question بدست آوردن مدل سی پی یو و شماره سریال سی پی یو که در 64 بیتی هم کار می کند. The.Ghost 0 2,704 ۱۶-فروردین-۱۳۹۱, ۰۶:۱۹:۵۴
آخرین ارسال: The.Ghost
Big Grin [سوال] تنظیمات ویندوز برای دلفی 7 parya_shilan 2 6,646 ۳۰-خرداد-۱۳۹۰, ۱۷:۰۷:۳۸
آخرین ارسال: lord_viper
  مشکل با mysql در ویندوز 64bit h_mohamadi 1 2,615 ۱۴-مرداد-۱۳۸۹, ۱۴:۰۰:۵۶
آخرین ارسال: ha_60
myBB بدست آوردن دستگيره (Handle) موضوعات در پنجره ها P.Bayat 1 3,106 ۰۷-اسفند-۱۳۸۷, ۱۳:۵۹:۵۰
آخرین ارسال: lord_viper
Exclamation بدست آوردن اطلاعات اكانت ديال آپ * كمك كنيد P.Bayat 14 11,466 ۱۶-بهمن-۱۳۸۷, ۱۳:۳۱:۱۸
آخرین ارسال: P.Bayat
  نمایش متن سلکت شده در هر جای ویندوز توسط برنامه mbm007_1364 7 7,598 ۲۵-آذر-۱۳۸۷, ۱۴:۰۵:۳۳
آخرین ارسال: P.Bayat

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS