PDA

View Full Version : سوال: قفل زمان دار



f_g1348
سه شنبه 11 اسفند 1388, 09:26 صبح
سلام به دوستان
من شدیدا نیاز به کدی دارم که در برنامه ام وارد کنم تا در تاریخ خاصی فعال بشه و دیگر نتوان با برنامه کار کرد مگر کد خاصی را وارد کرد .
در اصل من دارم کدی را برای جایی می نویسم و می خواهم اگر بعد از انجام کارم من را از آن شرکت بیرون کردن دیگر این برنامه کار نکند.
ممنون میشم اگر کمک کنید.
با تشکر

Asad.Safari
سه شنبه 11 اسفند 1388, 11:34 صبح
در اصل من دارم کدی را برای جایی می نویسم و می خواهم اگر بعد از انجام کارم من را از آن شرکت بیرون کردن دیگر

اگر نکردند چی ؟ برنامه از کجا بفهمه شما رو از کار اخراج کردند یا نه ؟

می تونید کدهایتان را DLL کنید و در DLL یه تاریخی رو بررسی کنید اگر از اون تاریخ رد شد , DLL خودش رو حذف کنه و چونکه کدهای اصلی برنامه داخل DLL است برنامه از کار میفتد .

موفق باشید

ASKaffash
سه شنبه 11 اسفند 1388, 12:14 عصر
سلام به دوستان
من شدیدا نیاز به کدی دارم که در برنامه ام وارد کنم تا در تاریخ خاصی فعال بشه و دیگر نتوان با برنامه کار کرد مگر کد خاصی را وارد کرد .
در اصل من دارم کدی را برای جایی می نویسم و می خواهم اگر بعد از انجام کارم من را از آن شرکت بیرون کردن دیگر این برنامه کار نکند.
ممنون میشم اگر کمک کنید.
با تشکر

سلام
بهتراست هیچ قفلی را روی برنامه نگذارید چون بقای شما به اجرائی شدن برنامه است نه به از کار افتادن برنامه شما یک خودروی گران قیمت را بدون گارانتی می خرید؟ پس برنامه شما هر چه بهتر کارکند گواه بر قدرت شماست(صداقت بهترین روش است)

f_g1348
یک شنبه 16 اسفند 1388, 10:51 صبح
دوستان من میگم که مثلا هر 2 ماه یکبار نیاز به اکتیو کردن برنامه باشد نه اینکه برنامه حذف شود.

Jozef
دوشنبه 17 اسفند 1388, 15:51 عصر
با نصب برنامه یه فایل ایجاد کنید، بهتره در شاخه های ویندوز باشه و برای کنترل زمان از طول عمر فایل استفاده کنید. در مورد دوباره اکتیو کردن، فایل رو دوباره متولد کنید
البته این یک روش ساده است.

f_g1348
سه شنبه 18 اسفند 1388, 11:14 صبح
با تشکر از شما دوست عزیز
ولی چطور می تونم طول عمر فایل را کنترل کنم؟

Jozef
سه شنبه 18 اسفند 1388, 14:33 عصر
دوست عزیز من فرض بر این گذاشتم که شما با ساختار فایلها آشنایی دارید.:چشمک:
تعیین وجود فایل : FileExists(FileName) اگر فایل وجود داشته باشد true برمیگرداند.
تعیین عمر فایل : FileAge(FileName) یک عدد صحیح برمیگرداند که تعداد روزهایی است که فایل ایجاد شده.
تعیین زمان ایجاد فایل : FileGetDate(FileName) زمان ایجاد فایل را به صورت یک عدد صحیح برمیگرداند.
حذف فایل : Erase(FileName) البته فایل مورد نظر نباید باز باشد.
...
مثال آماده ندارم ولی اگر به مشکل خوردین براتون آماده میکنم.:لبخندساده:
حتی میتونین اطلاعات Userهاتون رو در همین فایل نگهداری کنین.

