امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
تعیین نوع ویندوز
نویسنده پیام
The.Ghost غایب
مدیر بازنشسته
*****

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #1
تعیین نوع ویندوز
با سلام
از کجا میشه فهمید که ویندوز 64 بیتی است یا 32 بیتی؟

این کد زیر هم کار نمی کند؟؟!!!!
کد:
{$IFDEF WIN32}
        Boo:=True; // win 32
     {$ELSE} {$IFDEF WIN64}
        Boo:=False; // win 64
     {$ENDIF}
     {$ENDIF}
یعنی وقتی فایل اجرایی شما 32 بیتی باشد و در ویندوز 64 بیتی اجراء کنید میگه ویندوز مورد نظر 32 بیتی است نه 64 بیتی؟؟؟؟؟

با تشکر فراوانRolleyes

Assembly Language 039

۱۶-شهریور-۱۳۹۱, ۱۷:۳۹:۱۳
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

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

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: تعیین نوع ویندوز
میتونین از تابع IsWow64Process که تو kernel32.dll هست استفاده کنید

کد:
function Is64BitOS: Boolean;
type
  TIsWow64Process = function(Handle:THandle; var IsWow64 : BOOL) : BOOL; stdcall;
var
  hKernel32 : Integer;
  IsWow64Process : TIsWow64Process;
  IsWow64 : BOOL;
begin
  Result := False;
  hKernel32 := LoadLibrary('kernel32.dll');
  if (hKernel32 = 0) then RaiseLastOSError;
  @IsWow64Process := GetProcAddress(hkernel32, 'IsWow64Process');
  if Assigned(IsWow64Process) then begin
    IsWow64 := False;
    if (IsWow64Process(GetCurrentProcess, IsWow64)) then begin
      Result := IsWow64;
    end
    else RaiseLastOSError;
  end;
  FreeLibrary(hKernel32);
end;

کد:
http://msdn.microsoft.com/en-us/library/ms684139%28VS.85%29.aspx

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

ارسال‌ها: 461
موضوع‌ها: 201
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 674
( 354 تشکر در 158 ارسال )
ارسال: #3
RE: تعیین نوع ویندوز
با سلام
لطفا میشه راهنمایی کنید که چطور بدون باز کردن فایل اجراء میشه فهمید که 64 بیتی است یا 32 بیتی؟؟؟؟
با تشکر

Assembly Language 039

۰۸-آذر-۱۳۹۱, ۰۱:۴۳:۲۸
ارسال‌ها
پاسخ
veyskarami غایب
مدیر بازنشسته
*****

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

تشکرها : 477
( 2479 تشکر در 611 ارسال )
ارسال: #4
RE: تعیین نوع ویندوز
اینم بدون اجرای فایل ;)

کد:
// Detect 32 / 64 Applications
// Coded By Arash Veyskarami
//////////////////////////////

function Get_32_64(Filename:string):string;
var
Mch:Dword;
dos_header: IMAGE_DOS_HEADER;
pe_header: IMAGE_FILE_HEADER;
opt_header: IMAGE_OPTIONAL_HEADER;
fs:TFilestream;
signature: DWORD;
function DumpPEHeader(const h: IMAGE_FILE_HEADER):dword;
begin
Result:=h.Machine;
end;
begin
fs := TFilestream.Create(FileName, $0000 or $0040);
try
fs.read(dos_header, SizeOf(dos_header));
if dos_header.e_magic <> IMAGE_DOS_SIGNATURE then
Exit;
fs.seek(dos_header._lfanew, soFromBeginning);
fs.read(signature, SizeOf(signature));
finally
fs.read(pe_header, SizeOf(pe_header));
Mch:=DumpPEHeader(pe_header);
fs.Free;
end;
if Mch = $14C then Result:='32 Bit' ;
if Mch = $8664 then Result:='64 Bit';
end;
///////////////////////////////////////

(آخرین ویرایش در این ارسال: ۰۹-آذر-۱۳۹۱, ۱۴:۲۵:۰۵، توسط veyskarami.)
۰۹-آذر-۱۳۹۱, ۱۴:۰۹:۰۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : The.Ghost


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

پرش به انجمن:


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

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