PDA

View Full Version : سوال: ساخت نسخه Trial برای برنامه و فعال کردن آن



ppp1486
پنج شنبه 02 خرداد 1392, 17:41 عصر
درود به شما دوستان عزیز
سوال اول این که :
چطور می شه برنامه ای رو که نوشتیم رو به صورت Trial در بیاریم که بعد از مدت مثلا 30 روز expire بشه و کاربر مجبور بشه برای فعال کردن نرم افزار یه Serial number از یه سایتی خریداری کنه اینو چطوری می تونم بسازم؟؟؟؟
سوال دوم اینکه :
بعد که کاربر سریال رو وارد کرد نرم افزار فعال بشه و همچنین بعد ار بستن برنامه و مجدد باز کردن آن هم ارور Expire شدن رو نده و نسخه کامل برای اون سیستم باز بشه و برنامه برای اون کامپیوتر فعال باشه؟؟؟
چطور می تونم این کار رو انجام بدم؟؟؟ (لطفا اگه امکانش هست یه راه باشه که هم امن باشه و هم حتی الامکان ساده )
ممنونم

danialafshari
پنج شنبه 02 خرداد 1392, 17:50 عصر
سلام

چطور می شه برنامه ای رو که نوشتیم رو به صورت Trial در بیاریم که بعد از مدت مثلا 30 روز expire بشه و کاربر مجبور بشه برای فعال کردن نرم افزار یه Serial number از یه سایتی خریداری کنه اینو چطوری می تونم بسازم؟؟؟؟
این ساختنش کاری نداره ولی یک مشکلی که اینجا هست اینه که کاربر می تونه با تغییر time ویندوز Expire رو برگردونه که فکر می کنم نیاز به ویندوز سرویس دارید که چک کنه ! (نتیجه قطعی نرسیدم)

بعد که کاربر سریال رو وارد کرد نرم افزار فعال بشه و همچنین بعد ار بستن برنامه و مجدد باز کردن آن هم ارور Expire شدن رو نده و نسخه کامل برای اون سیستم باز بشه و برنامه برای اون کامپیوتر فعال باشه؟؟؟
چطور می تونم این کار رو انجام بدم؟؟؟ (لطفا اگه امکانش هست یه راه باشه که هم امن باشه و هم حتی الامکان ساده )
شما سریال cpu ی کامپیوتر کاربر رو بگیر و یک الگوریتم روش پیاده سازی کن به عنوان کد فعال سازی به کاربر بده و بعد از وارد کردن هر دو کد توسط کاربر بعد از ورود در کنار برنامه هر 2 رمز در دیتابیس ذخیره بشه
بعد هر موقع می خوای به برنامه وارد باشی این اطلاعات رو در هنگام Load برنامه بخون و چک کن بعد وارد برنامه شه
موفق باشی

mousa1992
پنج شنبه 02 خرداد 1392, 18:04 عصر
سلام
روش کار رو برات توضیح میدم
با اجرای نرم افزار تاریخ سیستمو میگیری و اونو ذخیره میکنی و هربار اجرا باید تاریخ گرفته بشه و مقایسه کنی باتاریخ قبلی و تفاوت بینشون رو محاسبه میکنی و در ی فیلد دیگه ذخیره میکنی که تعداد روز استفاده شده رو بهت میده و تاریخو جایگزین تاریخ قبلی ( این روشی رو که توضیح میدم برای جلوگیری از سو استفاده کردن با تغییر تاریخ سیستم هم خوبه - البته صرفا تمام این کارها برای جلوگیری از سو استفاده افراد عادی هست وگرنه نرم افزارتون در هر صورت قابل کرک شدن هست ) - خب حالا در صورتی که کاربر تاریخ سیستمو به عقب کشید و شما مقایسه انجام میدی با تاریخ قبلی ذخیره شده میبینی که کمتر شده تاریخ مثلا 10 روز برگشته به عقب ! در این حالت 1 روز به فیلد روزهای استفاده شده اضافه میکنی و تاریخ الان رو جایگزین میکنی و .... دیگه بسته به سلیقه خودتون این کارها رو انجام میدین این راهو من همین الان فکرش کردم و بهتون پیشنهاد دادم -

خب شما ی شرط قرار میدی که اگه تعداد روزهای استفاده کمتر از 30 بود برو و ادامه بده در غیر این صورت ی پیام بهش بده و چیزی اجرا نکن

