PDA

View Full Version : محدودیت زمانی برای ورود به برنامه



alizanganeh
یک شنبه 14 خرداد 1391, 21:22 عصر
سلام
میخوام برای ورود به برنامم سیستمی بذارم که مثلا اگر کاربر 10 بار رمز اشتباه وارد کرد ، تا 5 دقیقه اصلا نتونه وارد برنامه بشه
چیزی شبیه سیستم رمز گوشیا های مثلا نوکیا

چه کنم ؟


ممنون:قلب:

SlowCode
یک شنبه 14 خرداد 1391, 22:54 عصر
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

if txtPassword<> "110 then a=a+1"
if a=10 then sleep 60000

با این کد میتونی برنامه رو به مدت 1 دقیقه قفل کنی.

alizanganeh
یک شنبه 14 خرداد 1391, 23:49 عصر
ممنون

خب چطوری ازش استفاده کنم ازش؟

کجا بذارم ؟

چطوریاس ؟!

SlowCode
دوشنبه 15 خرداد 1391, 01:58 صبح
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

این سطر اولی رو بالاتر از همه کدها بنویس.
if txtPassword<> 110 then a=a+1
if a=10 then sleep 60000

بعد اون 2 سطر دیگه رو توی دکمه ورود قرار بده، به جای txtpassword نام تکست باکسی که توش پسورد وارد میشه رو قرار بده یا هرچیز دیگه. عدد 60000 هم زمان قفل شدن برحسب میلی ثانیه است مثلا 1000 میلی ثانیه میشه یه ثانیه. کد اصلاح شده :
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
If txtPassword = 110 Then
MsgBox "Password is correct"
Else
a = a + 1
End If
If a = 10 Then
sleep 60000
a = 0
End If
End Sub

alizanganeh
دوشنبه 15 خرداد 1391, 12:27 عصر
ممنون ولی خب اینا رو میدونستم
میخوام بدونم وقتی sleep اجرا بشه چه اتفاقی برای برنامه میافته که قفل میشه ؟
ممنون

SlowCode
دوشنبه 15 خرداد 1391, 13:30 عصر
خوب کار این تابع همینه، یعنی دسترسی به برنامه رو برای یه مدت معین محدود میکنه. جزئیاتش رو نمیدونم.:لبخند:

just4froum
دوشنبه 15 خرداد 1391, 14:00 عصر
کد دوست عزیزم آقا محسن خوب هست ولی استفاده از تابع sleep موجب هنگ برنامه میشه که مخصوصا اگر بخواهید در مدت زیاد مثل 5 دقیقه استفاده کنید کاربر فکر می کنه برنامه هنگ کرده.

این یه نمونه کده که با توجه به نیاز برنامه باید تغییرش بدی ولی تمامی کنترل هارا در تمامی فرم ها غیر فعال میکنه.

Private Sub deActive()
Dim m As Form
Dim obj As Object

For Each m In Forms
For Each obj In m.Controls
obj.Enabled = False
Next
Next
End Sub

Private Sub Active()
Dim m As Form
Dim obj As Object

For Each m In Forms
For Each obj In m.Controls
obj.Enabled = True
Next
Next
End Sub

Private Sub Command1_Click()
Call deActive
Timer1.Enabled = True
End Sub

Private Sub Form_Load()
Timer1.Interval = 5000
End Sub

Private Sub Timer1_Timer()
Timer1.Enabled = False
Call Active
End Sub

arenaw
دوشنبه 15 خرداد 1391, 16:30 عصر
فکر میکنم کدهایی که دوستان نوشتند رو اگه کاربر 1 بار برنامه رو ببنده و دوباره باز کنه جواب نمیده
این کدی هم که من نوشتم با ساعت کامپیوتر کار میکنه و اگر هم کاربر آدرس اون sFile رو پیدا کنه .......!

Const sFile = "C:\protected.ini"
Function IsAccessed(Optional iMinute% = 1) As Boolean
On Error Resume Next
Dim d$, t$
If Dir(sFile) = "" Then 'Age file mojud nabud yani karbar tahala ramzo 10 bar eshtebah nazade
Exit Function
End If
Open sFile For Input As #1
Line Input #1, d
Line Input #1, t
Close
If Month(Now) = Month(d) And Hour(t) >= Hour(Now) And Minute(t) >= Minute(Now) - (iMinute - 1) Then
'Yani karbar tu iMinute akhir be barname dastresi dashte!
IsAccessed = True
End If
Close #1
End Function

Function PrintNow()
On Error Resume Next
Open sFile For Output As #1
Print #1, Date
Print #1, Hour(Now) & ":" & Minute(Now)
Close
End Function

Private Sub Form_Load()
Dim WrongPass%, Pass$
If IsAccessed = True Then
MsgBox "Program locked for 5 minute!": End
Else
Do While WrongPass < 10 And Pass <> "12345"
WrongPass = WrongPass + 1
Pass = InputBox("Enter Password", WrongPass & "/10")
Loop
If Pass <> "12345" Then PrintNow: MsgBox "Program locked for 5 minute!": End
End If
End Sub

just4froum
دوشنبه 15 خرداد 1391, 16:57 عصر
فکر میکنم کدهایی که دوستان نوشتند رو اگه کاربر 1 بار برنامه رو ببنده و دوباره باز کنه جواب نمیده
این کدی هم که من نوشتم با ساعت کامپیوتر کار میکنه و اگر هم کاربر آدرس اون sFile رو پیدا کنه .......!



حرف شما درسته ولی برنامه ای که فقط می خواد 5 دقیقه قفلش کنه فکر نکنم به کد محکمی هم نیاز داشته باشه .

alizanganeh
دوشنبه 15 خرداد 1391, 16:59 عصر
ببینید دوستان من میخوام اگر کاربر برنامه رو بست هم دیگه نتونه وارد برنامه بشه

just4froum
دوشنبه 15 خرداد 1391, 17:01 عصر
ببینید دوستان من میخوام اگر کاربر برنامه رو بست هم دیگه نتونه وارد برنامه بشه

کلا نتونه یا برای 5 دقیقه نتونه ؟

alizanganeh
دوشنبه 15 خرداد 1391, 17:22 عصر
کلا نتونه یا برای 5 دقیقه نتونه ؟


کلا نتونه که پس واسه چی برنامه رو نوشتم ؟!
بمدت مثلا 5 دقیقه حتی اگر برنامه رو بست و دوباره باز کرد هم برنامه باز نشه و ارور خاصی بده

just4froum
دوشنبه 15 خرداد 1391, 17:28 عصر
کلا نتونه که پس واسه چی برنامه رو نوشتم ؟!ه
مگه تاحالا برنامه های امنیتی رو ندیدی ؟


بمدت مثلا 5 دقیقه حتی اگر برنامه رو بست و دوباره باز کرد هم برنامه باز نشه و ارور خاصی بده
پس کد جناب arenaw چه کار می کنه ؟

alizanganeh
دوشنبه 15 خرداد 1391, 21:32 عصر
ممنون درست شد همون کد arenaw کار کرد . ممنون