PDA

نسخه کامل مشاهده نسخه کامل : ساخت یه شاخه توی ریجستری



mohsen_3
29-07-2009, 10:25
من یه برنامه ساختم که می خوام مثل برنامه های دیگه با یه کلیک روی فایل های که با اون برنامه ایجاد شده توسط برنامه خونده بشه مثل همه ی برنامه های دیگه
و دیگه مجبور نباشم برنامه رو اجرا کنم و بعد اون فایل رو Open کنم
چطوری می تونم اینکارو بکنم ؟
C#

_H2_
29-07-2009, 11:47
سلام
به تاپیک زیر مراجعه کنید:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

mohsen_3
29-07-2009, 16:06
ممنون کارم تا حدی راه افتاد ولی چه طوری باید بگم که فایل با برنامه من اجرا بشه نه Calclutor
توی این مثال

Microsoft.Win32.Registry.SetValue("HKEY_CLASSES_ROOT\.ali", "", "aliclassname")
Microsoft.Win32.Registry.SetValue("HKEY_CLASSES_ROOT\aliclassname\shell\newmenu", "", "منوی جدید")


Microsoft.Win32.Registry.SetValue("HKEY_CLASSES_ROOT\aliclassname\shell\newmenu\comma nd", "", "calc.exe")

mahdi7s
29-07-2009, 18:01
سلام

در کد زیر بجای calc نام برنامه خودتونو بذارید.



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

mohsen_3
29-07-2009, 18:04
اینو که خودم می دونم
خوب نام برنامه یا ادرس ش ؟
باید برنامه رو با اینستالر نصب کرد ؟

mahdi7s
29-07-2009, 18:15
اگه برنامه توی system32 هست فقط نام و در غیر اینصورت آدرس...

mahdi7s
29-07-2009, 21:54
سلام

این هم یک سمپل ساده که باهاش می تونید به راحتی واسه برنامه تون راست کلیک در ست کنید.
(به کد های متد Install در کلاس InstallRightclick توجه کنید.)


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

mohsen_3
30-07-2009, 09:41
این مثالتون مورد داره که
بعد از اینکه تنظیماتو انجام می دم می رم اون فایل رو اجرا کنم می گه Access is Denied

IP007
30-07-2009, 09:58
یه راه قشنگ : شما از برنامت یه SETUP که میسازی میتونی براش File Acosoation (یه همچین چیزی :دی) بذاری که مثلا فایلای *.rmb با برنامه ی شما باز شه

mohsen_3
30-07-2009, 11:10
واقعا راه به این قشنگی ندیده بودم
خیلی حال کردم

mohsen_3
30-07-2009, 11:49
یه مشکل دیگه ادرس اون فایلی رو که اجرا شده چطوری می شه گیر اورد ؟

IP007
30-07-2009, 16:58
تو کلاس Program تو پرانتز ها میتونی اینو بذاری
char[] args
بعد آدرس فایل های اجرا شده میرن تو این
ببخشید من ویژوال استودیو ندارم نمیتونم تست کنم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mohsen_3
30-07-2009, 17:41
نه منظورم رو متوجه نشدید
ببینید من می خوام ادرس اون فایلی رو روش کلیک می کنم و برنامه اجرا می شه رو یه جوری بگیرم و از روی ادرسش اون فایل رو بخونم
پیشی جون خیلی ممنون

mahdi7s
30-07-2009, 17:47
برنامه یه مشکل خیلی کوچیک داشت .
اگر واقعا برنامه نویسید که با کمی بررسی خودتان حل می شد و در غیر اینصورت اینجا...


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mohsen_3
30-07-2009, 17:55
شما فکر کن من برنامه نویس نیستم ولی شما که هستی چرا مشکلو حل نکردی (درست نشده)
در ضمن مشکل من تقریبا حل شد از این راه حلی که Pishi گفت ولی فقط ادرس فایل رو می خوام

mahdi7s
30-07-2009, 19:08
شما که هستی
من همچین ادعایی نکردم:13:


چرا مشکلو حل نکردی (درست نشده)


برنامه ی من مشکلی نداره.اینو میگم چون روی 2 تا رایانه بجز رایانه ی خودم(نهایتا میشه 3 تا!) تست شد همین الان.


فقط ادرس فایل رو می خوام

لطفا سوال رو واضح تر بپرسید.

mahdi7s
30-07-2009, 20:10
یه مشکل دیگه ادرس اون فایلی رو که اجرا شده چطوری می شه گیر اورد ؟

من این پست رو ندیده بودم...

می تونید از این کد استفاده کنید :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

که مقدار extension و RightclickMenuName رو واسه خودتون تغییر میدید و نهایتا ProgramPath حاوی
آدرس برنامه خواهد بود.

موفق باشید.

