PDA

View Full Version : زمانی کردن برنامه



sabair
جمعه 30 شهریور 1386, 23:04 عصر
سلام
من برنامه نوشته ام ،می خواهیم این برنامه 30 روز که شد سپس کد فعالسازی خواسته باشددقیقامثل برنامه های که بعداز مدتی دوره آزمایشی آن تمام شده است.و باید ریجستر کرد
من تا حدی آن را برنامه نویسی کرده ام
ولی مشکی در حالت نمایش روز دارم می خواهم مدت روز را نمایش دهد
یا label در
ProgressBar1
متشکرم
کد


Dim D As Integer
Dim M As Integer
Dim Y As Integer
Private Sub Form_Load()
D = GetSetting("saba", "ir", "Day", 0)
M = GetSetting("saba", "ir", "Month", 0)
Y = GetSetting("saba", "ir", "Year", 0)
If D = 0 And M = 0 And Y = 0 Then
SaveSetting "saba", "ir", "Day", Day(Date)
SaveSetting "saba", "ir", "Month", Month(Date)
SaveSetting "saba", "ir", "Year", Year(Date)
D = GetSetting("saba", "ir", "Day", [Default])
M = GetSetting("saba", "ir", "Month", [Default])
Y = GetSetting("saba", "ir", "Year", [Default])
End If
If Val(Day(Date)) >= Val((D) + 3) Or Val(Month(Date)) > Val(M) Or Val(Year(Date)) > Val(Y) Then
MsgBox "مدت برنامه تمام شده است", vbCritical, "خطا"
Unload Me
ElseIf Val(Day(Date)) < Val(D) Or Val(Month(Date)) < Val(M) Or Val(Year(Date)) < Val(Y) Then
MsgBox "شما تاریخ کامپیوتر را به عقب باز گرداندید", vbExclamation, "عقب آوردن تاریخ"
Unload Me
End If
End Sub


برای نمایش عمل انجام برنامه
یک بار برنامه را اجرانمائید سپس تاریخ کامپیوتر را 4روز به جلو بکشید

__siavash__
جمعه 30 شهریور 1386, 23:20 عصر
خوب بیا تاریخ جاری رو از تاریخی که ثبت کردی کم بکن اختلافش بدست میاد بعد تو لیبل نشون بده !!!
مشکل کجاست ؟
البته یه سوال اگه کابر بیاد دستی کلیدهایی رو که شما ثبت کردی پاک کنه این دوره دوباره از اول شروع میشه
برای اونم فکری کردی ؟

estefan
جمعه 30 شهریور 1386, 23:28 عصر
من این کد رو یه جایی دیدم !!!!! . سیاوش درست میگه که بعدش اگر یکی از if ها درس باشه
این فروم رو ببنده فروم رجیستر رو نشون بده فهمیدی؟

sabair
جمعه 30 شهریور 1386, 23:34 عصر
خوب بیا تاریخ جاری رو از تاریخی که ثبت کردی کم بکن اختلافش بدست میاد بعد تو لیبل نشون بده !!!
مشکل کجاست ؟
البته یه سوال اگه کابر بیاد دستی کلیدهایی رو که شما ثبت کردی پاک کنه این دوره دوباره از اول شروع میشه
برای اونم فکری کردی ؟

آقا سیاوش شما یک برنامه قدرتمندی برای من ارسال کنید
استاد خیلی ضروری است
با تشکر

sabair
جمعه 30 شهریور 1386, 23:35 عصر
کار خیلی بزرگی می کنید
خیلی ضروری است

estefan
جمعه 30 شهریور 1386, 23:50 عصر
این دوتا چطوره؟؟؟؟

Hossein Bazyan
شنبه 31 شهریور 1386, 01:03 صبح
قبلا در یکی از پستها مطرح شد و به نتیجه نرسید. مشکل اینجا بود که این مدت را چگونه باید محاسبه نمود. اگر کاربر تاریخ را جلو یا عقب بکشه چه میشه و برنامه اشتباه میکنه .
بهر حال پست به نتیجه نرسید

__siavash__
شنبه 31 شهریور 1386, 01:52 صبح
آقای Hossein Bazyan
درست میگه ما قبلا در این مورد بحث کردیم تو تاپیک "گذاشتن محدودیت برای برنامه" که آخرشم به نتیجه نرسیدیم

