View Full Version : انقضای برنامه بعد از 3 ماه
afrashteh1
یک شنبه 20 مرداد 1387, 23:34 عصر
دوستان من می خوام برنامه ای که نوشتم بعد از مدت تعیین شده از کار بیفته و با پیغامی کاربر را از این امر مطلع کنه.
r_oscar2007
دوشنبه 21 مرداد 1387, 00:55 صبح
با ثبت اطلاعات در ريجستري ميتواني انجام دهي اگر خواستي بگو تا برات مثال بزنم
ariana1
دوشنبه 21 مرداد 1387, 07:08 صبح
سلام لطف می کنید یه مثال بزنید
scarce
دوشنبه 21 مرداد 1387, 08:50 صبح
برای اینکار شما می تونید به وسیله یک تایمر تاریخ کامپیوتر رو بگیرید و هر بار که برنامه رو اجرا کردید این تاریخ در یک فایل یا در رجیستری ویندوز ثبت کنید و شما باید در برنامه تون زمانی که برنامه رو اجرا می کنید در قسمت فرم لود چک می کنید که آیا از سه ماه گذشته یا نه مثلا تاریخ سیستم به این شکل 1387/x/6 حالا شما باید چک کنید که مثلا اگر تاریخ برابر با این 1387/x+3/6 بود برنامه قفل شود. البته این یک نمونه ابتدایی هست که مثال زدم شما می تونید با جستجو در این تالار چیزی بهتر از این پیدا کنید.
r_oscar2007
دوشنبه 21 مرداد 1387, 09:45 صبح
Private Sub Form_Load()
On Error Resume Next
Dim ret As Variant
strdate = Date
retval = GetSetting("progect1", "setting", "endtime", ret)
Label1.Caption = ret
If strdate = retval Then
MsgBox "ãåáÊ ÊÓÊ ÈÑäÇãå ÊãÇã ÔÏå ÇÓÊ áØÝÇ ÈÑÇí ÝÚÇá ÓÇÒí Âä ÈÇ ãÇ ÊãÇÓ ÈÑíÏ", vbCritical, "åÔÏÇÑ"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim intdate As Integer
Dim strdate As String
strdate = Date + 90
SaveSetting "progect1", "setting", "endtime", strdate
End Sub
r_oscar2007
دوشنبه 21 مرداد 1387, 09:53 صبح
Private Sub Form_Load()
On Error Resume Next
Dim ret As Variant
strdate = Date
retval = GetSetting("progect1", "setting", "endtime", ret)
If strdate => retval Then
MsgBox "ãåáÊ ÊÓÊ ÈÑäÇãå ÊãÇã ÔÏå ÇÓÊ áØÝÇ ÈÑÇí ÝÚÇá ÓÇÒí Âä ÈÇ ãÇ ÊãÇÓ ÈÑíÏ", vbCritical, "åÔÏÇÑ"
unload me
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim intdate As Integer
Dim strdate As String
strdate = Date + 90
SaveSetting "progect1", "setting", "endtime", strdate
End Sub
نكته : شما نبايد از اين روش براي برنامه هاي خود استفاده كنيد چو اصلا امنيت ندارد و خيلي راحت كرك ميشود
afrashteh1
دوشنبه 21 مرداد 1387, 10:30 صبح
از پاسخ شما بسیار متشکرم .
دوست عزیز میشه همین کد را توضیح بدین و کار تابع getseting چیه؟
برای جستحو در سایت در این زمینه با از چه کلماتی اسفاده کرد اخه من هر چه جستجو کردم در داین زمینه چیزی پیدا نشد
لطف می کنید یه نمونه عملی در این زمینه به من بدین که هم عملی باشه و هم از لحاظ امنیت تا اندازه ای مطئن باشه
r_oscar2007
دوشنبه 21 مرداد 1387, 12:18 عصر
تابع getsetting يكي از توابع ويوال بيسيك ميباشد كه كارش خواندن اطلاعات از ريجستري ميباشد
و به وسيله ي تابع savesetting ما مي توانيم اطلاعات را در ريجستري ثبت كنيم
afrashteh1
دوشنبه 21 مرداد 1387, 12:23 عصر
حال چطوری تعداد ماهها را افزایش دهم و چطوری مطمئن بشم که این سر موقع به درستی عمل می کنه(یعنی طریقه امتحان کردن این برنامه قبل از تحویل)
xxxxx_xxxxx
دوشنبه 21 مرداد 1387, 13:22 عصر
خب تاريخ سيستمتو عوض كن بعد برنامه رو اجرا كن.
همونطور كه بچه ها گفتن اين اصلا امنيت نداره بايد پيشرفته ترش كني مثلا چند جاي ديگه هم همينو ذخيره كني و بعضي جا تبديل به كدش كني بعد ذخيره كني و و و ...
sohrab o
دوشنبه 21 مرداد 1387, 15:06 عصر
با تشکر
البته این روش یک ضعف هم داره
کاربر هر بار میتونه رجیستری را ریست کنه ( بازیانی کنه!)
در ضمن نرم افزارهایی هم هست که می تونه پیدا کنه که کجای رجیستری نوشتیم
برای اطمینان بیشتر ، میتونی همزمان در دو قسمت ( رجیستری - یک فایل همراه ) اطلاعات را بصورت کد شده ذخیره کنی.سپس هر دفعه قبل از اجرا باید چک کنی که از تعداد مشخص تجاوز نکرده باشه و هم اطلاعاتی که در دو قسمت ذخیره کردی با هم برابر باشه که اگر مثلا رجیستری را تغییر داد با توجه به اینکه اطلاعات 2 قسمت با هم برابر نمی باشند، خطا داده میشود
نمیدونم قابل فهم بود یا نه؟
ƒxmahdi
سه شنبه 22 مرداد 1387, 22:35 عصر
من یه نمونه براتون گذاشتم ولی اگر کاربر از محل ذخیره اطلاعات در ریجستری آگاه بشه دیگه این روش فایده ای نداره . فقط شما می توانید با یکسری از علائم اطلاعات را در رجستری ذخیره کنید در این صورت امنیت بیشتر می شه .
meisambandari
سه شنبه 22 مرداد 1387, 22:59 عصر
این تاپیک رو ببینید
http://barnamenevis.org/forum/showpost.php?p=572500&postcount=1136
afrashteh1
شنبه 26 مرداد 1387, 01:14 صبح
Private Sub Form_Load()
On Error Resume Next
Dim ret As Variant
strdate = Date
retval = GetSetting("progect1", "setting", "endtime", ret)
Label1.Caption = ret
If strdate = retval Then
MsgBox "ãåáÊ ÊÓÊ ÈÑäÇãå ÊãÇã ÔÏå ÇÓÊ áØÝÇ ÈÑÇí ÝÚÇá ÓÇÒí Âä ÈÇ ãÇ ÊãÇÓ ÈÑíÏ", vbCritical, "åÔÏÇÑ"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim intdate As Integer
Dim strdate As String
strdate = Date + 90
SaveSetting "progect1", "setting", "endtime", strdate
End Sub
دوست عزیز این کدی که شما گفتید در هر بار به تاریخ جدید 90 را اضافه میکنه یعنی اینکه همیشه 90 روز جلوتره.چرا که در هربار unload کردن این کار انجام میگیره
r_oscar2007
شنبه 26 مرداد 1387, 13:01 عصر
ببخشید
کد را اصلاح میکنم شما باید در قسمت آنلود یک شرط بذاری که اگر این کلید وجود نداشت آن کلید رابسازد و به آن مقدار بدهد در صورتی که کلید وجود داشت کاری انجام نشود
afrashteh1
شنبه 26 مرداد 1387, 13:54 عصر
دوست عزیز اگه امکان داره خیلی سریع این کارو انجام بدین من باید پروژه را تحویل بدم
دوستان کسی نیست ما را کمک کنه
afrashteh1
یک شنبه 27 مرداد 1387, 17:33 عصر
دوستان کسی نبود ما را کمک کنه
afrashteh1
دوشنبه 28 مرداد 1387, 12:37 عصر
دوستان یعنی کسی نمیتونه ما را کمک کنه
r_oscar2007
دوشنبه 28 مرداد 1387, 18:06 عصر
Public Sub readPassWord_FromRegistry()
Dim passW As String
Do
passW = InputBox("Please Enter Password:", "Password", "?")
If passW = "" Then End
If passW = GetSetting(App.EXEName, "PW", "PW", "") Then
Exit Sub
Else
MsgBox "Wrong PassWord !" + vbCrLf + "You Are Using The Trial
Version Of This Program." _
+ vbCrLf + "Get Its Latest Version at -> 021-7878195 ", _
vbExclamation, "Sorry !"
End If
Loop
End Sub
Private Sub Form_Load()
putPassWord_InRegistry "Vahid"
readPassWord_FromRegistry
End Sub
saeid12
پنج شنبه 07 آذر 1387, 01:59 صبح
مخواستم بپرسم چطوری کاری کنم که برنامم بعد از نصب 12 روز دیگش در صورت رجیستر نشدن بپره و دوباره نصب نشه (البته منظور از اینکه دوباره نصب نشه اینه که تو یه ویندوز دوبار نصب نشه مثل adobe audition)
باز هم تشکر از شما اساتید.
راستی نمیخوام با تاریخ سیستم نوشته شه چون راحت میشه دورش زد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.