ASKaffash
سه شنبه 18 اسفند 1388, 14:48 عصر
سلام
حالا اگر تاریخ برنامه را قبل از اجرا به یک عدد تنظیم و پس از خروج به عدد واقعی تنظیم کرد چی می شود ؟
من همین کار را دارم برای Reflector بدون کرک انجام میدهم

Jozef
سه شنبه 18 اسفند 1388, 15:05 عصر
حالا اگر تاریخ برنامه را قبل از اجرا به یک عدد تنظیم و پس از خروج به عدد واقعی تنظیم کرد چی می شود ؟
بیشتر توضیح بدین!
راستش متوجه نشدم که سوالتون در مورد روشیه که من گفتم یا نه، خودش یه روشه؟
عددی که در ابتدا تنظیم میشه از کجا بدست میاد؟

ASKaffash
چهارشنبه 19 اسفند 1388, 07:53 صبح
سلام
وقتی شما از روش کنترل تاریخ می خواهید استفاده کنید یک عدد که تابعی از زمان دستگاه در هنگام نصب است می خواهید استفاده کنید سپس می خواهید مثلا 10 روز کار کند حال اگر من نوعی بدانم که روش کار شما اینطوری است که کافیست قبل از اجرای برنامه زمان را به آن روز عقب بکشم بنابراین برنامه شما فکر می کند که هنوز 10 روز فرا نرسیده است برنامه های Trial اینطوری عموما فریب می خورند (مثل همین Reflector خودمان)

Jozef
چهارشنبه 19 اسفند 1388, 15:35 عصر
سلام
منم که قبلا گفتم این یه روش سادست
شما پیشنهادی ندارین؟
میشه تغییر تاریخ سیستم رو تشخیص داد، آیا این میتونه مشکل رو حل کنه و جلوی فریب سیستم رو بگیره؟
میشه از این روش استفاده کرد که قسمتهایی رو که به تاریخ مربوطه و مهم هست، در برنامه غیر فعال کنیم و فقط تاریخ رو از سیستم بخونیم تا کاربر مجبور به تنظیم دقیق تاریخ بشه؟

ASKaffash
شنبه 22 اسفند 1388, 08:55 صبح
سلام
اصلا از این روش نباید استفاده کرد چون شاید به دلایلی غیر عمدی کامپیوتر کاربر عقب / جلو شود و بخواهد تاریخ دستگاه را تنظیم کند روش تعدادی بهتر است

Jozef
شنبه 22 اسفند 1388, 10:07 صبح
دوست عزیز در مورد این روش بیشتر توضیح میدین؟
لطفا

ASKaffash
شنبه 22 اسفند 1388, 10:47 صبح
سلام
روش تعدادی در نرم افزارهای تجاری که از بانک اطلاعاتی استفاده می کند قوی تر است در هر نرم افزار تجاری یک جدول در بانک اطلاعاتی سریعتر رشد داده ای میکند کافی است این جدول درون سورس به تعداد n رکورد محدود شود دیگر هیچ مهاجمی نمی تواند کاری کند

Jozef
شنبه 22 اسفند 1388, 10:58 صبح
خوب عدد n رو چطور تخمین بزنیم؟

ASKaffash
شنبه 22 اسفند 1388, 11:46 صبح
سلام
بستگی به نوع و سایز پروژه شما دارد ولی برای یک سیستم انبار کوچک مثلا 10 سند انبار کافی است

Jozef
شنبه 22 اسفند 1388, 13:44 عصر
خب فکر نمیکنین این روش خیلی Random ه؟
من پروژه ای دارم تحت ویندوز که حدود 50 تا فروش رفته. کار 50 نفر یکی است ولی حجم کاری متفاوت. اینجا چیکار باید کرد؟
یعنی روش بهتری وجود نداره؟

ASKaffash
شنبه 22 اسفند 1388, 15:40 عصر
سلام
قرار است طرف Demo Version داشته باشد و اگر پرداخت مالی نکرد برنامه او را محدود کند دیگر فرقی نمی کند اینطوری شما متضرر می شوید