اما بعد از تمام شدن تاریخ مصرف :
بعد از اون شما میای چندتا از مشخصه های سیستم کاربرو میگیری و بهش نشون میدی - با استفاده از متدهای که خودت مینویسی این اطلاعات سیستم رو کد میکنی و شما رو سیستم خودتون این الگوریتم رو در اختیار دارید - حالا به کاربر میگی اون اطلاعاتی رو که بهت نشون میده برام بفرست تا من کدتو بهت بدم - به همین سادگی :p

خب مثلا سریال سی پی یو و مادربورد رو میگیری فرض کن :
cpu id :12346
main board id : 52465423
حالا این دوتا رو به کاربرت نشون میدی و یا قاطیشون میکنی مثلا میشه 54765416 بو بعد بهش نشون میدی
حالا طبق الگوریتمی که نوشتی این کد تبدیل میشه به sdfjhsv 4sd اینا همش مثاله ها :p و شما الگوریتم رو سیستم خودت داری کاربر کد بالا رو بهت میده تو بهش میگی میشه این sdfjhsv 4sd و از این پس در هر اجرا سریالهای سیستم کاربر گرفته میشه و چکش میکنه با رمز ذخیره شده اگه درست بود اجرا میشه اگه نه که نمیشه و بهش میگه کد اشتباهه و ... بیا بخر :p - اها ی چیزی ( وقتی که رمز رو کاربر وارد کرد در صورتی که درست بود باید ذخیرش کنی که در هر اجرا چک بشه )
با استفاده از توابع wmi میتونی مشخصات سیستمو بکشی بیرون


موفق باشی

ppp1486
پنج شنبه 02 خرداد 1392, 18:21 عصر
بسیار ممونم
من خودم برای مورد اول یه فکری داشتم ، می خواستم دوستان کمک کنن ببینم عملی هست یا نه؟؟؟
ایده من اینه :
برای این که تاریخ سیستم رو برای Expire بدست بیاریم کردن باید چک کنیم تاریخ اولین ورود کاربر به نرم افزار کی هست و اون تاریخ رو تو یه جایی ذخیره کنیم ، حالا یه سوال ، من می خواستم بدونم کدی هست که اولین ورود کاربر رو تشخیص بده؟؟؟ یا این که چک کنه ببینه اولین باری هست که برنامه رو سیستم اجرا شده یا نه یه مقداری رو برامون برگردونه؟؟؟

sohil_ww
پنج شنبه 02 خرداد 1392, 18:24 عصر
می تونی 1 فایلی تو 1 قسمتی ویندوز ایجاد کنه برای بار اول و بارگزاری بعدی برنامه چک کنه ببینه اون فایل هست یا نه اگه بود که با اول نیست .یا همین کارو با ریجستری ها انجام بدی

mousa1992
پنج شنبه 02 خرداد 1392, 18:35 عصر
برای این که تاریخ سیستم رو برای Expire بدست بیاریم کردن باید چک کنیم تاریخ اولین ورود کاربر به نرم افزار کی هست و اون تاریخ رو تو یه جایی ذخیره کنیم ، حالا یه سوال ، من می خواستم بدونم کدی هست که اولین ورود کاربر رو تشخیص بده؟؟؟ یا این که چک کنه ببینه اولین باری هست که برنامه رو سیستم اجرا شده یا نه یه مقداری رو برامون برگردونه؟؟؟
یه مشکل برمیخورید - کاربر با تغییر تاریخ دورتون میزنه - توضیح دادم تو پستم
همه دست خودتونه - ی متغیر تعریف کن که bool باشه IsFirst = True خب حالا اگه این متغیر true باشه ینی اولین اجراست اگر نه نیست :) فقط باید برنامتون که اجرا شد چک کنین اگه True بود اونو false کنید و عملیات مورد نظرتون رو انجام بدید

barnamenevisjavan
پنج شنبه 02 خرداد 1392, 18:46 عصر
برای تریال میتونی از Settings خود ویژوال استفاده کنی و با تایمر کارت رو انجام بدی یعنی یه مقدار مشخصی توی ستینگ قرار بدی بعد با تایمر ازش کم کنی و هر لحظه اون مقدار رو ذخیره کنی اینطوری با تغییر تاریخ سیستم و غیره مشکلی پیش نمیاد و با یه شرط از اجرا شدن برنامه خودداری کنی البته برای اینکه امنیتش رو ببری بالا باید از روش های رمزگذاری و.... استفاده کنی!یه فیلم آموزشی مربوط به همین ماجرا تهیه کردم و قراره امشب توی سایتم قرار بدم!