majid325
شنبه 31 شهریور 1386, 02:24 صبح
اگه به جای تعداد روز ، تعداد ساعت در نظر بگیری خیلی راحتر میشه کار کرد و یا کاربر رو مجبور بکنی که در شروع برنامه به اینترنت وصل شه و از یه سایت معتبر تاریخ رو بگیری !

mjelecom
شنبه 31 شهریور 1386, 03:24 صبح
من یه بار برای یه برنامه ام خیلی تاقچه بالا گذاشتم اینکارو کردم:
1- اولین بار که برنامه ران میشد تاریخ رو میگرفت و ته یه فایل EXE الکی که فقط وجودش لازم بود (تو چند جای برنامه وجودشو تست می کردم) ثبت میکردم.
2- دفعه دوم تاریخو میخوندم مقایسه میکردم اگه از روز اول عقبتر نرفته بود تو جای دیگه ای ذخیره میکردم.
3- دفعات بعد تاریخ روزو میگرفتم اگه از زمان قبلی عقب تر نبود و فاصله اش از روز اول بیشتر از یه عددی نمیشد امروزو بجای دفعه دوم ذخیره میکردم و ...... اگر بیشتر میشد یا تخلفی دیده میشد خودم یه فایل لازمو جوری برنامه میریختم که برنامه متوجه بشه و اجازه دسترسی نده و اگرم کرک شد اوون دستکاریه باعث بشه وسطاری کار برنامه RUN TIME ERROR بده
راستی یارو خودش اینکاره بود(برنامه بالا میکشد و کرک میکرد) وقتی فهمید کلا بیخیال سفارشی که داده بود شد.:شیطان:

M8SPY_OK
شنبه 31 شهریور 1386, 11:38 صبح
روشی که بیایم و تاریخ از قبل ثبت شده رو با تاریخ جاری مقایسه کنیم . یک باگه - اون هم چه باگی .

بهترین کار :

برنامه رو محدود به ساعات استفاده بکنیم .

یعنی زمان هایی رو در نظر بگیریم که کاربر داره از برنامه استفاده می کنه .
مثلاً خود من یک برنامه نوشتم که از 1 ساعت بیشتر نمی شد ازش استفاده کرد و بعد از 1 ساعت کد فعال سازی بخواد .


یا یک روش دیگه :

دقیقاً مثل EXIS AntiTrojan !

تعداد دفعات ورود به برنامه رو در نظر بگیریم . مثلاً بیشتر از 50 بار نتونیم وارد یک برنامه بشیم .

mjelecom
شنبه 31 شهریور 1386, 12:45 عصر
راستی مقایسه تاریخ چرا باگه؟ :متفکر:

sabair
شنبه 31 شهریور 1386, 14:52 عصر
id
ostadonline2@yahoo.com
کار من را بر طرف کرد خدایش خیلی استاد است
من هر سئوالی کردم به من جواب داد
شما امتحان کنید
در ضمن همیشه آنلاین دریاهو مسنجر

Evil 69
شنبه 31 شهریور 1386, 17:44 عصر
خوب میشه تاریخ باقی مانده رو توی رجیستری سیستم طرف بذاری حلا دیگه طرف نمیتونه کاری بکنه چون نمیدونه تو کدوم کلیدی حلا اگر تاریخ سیستم رو نگاه کردی و دیدی با تاریخی که تو رجیستری هستش نمی خونه مثلا تاریخ عقب تری به کاربر یک پیام میدی که ( جیگر رو تو بخورم میخای تقلب کنی ) و بعد از اجرا شدن برنامه جلوگیری میکونی حالا کاربر برای اجرا شدن تنها راهش اینه که تاریخ رو درست کنه

mahmood_s
شنبه 31 شهریور 1386, 20:52 عصر
من هم یک برنامه نوشتم که همین کار رو لازم داشت دو تا کار انجام دادم
1 - اول اینکه یک نرم افزار دارم که کارش Trial کردن برنامه هاست که میتونه برنامه رو بر اساس مدت اعتبار (یعنی مثلا 30 روزه) یا چند بار اجرا شدن Trial کنه و برای حذفش باید کاربر فایل EXE صحیح رو کرک کنه و جایگزین کنه
2 - یک برنامه هم خودم به کمک اطلاعات بچه های سایت نوشتم که برنامه رو فقط روی یک سیستم با یک سریال خاص راه اندازی میکنه و از ترس کپی رایت هم کمی راحت میشی (البته در مورد کاربرهای آماتور , نه حرفه ای ها )