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

نام تاپیک: تشخیص ۳۲ یا ۶۴ بیتی بودن ویندوز

  1. #1
    کاربر تازه وارد آواتار mjzaret
    تاریخ عضویت
    دی 1389
    محل زندگی
    Delphi
    پست
    48

    تشخیص ۳۲ یا ۶۴ بیتی بودن ویندوز

    سلام به دوستان

    چطور میتونم در سی شارپ برنامه‌ای بنویسم که بهم نوع سیستم عامل و پلتفرم رو نشون بده.

    منظورم 64 بیتی بودن یا 32 بیتی سیستم عامل هست.

    شاد باشید

  2. #2
    کاربر دائمی آواتار drsina
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    Iran - Esf
    پست
    541

    نقل قول: تشخیص ۳۲ یا ۶۴ بیتی بودن ویندوز

    من این کارا قبلن کردم تقریبا 80 % کد هایی توو stackoverflow هستند ، جواب اشتباه میدن . چون پروسسی که 32 بیتی باشه سیستم عامل رو X86 نشون میده حتی اگه 64 بیت باشه .
    ولی این کدو مجبور شدم خودم بنویسم ودرست کار میده :

            static bool is64BitProcess = (IntPtr.Size == 8);        static bool is64BitOperatingSystem = is64BitProcess || InternalCheckIsWow64();


    [DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
    [return: MarshalAs(UnmanagedType.Bool)]
    private static extern bool IsWow64Process(
    [In] IntPtr hProcess,
    [Out] out bool wow64Process
    );


    public static bool InternalCheckIsWow64()
    {
    if ((Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor >= 1) ||
    Environment.OSVersion.Version.Major >= 6)
    {
    using (Process p = Process.GetCurrentProcess())
    {
    bool retVal;
    if (!IsWow64Process(p.Handle, out retVal))
    {
    return false;
    }
    return retVal;
    }
    }
    else
    {
    return false;
    }
    }


    جواب تابع بالا به صورت :
                MessageBox.Show(is64BitOperatingSystem.ToString())  ;


    در این متغییر هست که اگر true باشه یعنی 64 بیته واگه false یعنی 32 بیت

    موفق باشید.

  3. #3
    کاربر دائمی آواتار omid nasri
    تاریخ عضویت
    آذر 1392
    محل زندگی
    تهران - کارگر شمالی
    پست
    385

    نقل قول: تشخیص ۳۲ یا ۶۴ بیتی بودن ویندوز

    با اینکه سیستم بنده 64 بیت می باشد اما نتیجه خروجی مقدار False، کد مجدد ویرایش شود لطفا.
    در سیستم عامل ویندوز 10 نسخه 64 بیت تست شد.
    آخرین ویرایش به وسیله omid nasri : پنج شنبه 26 شهریور 1394 در 19:55 عصر

  4. #4
    کاربر تازه وارد آواتار mjzaret
    تاریخ عضویت
    دی 1389
    محل زندگی
    Delphi
    پست
    48

    نقل قول: تشخیص ۳۲ یا ۶۴ بیتی بودن ویندوز

    از بابت راهنماییتون تشکر میکنم.

    من تست کردم.

    ویندوز 7 هم 64 بیتی و هم 32 بیتی به خوبی جواب داد.

    در ویندوز 8.1 نوع 64 بیتی هم مشکلی نداشت.

    در ویندوز xp هم تست گرفتم و جواب به درستی صورت گرفت.

    شاد باشید

  5. #5
    کاربر دائمی آواتار drsina
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    Iran - Esf
    پست
    541

    نقل قول: تشخیص ۳۲ یا ۶۴ بیتی بودن ویندوز

    نقل قول نوشته شده توسط omid nasri مشاهده تاپیک
    با اینکه سیستم بنده 64 بیت می باشد اما نتیجه خروجی مقدار False، کد مجدد ویرایش شود لطفا.
    همون جور که گفتن باید درست باشه .
    شما مطمئنید متغیر is64BitOperatingSystem رو نشون دادید ؟! فقط همین متغیر درسته بقیش چیزه دیگه ای مثلا is64BitProcess در برنامه 32 بیت کار نمیده.

  6. #6
    کاربر تازه وارد آواتار mjzaret
    تاریخ عضویت
    دی 1389
    محل زندگی
    Delphi
    پست
    48

    نقل قول: تشخیص ۳۲ یا ۶۴ بیتی بودن ویندوز

    من به صورت کامل تست کردم.

    در تمامی ویندوزها به غیر از ویندوز 10 تست نمودم و جواب کاملاً درست بود.

    از اینکه دوست عزیز این کد رو گذاشتن تشکر می‌کنم.

    شاد باشید

تاپیک های مشابه

  1. سوال: تشخیص 64 یا 32 بیتی بودن ویندوز
    نوشته شده توسط AbbasVB در بخش برنامه نویسی در 6 VB
    پاسخ: 7
    آخرین پست: جمعه 30 فروردین 1392, 17:57 عصر
  2. تشخیص 32 بیتی بودن یا 64 بیتی بودن ویندوز
    نوشته شده توسط mahmood2151 در بخش VB.NET
    پاسخ: 5
    آخرین پست: سه شنبه 13 تیر 1391, 08:56 صبح
  3. تشخیص زبان های نصب شده در ویندوز
    نوشته شده توسط sm4899 در بخش VB.NET
    پاسخ: 1
    آخرین پست: سه شنبه 03 مهر 1386, 12:08 عصر
  4. نحوه ی اجرای اسمبلی 16 بیتی در ویندوز
    نوشته شده توسط Samir.uk در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 1
    آخرین پست: جمعه 04 اسفند 1385, 21:32 عصر
  5. تشخیص online یا off line بودن صفحه
    نوشته شده توسط mirza در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: یک شنبه 30 بهمن 1384, 12:34 عصر

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

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