ppp1486
پنج شنبه 02 خرداد 1392, 18:48 عصر
درسته ، متوجه شدم ، وقتی تاریخ رو تغییر بدن به مشکل برمی خورم ،
من فک کنم این متغیر Bool که شما فرمودید رو باید در Setting برنامه تعریف کنم اولین بار true باشه بعد که برنامه اجرا شد False کنه متغیر رو ، و در موارد بعد مقدار False بمونه که مشخص می شه کاربر اولین بارش هست که برنامه رو اجرا کرده یا نه
برای اطلاعات خودم دوس دارم بدونم کلا کدی هست که بتونه اولین اجرای برنامه روی سیستم رو تشخیص بده به غیر از روش Bool که فرمودید ؟؟؟؟ یا باید از این روشی که فرمودید برم

mousa1992
پنج شنبه 02 خرداد 1392, 18:57 عصر
درسته ، متوجه شدم ، وقتی تاریخ رو تغییر بدن به مشکل برمی خورم ،
من فک کنم این متغیر Bool که شما فرمودید رو باید در Setting برنامه تعریف کنم اولین بار true باشه بعد که برنامه اجرا شد False کنه متغیر رو ، و در موارد بعد مقدار False بمونه که مشخص می شه کاربر اولین بارش هست که برنامه رو اجرا کرده یا نه
برای اطلاعات خودم دوس دارم بدونم کلا کدی هست که بتونه اولین اجرای برنامه روی سیستم رو تشخیص بده به غیر از روش Bool که فرمودید ؟؟؟؟ یا باید از این روشی که فرمودید برم


از همین روشی که فرمودم برو :بامزه:
راه های دیگه هم شاید باشه ولی همین ساده ترین راهتونه

fakhravari
پنج شنبه 02 خرداد 1392, 19:56 عصر
سمپل نمیزارین :بامزه:

jadidian
پنج شنبه 30 خرداد 1392, 17:30 عصر
میتونید اگر بشه تاریخ را از طریق یک وب سرویس بخونید یعنی تاریخ را از کامپیوتر کاربر نخونه و از یه سایت بگیره
یه روش دیگه ای هم هست کاربر به تعدا د محدودی بتونه از برنامه استفاده کنه مثلا 30 بار که برای این کار میتونید از رجیستری استفاده کنید و در هربار استفاده مقدارش را اضافه نمایید

barnamenevisjavan
پنج شنبه 30 خرداد 1392, 18:07 عصر
http://shadoow.ir/?p=29

آموزش تصویری ولی خیلی ابتدایی هست
ولی میتونه راه گشا باشه

khokhan
پنج شنبه 30 خرداد 1392, 20:56 عصر
سمپل نمیزارین :بامزه:
این نمونه رو یکی از دوستان زحمش رو کشیدن وساختند و توی این فروم هم گذاشته بودند الان آدرس تاپیک یادم نیست نمونه رو می ذارم

اینطور که سازنده برنامه عنوان کرده اگه کاربر بعد از 30 روز که برنامه ایکسپیر شد تاریخ سیستم رو عوض کنه :لبخند: برنامه کارش رو خواهد کرد :لبخند:

farbod61
دوشنبه 31 تیر 1392, 12:12 عصر
این نمونه رو یکی از دوستان زحمش رو کشیدن وساختند و توی این فروم هم گذاشته بودند الان آدرس تاپیک یادم نیست نمونه رو می ذارم

اینطور که سازنده برنامه عنوان کرده اگه کاربر بعد از 30 روز که برنامه ایکسپیر شد تاریخ سیستم رو عوض کنه :لبخند: برنامه کارش رو خواهد کرد :لبخند:

سلام
کسی کد vb این برنامه رو نداره؟ یا حداقل یه برنامه مشابه

sohil_ww
دوشنبه 31 تیر 1392, 12:53 عصر
سلام
کسی کد vb این برنامه رو نداره؟ یا حداقل یه برنامه مشابه

داداش می تونی با کمک این سایت کد ت ها C# به VB تبدیل کنی
conver (http://www.developerfusion.com/tools/convert/vb-to-csharp/)