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

نام تاپیک: خاموش کردن سیستم

  1. #1
    کاربر تازه وارد آواتار tanzadeh7
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    بوشهر
    پست
    98

    خاموش کردن سیستم

    سلام دوستان چجوری میشه کامپیوتر رو تو یک برنامه C خاموش کرد یه چیزی خارج از دستورات زیر باشه


    system("C://windows/system32/shutdown /s")


    یا در لینوکس

    system("shutdown -P now")


    یا اگه دستوری دیگری نیست چجوری یه فایل Binary رو که تو اسمبلی نوشتم به حافظه بارگیری کنم.

  2. #2

    نقل قول: خاموش کردن سیستم

    نقل قول نوشته شده توسط tanzadeh7 مشاهده تاپیک
    سلام دوستان چجوری میشه کامپیوتر رو تو یک برنامه C خاموش کرد یه چیزی خارج از دستورات زیر باشه


    system("C://windows/system32/shutdown /s")


    یا در لینوکس

    system("shutdown -P now")


    یا اگه دستوری دیگری نیست چجوری یه فایل Binary رو که تو اسمبلی نوشتم به حافظه بارگیری کنم.
    باید از قوانین و دستورات پایه ای سیستم عامل(ها) پیروی کنی.
    بیشتر از اینکه توجهت رو به C یا هر زبان دیگه ای جلب کنی، باید به سیستم عاملی که در حال کار در اون هستی توجه کنی; چه در حال ضربه زدن باشی چه در حال بهبود دادن، باید طبق قوانین و دستورات پایه ای اون سیستم عامل عمل کنی.
    می تونی از این دستورات هم در ویندوز 7 و XP استفاده کنی:
    7:
    system("shutdown /s");

    XP:
    system("shutdown -s");

    همچنان برای حفظ زمان می تونی این دستورات رو داخل شکم توابع قرار بدی:
    void shutdown()
    {
    system("shutdown /s");
    }
    در CMD دستور ?/shutdown رو بنویس تا لیستی از دستورات مرتبط با shutdown کامپیوتر برات ظاهر بشه.
    به نظرم بهتره سوال بعدیت رو در انجمن مربوط به زبان برنامه نویسی Assembly بپرسی.

  3. #3

    نقل قول: خاموش کردن سیستم

    اجرا کردن فایلهای اجرایی از داخل برنامه از نظر امنیتی خطرناک می باشد و سرعت عملش نیز به نسب پایین است. API ویندوز توابعی دارد که برای این منظور قابل استفاده هستند ولی اگر از API سیستم عامل خاصی در کد استفاده شود کد portable نخواهد بود. یعنی نمیتوان آن را برای سیستم عاملهای دیگر کامپایل کرد.
    جناب Coder ایشون که خودشون نوشته بودن غیر از مثالها به روش دیگری میخواهند کار انجام شود! منظور از قوانین و دستورات پایه ای سیستم عامل(ها) چیست؟ چه در حال ضربه زدن باشی چه در حال بهبود دادن؟ بهتره بگیم به قصد ضربه زدن یا بهبود دادن چون موفق شدن در آن شرطه. چگونه قراردادن فراخوانی یک تابع در تابع دیگر به حفظ زمان کمک میکنه؟

  4. #4

    نقل قول: خاموش کردن سیستم

    تو ويندوز با تابع ExitWindowsEx API ميشه کامپيوتر رو خاموش/ ريبوت/لاگ آف/و... کرد اما در ويندوز هایNT به صورت معمول نميشه از اين تابع استفاده کرد و برنامه بايد حق استفاده و دسترسی به اين تابع رو کسب کنه.

    برای کسب امتياز:
    bool Adjustprivilege()
    {
    bool ret;
    HANDLE hToken;
    LUID mLUID;
    TOKEN_PRIVILEGES privs;
    HANDLE hProc = GetCurrentProcess();
    ret = OpenProcessToken(hProc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
    if(ret == false)
    {
    printf("error: OpenProcessToken, %d\n", GetLastError());
    return false;
    }


    ret = LookupPrivilegeValueA(NULL, "SeShutdownPrivilege", &mLUID);
    if(ret == false)
    {
    printf("error: LookupPrivilegeValueA, %d\n", GetLastError());
    return false;
    }


    privs.PrivilegeCount = 1;
    privs.Privileges[0].Luid = mLUID;
    privs.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;


    ret = AdjustTokenPrivileges (hToken, FALSE, &privs, 0, NULL, NULL);
    if(ret == false)
    {
    printf("error: AdjustTokenPrivileges, %d\n", GetLastError());
    return false;
    }


    return ret;
    }




    طرز استفاده:
    int main()
    { /*
    EWX_SHUTDOWN | EWX_FORCE Force ShutDown
    EWX_SHUTDOWN ShutDown
    EWX_LOGOFF LogOff
    EWX_REBOOT Restart
    more... http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
    */
    bool ret = Adjustprivilege();
    if(ret)
    {
    ExitWindowsEx(EWX_SHUTDOWN, TRUE);
    }
    return 0;
    }



    توجه کنيد فلگ EWX_FORCE برای اعمال فوری ديگر فلگ ها استفاده ميشه و بايد همراه ديگر فلگ ها استفاده بشه.

  5. #5
    کاربر تازه وارد آواتار tanzadeh7
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    بوشهر
    پست
    98

    نقل قول: خاموش کردن سیستم

    از کمک هایی که کردید ممنونم ولی من اینها رو بلد هستم و میخوام یه چیز دیگه باشه مثلا ویندوز خودش تو C نوشته شده چحوری shutdown میشه.
    این کد ها در اسمبلی کامپیوتر رو خاموش میکنه من به این صورت آنها را در C استفاده کردم ولی خطا میده


    asm("mov ax, 0x5307");
    asm("mov bx, 0x0001");
    asm("mov cx, 0x0003");
    asm("int 0x15");

  6. #6

    نقل قول: خاموش کردن سیستم

    نقل قول نوشته شده توسط tanzadeh7 مشاهده تاپیک
    از کمک هایی که کردید ممنونم ولی من اینها رو بلد هستم و میخوام یه چیز دیگه باشه مثلا ویندوز خودش تو C نوشته شده چحوری shutdown میشه.<br>
    این کد ها در اسمبلی کامپیوتر رو خاموش میکنه من به این صورت آنها را در C استفاده کردم ولی خطا میده<br>
    <br>
    <br>
    asm("mov ax, 0x5307");<br>
    asm("mov bx, 0x0001");<br>
    asm("mov cx, 0x0003");<br>
    asm("int 0x15");<br>
    <br>
    <br>د ر مورد Protected Mode مطالعه کنید.

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

  1. خاموش کردن سیستم
    نوشته شده توسط shayan_delphi در بخش SQL Server
    پاسخ: 1
    آخرین پست: یک شنبه 26 شهریور 1385, 15:32 عصر
  2. خاموش کردن سیستم هنگام ذخیره اطلاعات؟
    نوشته شده توسط Ali-Far در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 1
    آخرین پست: شنبه 02 اردیبهشت 1385, 14:25 عصر
  3. وقفه یا برنامه برای خاموش کردن سیستم
    نوشته شده توسط parhamsaboor در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 1
    آخرین پست: شنبه 03 دی 1384, 23:40 عصر
  4. خاموش کردن سیستم
    نوشته شده توسط فرزاد دلفی باز در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: سه شنبه 06 مرداد 1383, 13:24 عصر

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

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