_H2_
30-07-2009, 21:22
سلام
همانطور که pishi0014 گفتند خود setup سازها امکاناتی برای ثبت یک پسوند به نام برنامه دارند که میتوانید آن را تحت نام File Types Editor در برنامه setup ساز msi داخلی خود VS هم پیدا کنید.

اما مشکل دوم که گفتید:

یه مشکل دیگه ادرس اون فایلی رو که اجرا شده چطوری می شه گیر اورد ؟
عجیب است!! برای انکه همچنان جواب pishi0014 در پست 12 صحیح بوده! تست کردید؟

کاربر pishi0014 یکی از راحت ترین روشها را در پست 12 گفتند که مثلاً نمونه کد کاملترش چنین خواهد بود:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

نام های فایلها امکان دارد با یک جفت کتیشن ارسال شوند (معمولاً فاصله دارها) دستور فوق ضمن حذف آن کتیشن، کل آرگومان های ورودی را هم سرچ میکند...
البته اگر چندین فایل با برنامه شما همزمان بازشوند همه به ترتیت در آرایه خواهند بود، که دیگر خودتان با کمی دستور اضافه میتوانید حلش کنید.

(کد فوق مهم نیست و همینطوری نوشتم، مهم ان است که نام فایل در آرایه آرگومانم ها است و شما باید استخراجش کنید.)
موفق باشید.

mohsen_3
30-07-2009, 21:53
هر کاری کردم نشد
این Args همش null هست که
یکی از فایل های برنامه رو اجرا کردم بازم null بود

اها فهمیدم مشکلش چیه
اینجاش درسته ؟ [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مشکل از همینه


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

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

_H2_
30-07-2009, 22:13
سلام

این Args همش null هست که
یکی از فایل های برنامه رو اجرا کردم بازم null بود

پس صدردصد ایراد در ثبت پسوند برای برنامه شما است!
چطور انجامش دادید؟ از File Types Editorدر msi استفاده کردید؟
یک آرگومان "1%" باید پس از نام فایل exe شما در رجیستری وجود داشته باشد!
"calc.exe "%1

این مسئله را بررسی کنید.

IP007
30-07-2009, 22:15
شما از تو properties پروژه ات برو به قسمت Debugger (یه همچین جایی) بعد یه جا نوشته command توش آدرس فایلتو بذار بعد برنامه را اجرا کن ببین باز هم null است؟

mohsen_3
30-07-2009, 22:21
اها فهمیدم مشکلش چیه
اینجاش درسته ؟ [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مشکل از همینه


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

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

_H2_
31-07-2009, 00:17
سلام
شما از ویزاد انتشار استفاده کرده اید و این چندان روش مرسوم و استانداردی نیست.
به جایش برای برنامه خودتان یک Setup رسمی درست کنید ...
پروژه Setup گزینه های تنظیمی بیشتر و دلخواه تری را در اختیار شما قرار میدهد و نتیجه اش بهتر است ...

Other Project Types->Setup and Deployment->Setup Project

1)
سپس به تنظیمات بروید ...
Project->Properties->Prerequisites

پیش نیازهایی که باید برای برنامه تان نصب شود را انتخاب کرده و تیک بزنید ...
مثلاً Installer3.1 یا Framework2.0 یا SQLServer Express یا Crystall و...

سه تا دکمه رادیویی در انتهای دیالوگ وجوئد دارد که باید در وضعیت وسط قرار داده شود.

2)
از Solution Explorer گزینه File System Editor را انتخاب کرده و فایلهای exe و ico و mdf و mdb و dll و... که باید کپی شود را به Application Folder اضافه کنید.
میتوانید Shortcut هایی هم برای Desktop و StartMenu تآیین کنید.

3)
از Solution Explorer گزینه File Types Editor را انتخاب کرده.
با راست کلیک میتوانید موارد جدید را اضافه کنید و در پنجره کوچک Properties گزینه های مختلف مثل پسوند و آیکون و آرگومان و... را تنظیم کنید.
میتوانید انواع منوهای دیگر را هم اضافه کنید مثلاً Open و Edit و Print و...


این ابزار بسیار قدرتمند و منعطف است ...
میتوانید تنظیماتی هم برای رجیستری تایین کنید و یا اعمال خاص و ویژه ای برای حین Install و Uninstall با کدهای VbScript و یا کدهای مدیریت شده دات نتی تایین کنید و...


پیشنهاد میکنم به عنوان یک روال روتین سعی کنید همواره در کنار پروزه اصلی یک پروژه Setup مخصوص ان پروژه هم داشته باشید تا تضمینی باشد بر نصب آسان و انتشار برنامهدر سایر رایانه ها.

(البته برای ساخت این پروژه هم میتوانید از ویزاد استفاده کنید.)