PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزشي: ایجاد تغییر در ریجستری ویندوز از طریق کدهای vba



Amir Ghasemiyan
2015/07/12, 11:18
سلام به همه دوستان عزیز
تو این تاپیک میخوام مطلبی رو خدمتتون آموزش بدم که جزو آموزش های حرفه ای و تخصصی دسته بندی میشه.
اعمال تغییر در ریجستری این امکان رو به ما میده که مقدارهای خاصی رو برای همیشه در ویندوز ذخیره کنیم و وقتی که فایل اکسل یا اکسس ما مجددا باز میشه میتونیم از این کدهای ذخیره شده استفاده کنیم.
یک نمونه از کاربرد این قابلیت اینه که برنامه رو بصورت 30 روزه به کاربرا ارائه کنیم. یا مثلا در نرم افزاری که چند کاربر ازش استفاده میکنن میتونیم مشخص کنیم هر فعالیت رو چه کاربری انجام داده و ...

خب بریم سراغ آموزش:

ثبت کد در ریجستری
در ابتدا باید یک کد رو در ریجستری ثبت کنیم. برای اینکار از دستور SaveSetting استفاده میکنیم. به این صورت:


SaveSetting appname:="ExcelIran", Section:="VBA", Key:="startdate", setting:=13940101


خب بریم سراغ توضیح کد نوشته شده:
نام نرم افزار شما (پوشه اصلی)
نام بخش مربوطه (پوشه فرعی)
نام کلید مورد نظر (بخش نهایی آدرس کلید مورد نظر)
مقدار مورد نظر (اینجا تاریخ شروع نرم افزار)

نکته مهم: کدهای ریجستری تولید شده در این آدرس ذخیره خواهد شد

HKEY_CURRENT_USER\Software\VB and VBA Program Settings\

7772

فراخوانی کد ریجستری ثبت شده
خب حالا که کد رو در ریجستری ثبت کردیم باید بتونیم ازش استفاده کنیم. مثلا داخل یک شرط که اگر تعداد روزهای گذشته از تاریخ شروع استفاده بیش از 30 روز هست نرم افزار بسته بشه یا مثلا پیغام بده تاریخ مصرف نرم افزار تموم شده. خریداری کنید.
برای فراخوانی کد ثبت شده به این صورت عمل میکنیم:


GetSetting "ExcelIran", "VBA", "startdate"


نام نرم افزار شما (پوشه اصلی)
نام بخش مربوطه (پوشه فرعی)
نام کلید مورد نظر (بخش نهایی آدرس کلید مورد نظر)


حذف کد ریجستری ثبت شده
گاهی وقتا نیاز هست کدی رو که ثبت کردیم حذف کنیم. مثلا برای حذف محدودیت استفاده از نرم افزار
برای اینکار طبق کد زیر عمل میکنیم:


DeleteSetting "ExcelIran", "VBA", "startdate"


نام نرم افزار شما (پوشه اصلی)
نام بخش مربوطه (پوشه فرعی)
نام کلید مورد نظر (بخش نهایی آدرس کلید مورد نظر)

توجه داشته باشید که دو فیلد آخر یعنی فیلد بخش و فیلد کلید وارد کردنشون اختیاریه. به این معنی که اگه این دو بخش رو وارد نکنیم کل کدهایی که در پوشه نرم افزار ExcelIran ذخیره شده حذف خواهد شد. یا مثلا اگه بخش رو مشخص کنیم و کلید رو ننویسیم تمام کلیدهای موجود در بخش VBA حذف خواهد شد


امیدوارم آموزش مورد توجه شما قرار گرفته باشه

sabertb
2015/07/12, 12:57
خیلی جالبه

این کد هارو کجا باید وارد کنیم؟ :min7:

Amir Ghasemiyan
2015/07/13, 08:27
خیلی جالبه

این کد هارو کجا باید وارد کنیم؟ :min7:

داخل ساب روتین دیگه. تو محیط ویژوال بیسیک
همون جایی که کدهای vba رو مینویسین

