PDA

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



Mahdi1001
سه شنبه 06 مرداد 1388, 11:51 صبح
سلام
دوستان عزیز من میخوام زمانی که برنامم ران میشه یه ایکن از اون تو کلید راست ویندوز نمایش داده بشه . مثل : winrar,Antivirous و ... .
ممنون میشم اگه کسی کمکم کنه .

bill_geits
سه شنبه 06 مرداد 1388, 12:36 عصر
بايد از كنترل NotifyIcon استفاده كني. :خجالت:

behzadk
سه شنبه 06 مرداد 1388, 12:38 عصر
به این یه نگاهی بنداز حتما مشکلت حل میشه
http://www.dreamincode.net/forums/showtopic116283.htm

Unknownlive
سه شنبه 06 مرداد 1388, 12:44 عصر
شما ابتدا کامپوننت NotifyIconرا ایجاد بعد یک ContexMenuItem می سازید و هر چی می خواهید به آن اضافه می کنید بعد ContexMenuItem را به Notify Icon نسبت دهید

Mahdi1001
سه شنبه 06 مرداد 1388, 12:58 عصر
خیلی ممنون از اینکه کمکم می کنید .
اما هنوز نتونستم درستش کنم.


شما ابتدا کامپوننت NotifyIconرا ایجاد بعد یک ContexMenuItem می سازید و هر چی می خواهید به آن اضافه می کنید بعد ContexMenuItem را به Notify Icon نسبت دهید


ممنون از کمکتون اما این فقط زمانی جواب میده که رو آیکن برنامه کلید راست کنی :ناراحت:
من میخوام رو هر فایل و فولدری کلید راست کردم ایکن برنامم جهت اجرا شدن و گرفتن مشخصات فایل و فلدر اونجا باشه مثل انتی ویروس که وقتی رو یه فلدر کلید راست مکنی ایکنش میاد و با انتخاب ایکن برنامه ران میشه:متفکر:

bill_geits
سه شنبه 06 مرداد 1388, 13:12 عصر
ببين اين به كارت مياد.

http://cplus.about.com/od/glossary/qt/CMDLINE.htm

Unknownlive
سه شنبه 06 مرداد 1388, 15:57 عصر
خوب شما باید ادرس برنامه تون را در رجیستری ویندوز ثبت کنید در واقع یک کلید باید در رجیستری در یکجاش که یادم نمی یاد اضافه کنید بعد می تونید در کلیک راست ویندوز اضافه کنید

Unknownlive
سه شنبه 06 مرداد 1388, 15:58 عصر
پروژه دوستمون که گذاشتم را دیدم بله باید فقط به جای CMD نام پروژه خدتون را بنویسید یک راه دیگر در همان رجیستری هست اونم یادم نیست اما یکی از کلید ها همینه که دوستمون گفت شما باید از کلاس های Registery استفاده کنید

Mahdi1001
سه شنبه 06 مرداد 1388, 18:20 عصر
public Form1()
{
InitializeComponent();
KeyR=Registry.ClassesRoot;
keySet=Registry.ClassesRoot.OpenSubKey(@"Directory\shell\cmd", true);
keySet.SetValue("CommandApp5", @"Command Prompt:");
key = KeyR.OpenSubKey(@"Directory\shell\Cmd\Command", true);
key.SetValue("CommandApp5", @"WindowsFormsApplication5.exe /k cd %1");
}


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

Mahdi1001
چهارشنبه 07 مرداد 1388, 12:42 عصر
پروژه دوستمون که گذاشتم را دیدم بله باید فقط به جای CMD نام پروژه خدتون را بنویسید یک راه دیگر در همان رجیستری هست اونم یادم نیست اما یکی از کلید ها همینه که دوستمون گفت شما باید از کلاس های Registery استفاده کنید
ببخشید میشه اون کلید واسم پیدا کنید ؟
یا یه برنامه بدین که این کارو کرده باشه؟:افسرده:

Mahdi1001
شنبه 10 مرداد 1388, 09:25 صبح
کسی نمیدونه مشگل من کجاست؟
من باید تو پروژهم حتما برنامم تو کلید راست بیارم.:گریه:
خواهشن اگه کسی اطلاعاتی داره کمک کنه!!!:قلب:

Mahdi1001
شنبه 17 مرداد 1388, 11:39 صبح
سلام
با تشكر از همه شما دوستان عزیز
مشکل من در اضافه کردن به کلید راست حل شد.
حالا میخوام ببینم چطوری وقتی برنامه اجرا میشه نام و آدرس فایل بگیرم.
از همه شما دوستان متشکرم.

Mahdi1001
سه شنبه 20 مرداد 1388, 12:38 عصر
این مشکلمم حل شد با تشکر از همه شما دوستان

Mahdi1001
چهارشنبه 28 مرداد 1388, 12:04 عصر
سلام
حالتون خوبه ؟
من 3 تا کلید تو رجیستری پیدا کردم که اگه اونارو مقدار دهی کنی برنامت تو کلید راست میاد.
اما مشکل اینجاست اونارو به صورت دستی مقدار میدم کار میکنه اما تو سی شارپ نمیتونه مقدار دهی کنه یا زیر کلید بسازه خطا میده . در ضمن خودم دستی پرمیشن کلیدارو فول کردم یعنی هم اجازه خوندن هم نوشتن اما بازم دورست نشد. نمیدونم مشکل از کجاست؟ تو قسمت sell این تغییراتو انجام میدم:ناراحت:

raha_20
چهارشنبه 28 مرداد 1388, 13:49 عصر
جناب mahdi میشه برنامه ای که واسه را ست کلیک نوشتین را فقط تکه کدش را بزارین . منم مشکل دارم تو این زمینه
مممنون

