PDA

View Full Version : اجرای فایل .reg



roo.row
شنبه 20 تیر 1394, 19:47 عصر
با سلام
من برنامه ای دارم که در اون باید تغییری در ریجستری اعمال کنم و چون در ویژوال بیسیک کمی نا توانم (تو نوت پد کداشو نوشتم)
و اون نوت پد رو با قالب .reg ذخیره کردم تو محل خود برنامه اول اینک می خوام اون رو داخل فایل res قرار بدم که همراه برنامه باشه اگرم
از داخل فایل رس نشد اشکال نداره
فقط میخوام برنامه اون فایل رو اجرا کنه یعنی کاری کنه که انگار کاربر رو اون فایل دبل کلیک کرده .....

2.این رو اگه تونستید جواب بدید ممنون میشم:
بعد از باز کردن فایل دو تا پنجره نمایش میده یکی بایت درخواست اجازه و دیگری بابت موفقیت عملیات میخوام اون دو تا هم به کاربر نمایش داده نشن
پس خودم ( چون خود ویندوز رو پنجره ها فکوس میکنه با اون کار ندارم) پس این رو نوشتم ولی نمی دونم چرا اصلا کامپیوترم با سندکیز مشکل داره همیشه ازش ارور میگیره
ویندوزم 8 است

sendkeys"{~}"

با تشکر

as987498749874
دوشنبه 22 تیر 1394, 00:02 صبح
میتونی با shell یا ای پی ای shell extude اینطور چیزیه در ویندوز هفت و هشت میتونی هر فایلی رو اجرا کنی.
فکر کنم یه حالت اجرا بصورت هیدن هم داشت بررسی کن فکر کنم بدردت بخوره!!!

pbm_soy
دوشنبه 22 تیر 1394, 01:44 صبح
این را تو دستور shell بنویسید
Cmd /c regedit /s D:\X.regards

پسوند فایل را اشتباه نوشتم reg است!

roo.row
دوشنبه 22 تیر 1394, 12:57 عصر
با سلام
منظورتون از این رو داخل کد shell بنویسید چیست
اگر ممکن است دقیق تر بفرمایید (این چه کاربردی داره و چی کار کنم)

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

علیرضا5
دوشنبه 22 تیر 1394, 14:20 عصر
با خود وی بی هم میشه فایلهایی رو که نیاز به رجیستری دارند رو رجیستری بکنید یعنی برنامه هنگام لود شدن رجیستری های مورد نیازش رو خودش انجام بده و نیازی به استفاده از notpad نیست ولی اگر مصرید از notpad استفاده کنید میشه کاری کرد که فایل شما با لود شدن برنامه خود بخود اجرا بشه ولی راه حذف پیغام هاش رو نمی دونم
حالا از دو راه بالا هرکدوم به کارت میاد پیام بده تا توضیح بدم
البته صد در صد راه اول بهتر و منطقی تره

Love_Program
دوشنبه 22 تیر 1394, 14:50 عصر
اینو یه چکی بکن !!!
بجای form1 هم اسم یکی از فرم هاتو بنویس


Option Explicit

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_HIDE = 0
Private Const SW_MAXIMIZE = 3 'State
Private Const SW_MINIMIZE = 6
Private Const SW_RESTORE = 9
Private Const SW_SHOW = 5
Private Const SW_SHOWDEFAULT = 10
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_SHOWNOACTIVATE = 4
Private Const SW_SHOWNORMAL = 1

Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&
Private Const SE_ERR_ACCESSDENIED = 5 ' access denied
Private Const SE_ERR_ASSOCINCOMPLETE = 27
Private Const SE_ERR_DDEBUSY = 30
Private Const SE_ERR_DDEFAIL = 29
Private Const SE_ERR_DDETIMEOUT = 28
Private Const SE_ERR_DLLNOTFOUND = 32
Private Const SE_ERR_NOASSOC = 31
Private Const SE_ERR_OOM = 8 ' out of memory
Private Const SE_ERR_SHARE = 26

Private Const STYLE_NORMAL = 11

Public Sub cmdExecute(ByVal File As String)
Dim result As Long
result = ShellExecute(Form1.hWnd, "open", File, "", "", SW_HIDE)
End Sub

pbm_soy
سه شنبه 23 تیر 1394, 03:25 صبح
این را تو دستور shell بنویسید
Cmd /c regedit /s D:\X.regards

پسوند فایل را اشتباه نوشتم reg است!

یعنی این یک دستور سیستم عامل است و یا یک برنامه اجرائی است که در ویندوز باید اجرا شود
برای اجرا کردن دستورات و یا فایلهای اجرائی در سطح ویندوز از تابع و یا دستور shell باید استفاده کنید بصورت زیر


shell "Cmd /c regedit /s D:\X.reg"


درواقع در دستور فوق به برنامه اجرائی regedit یک فایل رجیستری دادید گفتید آنرا ذخیره کنید با پارامتر /s البته میتوانید بجای /s از /c هم استفاده کنید که اگر کلید رجیستری موجود نباشد میسازد و اگر وجود داشته باشد هم رونویسی میکند
دستور regedit را به cmd دادیم و گفتیم که آنرا اجرا کن و بعد هم پنجره cmd را ببند

روش دیگر میتواند با استفاده از دستور REG ویندوز باشد بصورت زیر که taskmanager را غیر فعال میکند میتوانید برای توضیحات بیشتر در cmd ویندوز REG /? را بزنید و راهنمای آنرا بخوانید

Shell("REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Pol icies\System /v DisableTaskMgr /t REG_DWORD /d 1 /f", vbNormalFocus)

pbm_soy
سه شنبه 23 تیر 1394, 03:30 صبح
ویا اینکه با استفاده از APIهای ویندوز هم رجیستری را ویرایش کنید یک برنامه کامل vb6 را ضمیمه میکنم که در آن یک ماژول کامل برای کار کردن با کلیدهای رجیستری ویندوز وجود دارد و یک فرم که در آن مثالی برای فراخوانی توابع موجود در آن ماژول را دارد