Fa تغییر در رجیستری hkey_local_machine

behjati mohamma

کاربر VIP
با سلام خدمت دوستان قدیم و جدید
چند سال قبل توی انجمن فعال بودم و کار میکردم
الان یک برنامه نیاز دارم که در ویندوز در قسمت hkey_local_machine
بشه رجیستری رو تغییر داد پلاگین های زیادی رو چک کردم در قسمت hkey_current_user رجیستری درست کار می کنند ولی در قسمتhkey_local_machine نه
متشکرم از راهنمایی و معرفی روش کار
با تشکر
بهجتی
 

محمدمهدی

Well-Known Member
تغییر در هر جای رجیستری هم توسط پلاگین امکان پذیر هست هم توسط CMD (یا اجرا و دستور فایل REG).
اصل مسئله ارتباطی به ام ام بی یا ضعف پلاگین ها نداره.
تنها تفاوت Current User و Local Machine در این هست که اگر در حالت Admin نباشید نمی تونید در local Machine تغییری ایجاد کنید. چون کلید های تنظیمات ضروری ویندوز در اونجا قرار داره.

راه حل :
برای فایل اجرایی تون باید دستری ادمین بگیرید.

چه کنیم :
- میشه برای فایل اجرایی Manifest دسترسی ادمین ساخت. (البته باز هم در ویندوزهای ویستا به بعد پیغامی برای کاربر نمایش داده خواهد شد که آیا اجازه میده این فایل ادمین اجرا بشه یا نه)
- میشه به نحوی به کاربر برسونید که باید این فایل رو Run As Admin اجرا کنه.
- میشه از دستور های CMD با بازخورد استفاده کنید و ببینید نتیجه عملی شد یا نه. اگر نشد به کاربر بگید که UAC رو خاموش کنه و دسترسی Admin رو آزاد کنه.
(من خودم یکبار با Small Plugin کلید رو می سازم و یک بار هم چک می کنم که تغییر کرد یا نه و به کاربر اطلاع می دم که نشد تغییری بدم.)
و...

موفق باشید.
 

behjati mohamma

کاربر VIP
با سلام و تشکر
در ویندوز 10 64 بیت با پلاگین و روش هایی که گفتین نشد عزیز ولی روش هایی که شما فرمودید رو کاملا درست میدونم.
اگر نمونه کوچکی دارید بزارین متشکر می شوم
 

محمدمهدی

Well-Known Member
بله از ویندوز 8.1 به بعد قواعد بیشتری موثر شدند در عدم دسترسی به رجیستری.
بری مثال در Regedit روی کلید رجیستری که می خواهید تغییر کنه کلیک راست کنید و گزینه ی Permission رو بزنید. می بنینید که خیلی از کلید ها Full Control نیستن. اگر باشن راحت Edit میشن. سیستم های امنیتی جدید ویندوز 8 و 10 فقط UAC نیستن. موارد مختلفی تاثیر گذار شدند.
من با این روش که فایل ام ام بی EXE مانیفست کامل داشته باشه و استفاده Small Plugin با مانیفست کامل امتحان کردم روی ویندوز 8.1 64 بیتی و شده.
اما مثلا با Winrar در ویندوز 10 کلید رجیستری ساختم و اجرا کردم روی local نشده اما Current User شده. حتی با دستری ادمین. اما وقتی دستی فایل REG رو اجرا می کنم تغییر اعمال میشه. البته روش داره که برای فایلتون به نحوی دسترسی بگیرید اما داستان داره و می تونید برای این مسئله عین عبارت سوالتون رو با زبان اصلی جستجو بفرمایید. جواب های زیادی هست.

اما اگر نرم افزارتون قراره خودکار عمل کنه، راه حل اولیه برای گرفتن دستری local Machine رو استفاده از Install Shield می دونم. چون ما در یک پروژه در ویندوز 10 تا XP با MSI و Install Shield مسئله رو حل کردیم و مشکلی پیش نیومد.
در نتیجه :
- با دستری ادمین در مانیفست فایل EXE و DLL میشه اینکار رو کرد.
- با خاموش کردن سیستم های امنیتی که طریقه اش رو می تونید جستجو کنید هم میشه اینکار رو کرد.
- با Install Shield و امثال اون که استاندارد طراحی شدن هم میشه.
- اما قطعا باید با batch فایل ها یا روشی برای ساختن دسترسی هم بشه اینکار رو کرد که من نمونه ی آماده ای پیدا نکردم. شما بگردید و بسازید، حتما باید بشه و یه نمونه هم اینجا بذارید.
الان فرصتش برای تست روی ویندوز های مختلف نیست، اگر گشتید و نشد، می گردم و یه نمونه در این مورد برای ویندوز 10 و 8.1 با Batch می سازم.

موفق باشید.
 

loo30fer

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

جدیدترین ارسال ها

بالا