PDA

View Full Version : ریست کردن سیستم



Payman62
سه شنبه 07 شهریور 1385, 23:01 عصر
سلام.
ای پی آی ExitWindowsEx برای ریست کردنو لاگ آف کردنو و ... است.
این تابع برای لاگ آف کردن جواب میده ولی برای ریست کردن کار نمیکنه. کسی میدونه چطور میشه ریست کرد؟
یه کد تو سورسام پیدا کردم. با همین تابع ریست میکنه ولی قبلش از توابع دیگری مثل OpenProcessToken کمک میگیره. بدون توابع دیگه و فقط با ExitWindowsEx چطور میشه ریست کرد؟

m_nejad
چهارشنبه 08 شهریور 1385, 16:00 عصر
احتمالا تا برنامه های باز، close نشن نمیشه خاموش کرد. و تابع OpenProcessToken شاید این کار رو انجام میده

حامد مصافی
پنج شنبه 09 شهریور 1385, 01:45 صبح
shell "shutdown -r -t 0"

Payman62
پنج شنبه 09 شهریور 1385, 15:22 عصر
سلام.
API میخوام نه دستورات داس.
اینم جوابش.

Private Declare Function WTSShutdownSystem Lib "wtsapi32" (ByVal hServer As Long, ByVal ShutdownFlag As Long) As Long
Private Const WTS_WSD_REBOOT As Long = &H4
Private Sub Command1_Click()
WTSShutdownSystem ByVal 0&, WTS_WSD_REBOOT
End Sub

subsub
جمعه 10 شهریور 1385, 12:14 عصر
از تابع ExitWindowsEx برای خروج از محیط ویندوز استفاده می شود و به صورت زیر فراخوانی می شود.


Private|Public Declare Function ExitWindowsEx Lib "user32.dll" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

پارامتر اول آن یعنی uFlags از نوع long بوده و می تواند ترکیبی از مقادیر زیر را داشته باشد:

EWX_FORCE : مقدار آن برابر با 4 است. این گزینه سبب می شود که برنامه ها خاتمه یابند. اگر از این flag استفاده کنید ویندوز پیغامهای WM_QUERYENDSESSION و WM_ENDSESSION را به برنامه های در حال اجرا نمی فرستد و در نتیجه ممکن است برنامه در حال اجرا، اطلاعات خود را از دست دهد. در صورت ضرورت از این Flag استفاده کنید.
EWX_LOGOFF : مقدار آن برابر صفر است و اگر از ان Flag استفاده شود، تابع کاربر فعال را LogOff می کند.
EWX_REBOOT : مقدار آن برابر 2 است و سبب راه اندازی مجدد سیستم می شود.
EWX_POWEROFF : مقدار آن برابر &H8 است و سپس خاموش شدن سیستم می شود. باید سیستم توانایی PowerOff را داشته باشد.
EWX_SHUTDOWN : مقدار آن برابر یک است و سبب خاموش شدن سیستم می شود.

Payman62
شنبه 11 شهریور 1385, 01:13 صبح
سلام.
بنده هم عرض کرده بودم تابع ExitWindowsEx برای ریست جواب نمیده. باور نمیکنی امتحان کن.