PDA

View Full Version : ایجاد Uninstall توسط ریجیستری



shojaiehamid
جمعه 28 بهمن 1401, 09:49 صبح
سلام
تو پروژه ای که دارم کار می کنم هدف اینه که موقع اجرای برنامه Key uninstall برنامه تو ریجستری اضافه بشه . در مسیر زیر

"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstal l"

چند سری کد هم دیدم و استفاده کردم نتایجی هم گرفتم ولی کامل نیست .

کسی می تونه توضیحی بده باید چه key هایی اضافه کنم ؟

یونس ابراهیمی
شنبه 29 بهمن 1401, 07:15 صبح
"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstal l" در ریجستری با استفاده از C#‎‎، می توانید از کتابخانه‌ی Microsoft.Win32 استفاده کنید. مراحل زیر را برای این کار دنبال کنید:

ایجاد کلید جدید با استفاده از کلاس RegistryKey و متد CreateSubKey:
string keyName = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstal l\MyProgram";
RegistryKey key = Registry.LocalMachine.CreateSubKey(keyName);

تنظیم مقادیر مختلف با استفاده از خصوصیت‌های متناظر با کلید ایجاد شده:
key.SetValue("DisplayName", "My Program");
key.SetValue("UninstallString", @"C:\MyProgram\uninstall.exe");

بستن کلید و خاتمه برنامه:
key.Close();
برای حذف کلید برنامه از مسیر "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstal l" در ریجستری، می‌توانید از متد DeleteSubKeyTree استفاده کنید:
Registry.LocalMachine.DeleteSubKeyTree(keyName);

توجه داشته باشید که برای اضافه کردن پرونده حذف به ریجستری، برنامه نیاز به دسترسی ادمینیستراتور دارد. بنابراین، برنامه شما باید به عنوان یک برنامه‌ی اجرا شده با دسترسی ادمینیستراتور اجرا شود.

w3-farsi.com مرجع آموزش برنامه نویسی (http://w3-farsi.com)

ROSTAM2
شنبه 29 بهمن 1401, 11:28 صبح
سلام
تو پروژه ای که دارم کار می کنم هدف اینه که موقع اجرای برنامه Key uninstall برنامه تو ریجستری اضافه بشه . در مسیر زیر

"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstal l"

چند سری کد هم دیدم و استفاده کردم نتایجی هم گرفتم ولی کامل نیست .

کسی می تونه توضیحی بده باید چه key هایی اضافه کنم ؟
سلام.
اگر برای نرم افزار بسته نصب بسازید. قسمتی برای Uninstaller داره که گزینه های مدیریت حذف نصب اونجا قابل تعیین هست.

154544

shojaiehamid
پنج شنبه 04 اسفند 1401, 17:44 عصر
سلام
ممنون از راهنماییتون
کد مربوط به اضافه شدن Uninstall انجام شد .
موقع حذف این خطا را میده

154556



در حالی که تو همین ادرس فولدر و key ها وجود دارد

ROSTAM2
جمعه 05 اسفند 1401, 07:06 صبح
سلام
ممنون از راهنماییتون
کد مربوط به اضافه شدن Uninstall انجام شد .
موقع حذف این خطا را میده

154556



در حالی که تو همین ادرس فولدر و key ها وجود دارد
سلام.
برای حذف کلید از رجیستری اجازه(permission) دسترسی می خواد.

shojaiehamid
شنبه 06 اسفند 1401, 09:29 صبح
سلام
اگر منظور admin بودن هست که برنامه admin run میشه
اگر permission دیگه ای مد نظرتون هست لطفا بفرمایید به چه صورت

samiasoft
شنبه 06 اسفند 1401, 14:49 عصر
سلام
ممنون از راهنماییتون
کد مربوط به اضافه شدن Uninstall انجام شد .
موقع حذف این خطا را میده

در حالی که تو همین ادرس فولدر و key ها وجود دارد

سلام وقت بخیر
بدین صورت بنویسید :
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstal l",true);
key.DeleteSubKeyTree("myProgram");

برنامه را هم یا بایستی بصورت دستی با run admin اجرا کنید و یا اینک در app manifest مجوز دسترسی ادمین را تنظیم کنید.