Jozef
شنبه 22 اسفند 1388, 16:16 عصر
دوست عزیز ممنون از پاسختون
اما مسئله اینه که این 50 نفر همکارن. اگه گفتم حجم کاریشون فرق میکنه واسه این بود که امکان اینکه برنامه شخصی زودتر به محدودیت برسه 100% هست. خب این مشکل به وجود نمیاره که مثلا یکی 10 روزه به محدودیت برسه، یکی 20 روز ، یکی هم از سر تنبلی اصلا نرسه؟

kooroush
شنبه 22 اسفند 1388, 16:53 عصر
این دیگه مشکل اوناست . به نظر منم شما می تونید از یک شمارنه استفاده کنیدو هربار که برنامه احرا شد یکی ازش کم بشه و بگید به محض اینکه به صفر رسد برنامه از کار بیافته . ایده ی دیگه استفاده از تاریخه که میگید تاریخ سیستم رو وقتی برای اولین بار برنامه رو اجرا می کنه تو یک فایلی رو سیستم ذخیره کنه و دورای بعد مثلا اونو بخونه و با ده روز بعد جمع کنه واگه جواب مساوی با تاریخ سیستم بود برنامه رو از کار بندازه . من جز این دوتا روش چیزه دیگه ای به ذهنم ختور نمیکنه اگه روش دیگه ای دارید ما رو هم در جریان بزارید .

f_g1348
پنج شنبه 05 فروردین 1389, 13:00 عصر
با سلام
به نظر من هم استفاده از یه جدول در دیتا بیس که به تعدادی رکورد محدود بشه کار خوبی است.
ولی سوال اینجاست که ما مثلا می گوییم که هر وقت جدول فلان به تعداد 1000 عدد رکورد رسید دیگه برنامه کار نکنه.
حالا وقتی بخواهییم برنامه رو دوباره فعال کنیم(مثلا کد اکتیوی به خریدار داد) چطور میشه بدون تغییر نسخه نرم افزار (تعویض برنامه ) دوباره برنامه را فعال کرد؟

ASKaffash
شنبه 07 فروردین 1389, 07:57 صبح
سلام
نسخه اصلی شما باید قفل نرم افزاری یا سخت افزاری داشته باشد در غیر اینصورت دو مشتری که یکی نسخه محدود و دیگری نسخه نامحدود داشته باشد در ارتباط با هم شما را دور میزنند

babak_delphi
پنج شنبه 12 فروردین 1389, 15:17 عصر
با استفاده از قفل سخت افزاری هم میتونید این محدودیت رو ایجاد کنید
اکثرشون هم امکانی را دقیقا به همین منظور دارند

Raham
جمعه 13 فروردین 1389, 10:49 صبح
سلام به دوستان
من شدیدا نیاز به کدی دارم که در برنامه ام وارد کنم تا در تاریخ خاصی فعال بشه و دیگر نتوان با برنامه کار کرد مگر کد خاصی را وارد کرد .
در اصل من دارم کدی را برای جایی می نویسم و می خواهم اگر بعد از انجام کارم من را از آن شرکت بیرون کردن دیگر این برنامه کار نکند.
ممنون میشم اگر کمک کنید.
با تشکر
با سلام خدمت دوستانم

به نظر من بهترین مورد ممکن برای اینکار Server Validition هستش . چون این روزا تقریبا همه سیستم ها به اینترنت دسترسی دارن
شما لطف کن واسه هر Client یه ID در نظر بگیر. بعد یه Service روی سیستم ها اجرا کن بگو هروقت این سیستم به اینترنت وصل شده ID رو به سرور بفرست تعیین وضعیت کن
فکر کنم راه حل خوبی باشه
اگه اینو قول نداشتین یه کار دیگه هم میشه کرد
از قبل توی برنامتون 20 تا Activition Key تعریف می کنید به سیستم میگین مثلا هر دو ماه یه سریال باید به برنامه داده بشه . بعد از یه فلش دیسک به عنوان قفل سخت افزاری استفاده میکنید.

موفق و سربلند باشیم