sabertb
2015/07/13, 12:52
داخل ساب روتین دیگه. تو محیط ویژوال بیسیک
همون جایی که کدهای vba رو مینویسین

تو محیط VBA در اکسل ؟ داخل صفحه Module ؟ :min20:
قسمتی که تصویرشو گذاشتید هم نتونستم پیدا کنم قسمت Registry یا احتمال میدم تو شرکت دسترسی به این بخش رو محدود کردند که من پیداش نمیکنم :) :min19:

Amir Ghasemiyan
2015/07/13, 12:55
تو محیط VBA در اکسل ؟ داخل صفحه Module ؟ :min20:
قسمتی که تصویرشو گذاشتید هم نتونستم پیدا کنم قسمت Registry یا احتمال میدم تو شرکت دسترسی به این بخش رو محدود کردند که من پیداش نمیکنم :) :min19:

بله خودشه
اون عکسی که گذاشتم مربوط به ریجستری سیستم هست. شما باید از منوی استارت RUN رو اجرا کنید و دستور regedit رو تایپ کنید تا وارد این محیط بشین

sabertb
2015/07/13, 14:01
بله خودشه
اون عکسی که گذاشتم مربوط به ریجستری سیستم هست. شما باید از منوی استارت RUN رو اجرا کنید و دستور regedit رو تایپ کنید تا وارد این محیط بشین

دست شما درد نکنه راهنمایی مفید واقع شد موفق شدم ثبت کنمش . حالا یه سوال این کار باعث میشه محدودیت مورد نظر برای فایل ایجاد کنیم یه مثال میتونید بزنید مثلا اگر از تاریخ ایجاد فایل 20 روز گذشت این پیام ظاهر بشه " فایل مورد نظر در دسترس نمی باشد :) "
می تونید برای افرادی مثل من که مبتدی هستن تو این زمینه ها مثال بزنید جوری که گام به گام بریم جلو به نتیجه برسیم ؟:min13:
فایل پیوست هم چیزیه که با توجه به پست شما درست کردم و می خوام همون پیغام براش فعال بشه

Amir Ghasemiyan
2015/07/14, 09:11
دست شما درد نکنه راهنمایی مفید واقع شد موفق شدم ثبت کنمش . حالا یه سوال این کار باعث میشه محدودیت مورد نظر برای فایل ایجاد کنیم یه مثال میتونید بزنید مثلا اگر از تاریخ ایجاد فایل 20 روز گذشت این پیام ظاهر بشه " فایل مورد نظر در دسترس نمی باشد :) "
می تونید برای افرادی مثل من که مبتدی هستن تو این زمینه ها مثال بزنید جوری که گام به گام بریم جلو به نتیجه برسیم ؟:min13:
فایل پیوست هم چیزیه که با توجه به پست شما درست کردم و می خوام همون پیغام براش فعال بشه

خواهش میکنم
کل کدهای شما به این صورت در میاد:




Sub start()
today = Date
SaveSetting appname:="ExcelIran", Section:="VBA", Key:="startdate", setting:=today
End Sub


Sub startt()
Dim a As Date
a = GetSetting("ExcelIran", "VBA", "startdate")
today = Date
If today - a > 30 Then MsgBox "License is expired"
End Sub

sabertb
2015/07/14, 13:12
خواهش میکنم
کل کدهای شما به این صورت در میاد:




Sub start()
today = Date
SaveSetting appname:="ExcelIran", Section:="VBA", Key:="startdate", setting:=today
End Sub


Sub startt()
Dim a As Date
a = GetSetting("ExcelIran", "VBA", "startdate")
today = Date
If today - a > 30 Then MsgBox "License is expired"
End Sub


دست شما درد نکنه خیلی ممنون ، من این کد رو جایگزین کردم .
وقتی Run میزنم Error میده .
a = GetSetting("ExcelIran", "VBA", "startdate") این خط کد نویسی رو هایلایت میکنه . این Error تاثیر داره تو کارش یا نه ؟

salon-zeba
2018/07/23, 11:01
مرسی مطلب بسیار خوبی بود .ممنون