PDA

View Full Version : سوال: بسته شدن خودکار نرم افزار



kingdaniyal
پنج شنبه 07 دی 1391, 15:42 عصر
سلام دوستان
من میخوام یه کاری کنم که وقتی تو تکست باکس نوشتم 60 بعد از 60 دقیقه نرم افزار بسته بشه
چجوری اینکارو بکنم؟:متفکر:

rezaprogrammer
پنج شنبه 07 دی 1391, 15:50 عصر
تو رویداد TextChange یه شرط بذار.

if textbox1.text = "60" then
application.close
end if

s.hoseinpoor
پنج شنبه 07 دی 1391, 15:51 عصر
یه تایمر بذار. روی رویداد change تکست باکس بنویس:
timer.Enabled=true;
بهتره زمان برحسب دقیقه رو به 60ضرب کنی تا ثانیه بشه یام اینتروال تایمرت رو 60000 بذاری
حالا تورویداد تیک تایمرت بنویس که با هر بار تیک یه واحد کم کن وقتی صفر شد برنامه بسته بشه

shahryari
پنج شنبه 07 دی 1391, 16:28 عصر
میتوانید از Thread.Sleep استفاده کنید
ابتدا :


Imports System.Threading

سپس در رویداد باتن کلیک یا تکست چنج تکست باکس کد زیر را بنویسید


Thread.Sleep(Val(TextBox1.text) * 1000)
End


بدون نیاز به تایمر

kingdaniyal
جمعه 08 دی 1391, 17:59 عصر
نشد من این کد دومو تو باتن گذاشتم اما وقتی روی دکمه کلیک میکنم برنامه هنگ میکنه

SHD.NET
جمعه 08 دی 1391, 18:58 عصر
بله . چون از thread اسلیپ استفاده شده . به نظر من بهترین راه همون تایمر هستش

:چشمک:\\\موفق باشید///:چشمک:

tstsst
جمعه 08 دی 1391, 20:14 عصر
سلام

با ترید و بدون هنگ یا قفل شدن فرم
اول اینو تو کلید یا هرچی میخوای بنویس

Dim tr As New Threading.Thread(AddressOf sleep)
tr.Start()

بعد..

Sub sleep()
Threading.Thread.Sleep(6000)
End
End Sub


هر جا بنویسی برنامه بعد 60 ثانیه بسته میشه
tr.Start()

Ali_Fallah
جمعه 08 دی 1391, 20:35 عصر
با سلام
میشه کدی نوشت که
در صورت حرکت نکردن موس بعد از مدت زمانیکه تعیین می کنیم (دقیقاً عین اسکرین سیور ویندوز)
فرم login باز بشه یا برنامه Close بشه یا هر کار دیگر... ؟
------
فقط حرکت نکردن موس
با تشکر

tstsst
جمعه 08 دی 1391, 20:56 عصر
با اینکه جاش اینجا نیست
برای مثال


Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
i = 0
End Sub
Dim i As Integer = 0
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
i += 1
If i = 10 Then
End
End If
End Sub

rezaprogrammer
شنبه 09 دی 1391, 00:44 صبح
تو رویداد TextChange یه شرط بذار.

if textbox1.text = "60" then
application.close
end if

از تایمر استفاده کن: 97456
اول در رویداد لود فرم این کد رو بذار:
Timer1.Interval = 60000
Timer1.Enabled = False

یه تایمر بذار برای اینکه بتونی تو زمان مشخص برنامه بسته بشه و تو رویداد TextChange جعبه متن تایمر رو شروع کن به استارت کردن اینطوری:
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.Text = "60" Then
Timer1.Enabled = True
End If
End Sub

اینم مربوط به رویداد تایمر:
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
Application.Exit()
End Sub

kingdaniyal
شنبه 09 دی 1391, 12:29 عصر
سلام

با ترید و بدون هنگ یا قفل شدن فرم
اول اینو تو کلید یا هرچی میخوای بنویس

Dim tr As New Threading.Thread(AddressOf sleep)
tr.Start()

بعد..

Sub sleep()
Threading.Thread.Sleep(6000)
End
End Sub


هر جا بنویسی برنامه بعد 60 ثانیه بسته میشه
tr.Start()
دوست عزیز من کدو به شکلی که نیاز دارم تغییر دادم
اما درست کار نمیکنه

Sub sleep()
Threading.Thread.Sleep((TextBox1.Text) * 1000)
End
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim tr As New Threading.Thread(AddressOf sleep)
tr.Start()
Button1.Enabled = False
End Sub

tstsst
شنبه 09 دی 1391, 18:04 عصر
دقیقا همین کد (تغییر یافته) شما رو من امتحان کردم درست جواب داد.
مشکلی در فرم کلوزین (FormClosing) ندارید ؟!
اگه نه بر نامه رو خط به خط اجرا کن ببین مشکل کجاست.

kingdaniyal
شنبه 09 دی 1391, 20:28 عصر
ببینید یه نکته هم بگم این کدو من تو یه فرم دیگه قرار دادم.مشکلی که نداره؟
ببینید من وقتی تو تکست باکس مینویسم 1 (یعنی 1 دقیقه) فرم پس از چند ثانیه بسته میشه.این مشکل منه.یعنی پس از 1 دقیقه نرم افزار بسته نمیشه

tstsst
شنبه 09 دی 1391, 20:40 عصر
کد داخل ترید رو تغییر بده (این قسمت رو)
Threading.Thread.Sleep((TextBox1.Text) * 60000)
هر 1000 تا 1 ثانیه س

kingdaniyal
یک شنبه 10 دی 1391, 12:53 عصر
درست شد ممنون