PDA

View Full Version : پسوند اختصاصی



saadatfar
شنبه 11 آبان 1387, 04:41 صبح
چه طور می توانم یک پسوند را به برنامه خودم اختصاص بدم.
یعنی می خواهم هرفایلی با پسوند .RSF که اجرا شد برنامه من باز بشه و یک سری عملیات روی فایل انجم بده.
فقط خواهشا اگه می خواهید بگید قبلا بحث شده لینک هم بدید چون من هرچی گشتم چیزی پیدا نکردم.

saadatfar
شنبه 11 آبان 1387, 18:59 عصر
چه طور می توانم یک پسوند را به برنامه خودم اختصاص بدم.
یعنی می خواهم هرفایلی با پسوند .RSF که اجرا شد برنامه من باز بشه و یک سری عملیات روی فایل انجم بده.
فقط خواهشا اگه می خواهید بگید قبلا بحث شده لینک هم بدید چون من هرچی گشتم چیزی پیدا نکردم.
از دوستان کسی اطلاعاتی نداره؟:متعجب:

saadatfar
یک شنبه 12 آبان 1387, 06:03 صبح
لااقل بگید قبلا توی سایت بحث شده یا نه؟

shask00l
یک شنبه 12 آبان 1387, 07:51 صبح
مطمئنا بحث شده . نه تنها در این سایت. توی کل سایتهایی که در زمینه دات نت فعالیت میکنن حداقل 1 بار بحث شده .
بنده پیشنهاد میکنم به جای انتظار جهت رسیدن کمک و پست های پشت سرهم توی 1 تاپیک از یک سایت جدید و خیلی خوب که تازه هم باز شده و هنوز کسی نمیشناسدش استفاده کنی . سایت خیلی خوبیه . موضوع رو توش مینویسی و در مورد اون موضوع کلی مطلب بهت میده . اسمش هست www.google.com
به جان خودم سایت خوبیه . رفتی سلام مارو هم بهش برسون ..

http://www.google.com/search?hl=en&q=%22file+associations%22%2Bvb.net&btnG=Search

http://www.codeproject.com/KB/vb/VBFileAssociation.aspx
http://www.codeproject.com/KB/shell/cgfiletype.aspx

با این اوصاف احتمالا وقتی کدها رو گرفتید باز هم به کمک نیاز پیدا میکنید .. به امید دیدار

حامد مصافی
یک شنبه 12 آبان 1387, 09:46 صبح
لااقل بگید قبلا توی سایت بحث شده یا نه؟


اگر جستجو می کردید خودتون به این موضوع پی می بردید.
چند روز پیش جوابی به سوال مشابه دادم، جستجو بفرمایید.

afshinjazi
یک شنبه 12 آبان 1387, 10:40 صبح
سلام دوست عزیز

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

من اینکارو قبلا انجام دادم که برای اینکار احتیاج به کار بر روی رجیستری هست

چون من این کار رو در زبان دلفی انجام دادم نمی تونم با جزئیات بگم ولی مطمئنا به دردت میخوره :
شما میتونی یه Procedure بنویسی که مقادیر ورودی Extension با تایپ String و ID با تایپ String هست که Extension برای تخصیص مثلا "RSF." و ID هم توضیح اون مثلا RSF Files می باشد.

اما محتویات تابع مذکور :
بعد از ایجاد کلاس Registery در برنامت ( که خودم در دات نت کار نکردم )
و ساختن یک شی رجیستری و تخصیص Rootkey اون به :HKEY_CLASSES_ROOT
یک Key با این حالت :

R.OpenKey('\' + Extension, True


که R همان شی از جنس رجیستری می باشد.
با این کار کلیدی با نام مثلا RSF. ساخته می شود.
بعد از آن به کلید مقدار ID را میدهیم :

R.WriteString('', ID)

بعد در مسیر زیر باز کلید جدیدی می سازیم :

R.OpenKey('\' + ID + '\Shell\Open\Command', True)


بعد از به این کلید مقدار زیر را می دهیم :


R.WriteString('', '"'FileName'" "%1"')



ّFileName نام Exe یی هست که میخواهید فایل ها با آن باز شود .
1% هم برای اینکه این مقدار به برنامه لود شود ، می باشد.

برای آیکون مورد استفاده نیز از کلید زیر و مقدار آن که در زیر آمده استفاده کنید :


R.OpenKey('\' + ID + '\DefaultIcon',True)
R.WriteString('',FileName +'\image\ProgramIcon.ico')
R.Free

با عملیات بالا که روی کلید مختلف رجیستری انجام شد ، بعد از کلیک روی فایل های Rsf ، فایل شما با برنامه Filename باز میشود.

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

اینم که قبلا اشاره کردم چون 1% رو زده بودی مسیر فایلی که روش کلیک شده داخل Paramstr(1) ذخیره میشه ......

امیدوارم که به دردت بخوره .....

موفق باشی
:تشویق::تشویق::تشویق:

saadatfar
یک شنبه 12 آبان 1387, 15:54 عصر
دوستان واقعا از همتون ممنونم
مخصوصا از آقای afshinjazi (http://barnamenevis.org/forum/member.php?u=29415) و shask00l (http://barnamenevis.org/forum/member.php?u=3324) که واقعا به من کمک بزرگی کردند

saed2006
چهارشنبه 02 تیر 1389, 17:03 عصر
این کار رو با Instalshield «میشه انجام داد؟

shask00l
پنج شنبه 03 تیر 1389, 06:25 صبح
مطمئنا .. چون اکثر برنامه های نصب خودکار این کارو انجام میدن . ولی دقیقا نمیدونم چجوری .
البته برای انجام این کار یه کلک کوچیک هم وجود داره . وقتی برای برنامه فایل نصب میسازید اکثر برنامه ها بهتون اجازه میدن تا بعد از نصب یک یا چند فایل رو بصورت خودکار اجرا کنید . میتونید یه برنامه ی کوچیک برای این تنظیمات بنویسید و بصورت پیوست اجراش کنید ...

امیدوارم که کمک کرده باشم .

Sharif Lotfi
پنج شنبه 18 خرداد 1391, 10:56 صبح
لينك زير (پست شماره 42) رو ببينيد (http://barnamenevis.org/showthread.php?197771-%D8%B7%D8%B1%DB%8C%D9%82%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-setup-%D8%A8%D8%A7-%D8%AE%D9%88%D8%AF-vs.net)