PDA

View Full Version : مبتدی: خاموش کردن



Gr33nNINf1Ght3R
سه شنبه 23 مهر 1392, 17:49 عصر
سلام دوستان
من میخوام یه برنامه بنویسم که کامپیوتر رو بعد از چند ثانیه(مقداری که یوزر وارد میکنه) خاموش بشه.آیا خود VB6 6 این قابلیت و دستور ها رو داره و یا باید یه کاری کرد که یه فایل .bat هست رو اجرا کنه؟و یه سوال دیگ.اگر بخواهیم دستور خاموش شدن رو لغو کنیم باید چه دستوری وارد کنیم (هم در CMD و هم در VB 6)البته به جز Ctrl+V
ممنون

nimar9
سه شنبه 23 مهر 1392, 18:19 عصر
سلام دوستان
من میخوام یه برنامه بنویسم که کامپیوتر رو بعد از چند ثانیه(مقداری که یوزر وارد میکنه) خاموش بشه.آیا خود VB6 6 این قابلیت و دستور ها رو داره و یا باید یه کاری کرد که یه فایل .bat هست رو اجرا کنه؟و یه سوال دیگ.اگر بخواهیم دستور خاموش شدن رو لغو کنیم باید چه دستوری وارد کنیم (هم در CMD و هم در VB 6)البته به جز Ctrl+V
ممنون

شما می توانید با استفاده از کد کامپیوتر رو خاموش کنید و میتوانید با استفاده از تایم خود کامپیوتر و ویندوز این دستور رو اجرا کنید.

shell "Shutdown-s"


یه قطعه کد کوچیک در زیر گذاشتم که می تونید با استفاده از آن به راحتی در ساعت اعلام شده کامپیوتر خاموش شود.
شما نیاز به یه تایمر به اسم Timer1 و یه لیبل به نام Label1 دارید.

کد:
Dim a

Private Sub Form_Load()
a = InputBox("Saat ra morede nazar ra vared konid", "Zaman")
Timer1.Enabled = True
Timer1.Interval = 500
End Sub

Private Sub Timer1_Timer()
Label1.Caption = CStr(Time)
If Left(Label1.Caption, 1) = a Then Shell "Shutdown-s"
End Sub


دستور در CMD
برای خاموش کردن کل کامپیوتر از Shutdown-s
برای ریستارت سیستم از Shutdown-r
و برای لغو خاموش از Shutdown-a استفاده می کنیم.

برای استفاده در VB6
Shell "کد شما در داس یا سی ام دی"

Gr33nNINf1Ght3R
چهارشنبه 24 مهر 1392, 09:36 صبح
ممنون از پاسختون
حالا اگر بخواهیم که force shutdown کنیم باید چکار کنیم؟

SlowCode
چهارشنبه 24 مهر 1392, 09:49 صبح
سلام
shutdown -s -t 0 -f

Gr33nNINf1Ght3R
چهارشنبه 24 مهر 1392, 14:20 عصر
با سلام
یه سوال دیگه:
من مدت زمانی رو که توسط یوزر وارد میشه رو zaman تعریف کردم و برای اجرای دستور نوشتم:
Shell("shutdown -s -t zaman")
اما کد اجرا نمی شود.باید متغیر زمان رو چجوری تعریف کنم؟

SlowCode
چهارشنبه 24 مهر 1392, 15:21 عصر
هرچیزی که داخل علامت کوتیشن("") نوشته بشه رشته محسوب میشه، پس باید اینطوری نوشت:

Shell("shutdown -s -t " & zaman)

Gr33nNINf1Ght3R
چهارشنبه 24 مهر 1392, 15:24 عصر
ممنون
یه سوال دیگه من zaman رو در یه private sub معرفی کردم و حالا میخوام از اون متغییر استفاده کنم ولی توی یک private sub دیگه .میتونم این کارو بکنم یا نه.

SlowCode
چهارشنبه 24 مهر 1392, 15:50 عصر
دو راه داری:
1- اون متغیر رو به صورت public معرفی کنی.
2- کد خاموش کردن رو به صورت یه تابع بنویسی و یه پارامتر زمان داشته باشه، بعد هرجا خواستی میتونی ازش استفاده کنی.

البته فکر کنم مورد اول جواب شما باشه، در هر صورت نمیتونی به یه متغیر خصوصی دسترسی پیدا کنی. باید عمومی باشه.

بهروز عباسی
چهارشنبه 24 مهر 1392, 15:56 عصر
بهتره از API مخصوص همین کار یعنی ExitWindowsEx (http://msdn.microsoft.com/en-us/library/aa376868%28VS.85%29.aspx) استفاده کنی !
یک نکته جالب توجه در مورد این API :


To shut down or restart the system, the calling process must use the AdjustTokenPrivileges (http://msdn.microsoft.com/en-us/library/aa375202%28v=vs.85%29.aspx) function to enable the SE_SHUTDOWN_NAME privilege. For more information, see Running with Special Privileges (http://msdn.microsoft.com/en-us/library/ms717802%28v=vs.85%29.aspx).



اینم مثال
How to Shut Down the System (http://msdn.microsoft.com/en-us/library/aa376871%28VS.85%29.aspx)


روز خوش.

Gr33nNINf1Ght3R
چهارشنبه 24 مهر 1392, 16:55 عصر
دو راه داری:
1- اون متغیر رو به صورت public معرفی کنی.
2- کد خاموش کردن رو به صورت یه تابع بنویسی و یه پارامتر زمان داشته باشه، بعد هرجا خواستی میتونی ازش استفاده کنی.

البته فکر کنم مورد اول جواب شما باشه، در هر صورت نمیتونی به یه متغیر خصوصی دسترسی پیدا کنی. باید عمومی باشه.

بخوام public کنم فقط باید به جای private sub بنویسم public sub یا باید کار دیگه ای بکنم.این کار رو کردم ولی نشد.

Gr33nNINf1Ght3R
چهارشنبه 24 مهر 1392, 17:21 عصر
سلام
برنامه رو طوری نوشتم که 4 تا radio button داشته باشه که هر کدوم مال یه کار باشه(restart,shutdown,hibenate,force shutdown) و دستور کلید run رو اینجوری نوشتم ولی فقط برای shutdown اجرا میشه نمیدونم چرا
Public Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If (sbutton1.Checked) Then
Shell("shutdown -s -t" & zaman)
End If
If (rbutton2.Checked) Then
Shell("shutdown -r -t" & zaman)
End If
If (hbutton3.Checked) Then
Shell("shutdown -h -t" & zaman)
End If
If (fsbutton4.Checked) Then
Shell("shutdown -s -f -t" & zaman)
End If
End Sub

setroyd
پنج شنبه 25 مهر 1392, 17:59 عصر
دوست عزیز اولا اینجا بخش vb6 هست نه vb.net شما کدت .net هست دوما شما بین زمان و -t باید یک فاصله بزاری .