PDA

View Full Version : سوال: قراردادن شورتکات برنامه در استارتاپ ویندوز



goldoon
سه شنبه 17 دی 1392, 11:20 صبح
سلام دوستان
من یک برنامه دارم میخام که شورتکات برنامه را با کدنویسی داخل استارتاپ ویندوز قرار بدم
کد زیر را استفاده کردم
private void AddStartUpKey(string _name, string _path)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
key.SetValue(_name, _path);
}

private void RemoveStartUpKey(string _name)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
key.DeleteValue(_name, false);
}



اما هنگام اجرای کد ساخت متغیر رجیستری خطا میده که شما دسترسی لازم برای متغیررجیستری درخواستی را ندارید
چکار کنم؟

sagggad
سه شنبه 17 دی 1392, 11:46 صبح
سلام
ببخشد استارت آپ منظورتون چیه؟؟
یعنی وقت بالا اومدن ویندوز اجرا بشه؟

shahryari
سه شنبه 17 دی 1392, 12:16 عصر
سلام دوستان
من یک برنامه دارم میخام که شورتکات برنامه را با کدنویسی داخل استارتاپ ویندوز قرار بدم
کد زیر را استفاده کردم
private void AddStartUpKey(string _name, string _path)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
key.SetValue(_name, _path);
}

private void RemoveStartUpKey(string _name)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
key.DeleteValue(_name, false);
}



اما هنگام اجرای کد ساخت متغیر رجیستری خطا میده که شما دسترسی لازم برای متغیررجیستری درخواستی را ندارید
چکار کنم؟

سلام
در کدهای شما ، شورتکات در پوشه استارت آپ ایجاد نمیشود بلکه مسیر فایل اجراییتان در RUN سیتم عامل قرار میگیرد
در ویندوزهای ویستا به بالا ، حتما باید برنامه شما دسترسی ادمین داشته باشد تا در ریجستری کلید ایجاد کند و یا حذف کند
اگر میخواهید مسیر پوشه استارت آپ را بدست بیاورید و شورت کات را در آن کپی کنید ، متغیر زیر مسیر فولدر استارت آپ را برمیگرداند:
Environment.GetFolderPath(Environment.SpecialFolde r.Startup)

simorgh-hossein
سه شنبه 17 دی 1392, 12:21 عصر
آره منظور ایشون اینه که وقتی ویندوز بالا میاد برنامشون خودبه خود اجرا بشه !

دوست عزیز این خطایی که شما میبینید ، دلیلش اینه که برنامه در حالت Admin اجرا نمیشه ! ( دلیلش هم استفاده از ویندوز 7 یا 8 هست )

اگه بخوای واقعا تستش کنی ، روی فایل اجرایی کلیک راست کن و گزینه Run As Administrator رو بزن !

مطمئن باش که اجرا میشه !

اگرم میخوای که کلا این امکان به برنامت اضافه بشه ، دستور زیر رو به فایل Manifest پروژت اضافه کن !

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

همین ! :لبخندساده:

goldoon
سه شنبه 17 دی 1392, 13:59 عصر
ممنون از راهنماییتون
کمک زیادی بهم کردین
خودمم یک نکته اضافه کنم برای کسایی که بعدا ممکنه پست را بخونن که اگر از فایل manifest استفاده کنیم حتما باید ویژوال استادیو را به صورت run as administrator اجرا کنیم