دسته
لينك هاي دسترسي سريع
مطالب من در ثبت مطالب روزانه
آرشیو
آمار وبلاگ
تعداد بازدید : 1155456
تعداد نوشته ها : 1368
تعداد نظرات : 348
Rss
طراح قالب
مهدي يوسفي
برای Shut Down کردن سیستم از تابعExitWindowEx استفاده میشه :

Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

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

Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4

همش به غیر از آخری واضحه.آخری با هر کدوم از بقیه که ترکیب بشه (با Or ) موجب میشه که ویندوز برنامه ها رو مجبور به بستن کنه.پارامتر دوم رو هم VbNullString قرار بدین
.مثال :

Private Sub Command1_Click()
ExitWindowsEx EWX_SHUTDOWN or EWX_FORCE, VbNULLString
End Sub

توی ویندوز XP این روش کار نمیکنه.برای شات دانون کردن ویندوز باید از فایل ShutDown.Exe که توی دایرکتوری سیستم هست استفاده کرد.این فایل واسه Shut Down کردن چند تا پارامتر میتونه بگیره که یکیش رو حتما باید بش بدین :

-I

یه واسط کاربری نشون میده که توی اون کاربر Options ها رو مشخص میکنه و بعد OK میکنه تا سیستم خاموش بشه و اگه این رو استفاده کردین دیگه نیاز به پارامتر دیکه ای نیست .البته این پارامتر اصلا به کار ما نمیاد.ما میخواهیم به طور اتوماتیک سیستم رو Shut Down کنیم.

-l

سیستم Logoff میشه

-s

سیستم Shutdown میشه.(توی قسمت های قبلی هرجا گفتم Shut Down منظورم Restart , Shutdown , Logoff بود)

-r

سیستم Restart میشه.

-a

اگه سیستم در حال Shut Down شدن باشه ،این کار لغو (abort)میشه.

-t [Seconds]

این برای زمان بکار میره.یعنی اینکه اگه از این پارامتر استفاده کنین باید بعدش یه عدد که معرف ثانیه هستش بنویسین که اگه این کارو بکنین یه پنجره مثل این نشون داده میشه و سیستم بعد از زمانی که شما تعیین کردین Shut Down میشه:

-c "[This is a comment] "

اگه از پارامتر t استفاده کرده باشین با این پارامتر (c) میتونین توی قسمت Message یه پیغام برای کاربر نشون بدین مثل اینی که من گذاشتم (This is a comment) در ضمن طول این پیغام حداکثر باید 127 کاراکتر باشه.


-f

مثل مقدار EWX_FORCE توی تابع ExitWindowsEx عمل میکنه یعنی اگه ازش استفاده کنین ویندوز برنامه ها رو مجبور به بستن میکنه.
حالا ما برای Shut Down کردن باید این فایل رو با پارامتر ها باز کنیم.از تابع Shell استفاده میکنیم :
2 تا دکمه یکی cmdShutDown و یکی دیگه cmdAbort درست کنین :

Private Sub cmdShutDown_Click()
Shell "Shutdown.exe -r –t 30 –f –c " & """" & "This is a comment" & """"
End Sub
Private Sub cmdAbort_Click()
Shell "Shutdown.exe –a"
End Sub

وقتی دکمه cmdShutDown رو بزنین یه پنجره مثل پنجره ای که عکسش رو گذاشتم ظاهر میشه و شمارش معکوس از 30 شروع میشه.اگه به 30 برسه ویندوز رستارت میشه.اگه دکمه cmdAbort رو بزنین پنجره ی Shut Down بسته میشه.
حالا یه کد واسه رستارت در همون لحظه :

Private Sub cmdShutDown_Click()
If MsgBox("Are you sure? ",VbCritical + VbYesNo) = VbYes Then
Shell "ShutDown.exe –r –f –t 0"
End If
End Sub

پنج شنبه بیست و ششم 10 1387
X