Mahdi1001
چهارشنبه 28 مرداد 1388, 14:01 عصر
مشکلی نیست ولی گفتم که کار نمیکنه .
خطا میگیره میگه نمیتونه این کلید بسازه یا تغییر بده .
فکر نکنم این کد بدردتون بخوره . اما اگه بازم لازم دارین بگین حتما این کد در اختیارتون میزارم.

raha_20
چهارشنبه 28 مرداد 1388, 21:25 عصر
ولی شما نوشتین که مشکلتون حل شد واسه اجرا شدن برنامه . . حالا اگه بزارین هم ممنون میشم . شاید بشه درستش کرد.

مرسی

Mahdi1001
شنبه 31 مرداد 1388, 13:17 عصر
سلام

حالتون خوبه ؟ خانم Raha_20 ببخشید اگه دیر شد. راستش من الان از این کد جواب گرفتم . اون بارم راست گفتم اما دستی رجیستری تغییر داده بودم بازم شما تست کنید اگه مشکل داشت بگین .


keyreg=Registry.ClassesRoot.OpenSubKey(@"*\shell",true);
keyreg=keyreg.CreateSubKey("command",RegistryKeyPermissionCheck.ReadWriteSubTree);
keyreg.SetValue("","Name");
keyreg=keyreg.CreateSubKey("command",RegistryKeyPermissionCheck.ReadWriteSubTree);
keyreg.SetValue("","Addrss.exe");

دوست عزیز فقط توجه کن که به جای Name اسمی که می خوای نشون بده بنویسی و به جای Address.exe آدرس برنامه ای که باید ران شه .
موفق باشی.
در ضمن کسی میدونه چجوری میشه ایکن برنامه رو تو کلید راست کنار اسمش بیاریم.

raha_20
شنبه 31 مرداد 1388, 13:23 عصر
مرسی از این که کدتون را قرار دادید اینجا . حتما اگه مشکلی داشت میگم . امیدوارم که کامل با شه و جواب بده

raha_20
شنبه 31 مرداد 1388, 15:24 عصر
این کدی که شما نوشتید واسه من error میده . حالا کلا این کد به این صورت هست که وقتی windows explorer راباز میکنیم برنامه به راست کلیک اون اضافه شده یا هر جا که راست کلیک کنیم اضافه میشه ؟؟

و یه چیز دیگه اینکه مسیر که باز می کنید به طور کامل چیه ؟
shell\* .....* شامل چه مسیرهایی میشه ؟؟؟؟؟

Mahdi1001
شنبه 31 مرداد 1388, 15:40 عصر
خانم raha_20
من سعی میکنم یه کد دیگه تا فردا واستون بفرستم لطفا انم چک کنید ببینین مشکل داره.
اخه من کدی که تو ویندوز سون نوشتم ارور میداد اما الان کدم تو اکس پی جواب داد . منم واسه پروژم لازم دارم باید رو همه سیستما جواب بده . فلا وقت نکردم رو سون تست کنم .
راستش تو کلید راستی که روی فایل میکنید میاد .
مثل آنتی ویروس . البته اگه بتونم مشکلشو حل کنم میشه تعمیم داد به اینکه روی فولدرها و روی درایو و هتا فقط بعضی از فایلها بیاد

raha_20
شنبه 31 مرداد 1388, 18:04 عصر
باشه هر موقع تونستید بزارین . من هم سعی می کنم error که میده را واستون بزارم ببینید . روی مسیرش error میده و اسه اینکه توی مسیری که نوشتین *\shell گذاشتین

Mahdi1001
یک شنبه 01 شهریور 1388, 09:59 صبح
سلام
raha فکر کنم با این کد مشکلتون حل شه .

keyreg=Registry.ClassesRoot.OpenSubKey(@"*",true);
keyreg=keyreg.CreateSubKey("shell",RegistryKeyPermissionCheck.ReadWriteSubTree);
keyreg=keyreg.CreateSubKey("command",RegistryKeyPermissionCheck.ReadWriteSubTree);
keyreg.SetValue("","Name");
keyreg=keyreg.CreateSubKey("command",RegistryKeyPermissionCheck.ReadWriteSubTree);
keyreg.SetValue("","Addrss.exe");

فقط منتظر خبرتون هستم . در ضمن اگه بازم خطا داد حتما error ضمیمه کنید ممنون .

raha_20
یک شنبه 01 شهریور 1388, 18:09 عصر
بله درست شد و کاملا جواب میده . یه دنیا ازت ممنون

Mahdi1001
دوشنبه 02 شهریور 1388, 00:17 صبح
خواهش می کنم
قابل شما رو نداشت .

amirferdowsi
یک شنبه 27 فروردین 1391, 11:46 صبح
سلام
با تشكر از همه شما دوستان عزیز
مشکل من در اضافه کردن به کلید راست حل شد.
حالا میخوام ببینم چطوری وقتی برنامه اجرا میشه نام و آدرس فایل بگیرم.
از همه شما دوستان متشکرم.

سلام
دوست عزیز میشه بفرمایید که چه جوری نام فایل و آدرس رو به نرم افزار منتقل کردید ؟

Mahdi1001
دوشنبه 28 فروردین 1391, 10:28 صبح
سلام
دوست عزیز وقتی فایل برنامتون رو فراخوانی میکنین اسم و آدرس به آن ارسال میشه و از پارامتر ورودی تابع Main می تونین دریافت کنید.
یعنی وقتی رو فایل مورد نظر وقتی راست کلید کرده و برنامه تون رو اجرا می کنین از ورودی تابع Main مشخصات رو دریافت کنید.