دوستان من می خواستم لطف کنید و مراحل ریسورس کردن یک فایل reg را به برنامه اصلی و همچنین فراخوانی آن (اجرای آن) را در این قسمت به من و سایر دوستان علاقه مند یاد بدهید.
لطفا با نمونه کد و مثال توضیح بدهید.
خیلی خیلی ممنون
با تشکر
Printable View
دوستان من می خواستم لطف کنید و مراحل ریسورس کردن یک فایل reg را به برنامه اصلی و همچنین فراخوانی آن (اجرای آن) را در این قسمت به من و سایر دوستان علاقه مند یاد بدهید.
لطفا با نمونه کد و مثال توضیح بدهید.
خیلی خیلی ممنون
با تشکر
منم خیلی مایم این رو بدونم خواهش می کنم از اساتید جواب سوال این دوست گرامی رو بدن تا ما هم استفاده کنیم
سلام،
فکر نمیکنم چیز پیچیده ای باشه. ابتدا فایل .REG رو داخل ریسورس ذخیره میکنیم و بعدش هم اون رو در یه جا مثل پوشه Temp ؛ Extractش میکنیم و بعد هم فراخوانی (اجرا).
این رو الان ساختم. احتمالا کارتون رو راه میندازه.
فکر کنم سورس گویا هست. اگه بخوام توضیحی بدم اینکه، ابتدا فایلی که در ریسورس ذخیره شده بود در پوشه Temp ذخیره میشه و بعدش هم توسط فایل Regedt32.exe میایم اون رو ریجستری Import میکنیم. البته میشه با خود regedit.exe هم اینکار رو کرد.
دقت داشته باشید اگر از پارامتر /s در آخر فایل regedit.exe بکار ببریم دیگر پیغامی مبنی بر اینکه آیا کاربر اجازه بده یا نده که فایل مورد نظر Import بشه نشون داده نخواهد شد. (که در این مثال هم همینکار رو کردم)
موفق باشید.
سلام،
چون فایل شما متنی هست (Reg)، هم میتونید خود فایل reg. رو به صورت Custom Resource به برنامه اضافه کنید و هم یک String Table براش درست کنید.
از اونجایی که فایل متنی هست، بهتر هست از String Table استفاده کنید.
به هر حال اگر فایل رو به شکل Custom Resource اضافه کنید، باید از تابع LoadResData برای استخراج فایل استفاده کنید. و اگر از String Table استفاده می کنید باید تابع LoadResString رو به کار بگیرید.
برای نحوه استفاده از Custom Resource لطفاً جستجو کنید چون همه تاپیک های مرتبط با این موضوع از نوع Custom Resource هستند. من فقط String Table رو توضیح میدم که برای فایل های متنی مناسب هست.
از منوی Add-Ins پنجره Add-In Manager رو باز کنید و گزینه VB6 Resource Editor رو Load کنید. (تصویر زیر)
توی Toolbar یک آیکن سبز رنگ اضافه میشه. روش کلیک کنید، پنجره Recource Editor باز میشه.
توی این پنجره باز از روی Toolbar آیتم Edit String Tables رو انتخاب کنید. یک پنجره دیگه باز میشه که یک جدول با دو ستون داره. ستون اول Id هست و دومی زبان هست. زبانی که رشته ها رو میخواید باهاش بنویسید.
خب، حالا فرض کنید ما یک فایل رجیستری داریم با این محتوا:
هر خط رو باید در یک سطر از جدول وارد کنید. هر سطر یک ID منحصر به فرد باید داشته باشه که پیشفرض از 101 شروع میشه.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Barnamenevis]
[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\Barnamenevis\Settings]
"Default"="51"
"MaxLength"="100"
در آخر، حتماً باید فایل Resource رو ذخیره کنید تا بتونید ازش استفاده کنید.
بعد از ذخیره کردن فایل Res دستورات برنامه رو می نویسیم:
Open "C:\MyRegFile.reg" For Output As #1توجه: استفاده از Custom Resource نسبت به String Table ها از لحاظ بهینه سازی سایز فایل اجرایی بهتر هست. در واقع، ذخیره کردن رشته ها در فایل های Resrource (به صورت Custom) یکی از تکنیک های بهینه سازی رشته هاست.
For i = 101 To 105
Print #1, LoadResString(i)
Next i
Close #1
Shell "regedit /s C:\MyRegFile.reg"
موفق باشید/
ممنون از پاسخ همگی، جواب ها واقعا خوب و کامل بودند.
متاسفانه نمی تونم تشکر رو پیدا کنم
باز هم ممنون
تشکر از همه دوستان گرامی که جواب رو دادن از مدیران ارشد سایت برنامه نویس تقاا می کنم پلاگین تشکر رو رو این ورژن وی بی نصب کنن ممنونم .