برگزیده های پرشین تولز

افزون آيتم به منوي کليک سمت راست موس

night wolf

Registered User
تاریخ عضویت
24 اکتبر 2003
نوشته‌ها
647
لایک‌ها
5
سن
36
محل سکونت
Iran-Ahvaz
سلام
چطور ميشه وقتي روي فايل مورد نظر کليک کنيم يک ايتم به آن منو اضافه بشه مثل وقتي وين زيپ رو نصب ميکينيم يا برنامه هاي ديگه. من ميخوام وقتي روي يك درايو كليك كنم اون آيتم نشون داده بشه.(مثل Partion Magic)
با تشکر :)
 

night wolf

Registered User
تاریخ عضویت
24 اکتبر 2003
نوشته‌ها
647
لایک‌ها
5
سن
36
محل سکونت
Iran-Ahvaz
اوه ببخشيد يادم رفت. اين كار رو در VB.NET ميخوام انجام بدم.
 

CenoByte

کاربر تازه وارد
تاریخ عضویت
18 ژوئن 2004
نوشته‌ها
25
لایک‌ها
0
اين كار با استفاده از shell programming انجام ميشه!
شما به راحتي ميتونيد مطالبي در اين مورد با استفاده از google بدست بياوريد.
كافيه كلمات كليدي زير رو سرچ كنيد.
shell programming + vb.net + sample+tutorial
موفق و پيروز باشيد.
 

night wolf

Registered User
تاریخ عضویت
24 اکتبر 2003
نوشته‌ها
647
لایک‌ها
5
سن
36
محل سکونت
Iran-Ahvaz
آقا من چيز بدرد بخوري نتونستم پيدا كنم.
اگه ميتوني يه لينكي بهم بدي خيلي ممنون ميشم.
 

littlerabbit

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
13 جولای 2003
نوشته‌ها
678
لایک‌ها
6
سن
42
محل سکونت
Iran
به نقل از night wolf :
آقا من چيز بدرد بخوري نتونستم پيدا كنم.
اگه ميتوني يه لينكي بهم بدي خيلي ممنون ميشم.

اين كد مال خيلي پيشه و وي بي 6 هست اگه فرصت كردم راهنماشو مينويسم (البته حالت كلي شو)
 

فایل های ضمیمه

  • Code.zip
    5.6 KB · نمایش ها: 34

littlerabbit

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
13 جولای 2003
نوشته‌ها
678
لایک‌ها
6
سن
42
محل سکونت
Iran
فایل Associate در ویندوز

1- پارامترهای خط فرمان :
ظاهرا پارامترهای خط فرمان از داس به بعد کاربردی ندارند اما اینطور نیست. ابتدا روش گرفتن پارامترهای خط فرمان را توضیح میدهیم :

1-1- دلفی
از تابع ParamStr استفاده کنید .این تابع یک آرگومان میگیرد که شماره پارامتر مورد نظر است. دقت کنید ParamStr با ارگومان صفر آدرس برنامه در حال اجرا را برمیگرداند. باقی پارامترها بایستی با فاصله یا کاراکتر تب از هم جدا شده باشند. مثلا هنگام اجرای برنامه ای با این پارامترها :
Test.exe param1 param2

ParamStr(0) برابر با آدرس کامل فایل test.exe خواهد بود و ParamStr(1) برابر با Param1 و همین طور الی آخر. اگر یکی از پارامترها یک یا چند فاصله را هم بخواهد در خود داشته باشد بایستی با علامت " محصور شده باشد.
تعداد این پارامترها هم در متغیر عمومی ParamCount ذخیره میشود. البته متغییر CmdLine هم هست که وابسته به ویندوز است (و در برنامه های Cross قابل استفاده نیست) این متغیر تمام این آرگومانها را به هم پیوند داده و در یک رشته در اختیار میگذارد.بر خلاف وی بی نام برنامه هم در ابتدای آن هست.
1-2-وی بی 6
در وی بی 6 از دستور Command$ استفاده کنید. این دستور فقط پارامترها را (بدون نام کامل فایل) در یک رشته برمیگرداند و خودتان باید آنها را از هم مجزا کنید.


حالا ربط پارامترها به باز کردن فایل.
1- یک برنامه ساده بنویسید در وی بی :
کد:
Private Sub Form_Load()
    MsgBox Command$
End Sub

در دلفی :
کد:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessage(CmdLine);
end;

حالا برنامه را کامپایل کنید و یک exe بسازید .
یک فایل را (حل فایلی که باشد ) بگیرید و روی برنامه بکشید و رها کنید. نام فایل نشان داده میشود.

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

اما برای ثبت نوع فایل در Shell سه راه هست که وی بی تنها یک راه آنرا میتواند پیاده کند. و من هم تنها دو راه آن را بلدم :)
1- استفاده از DDE و ثبت برنامه به عنوان DDE سرور (من هیچ چیزی در باره آن نمیدانم)
2- استفاده از ShellExtention Handler و رابط ها (Interface) های Shell که در وی بی نمیتوان آن را پیاده کرد (چه نت و چه وی بی 6) و خیلی قابل انعطاف و جالب است و برنامه هایی نظیر Winzip یا Winrar از آن استفاده میکنند.
3- راه حل ساده. استفاده از قوانین ثبت فایل در رجیستری. (دو مورد دیگر هم در رجیستری ثبت میشوند اما به نوعی دیگر)

1- پسوندی که در نظر دارید انتخاب کنید . اگر پسوندی مد نظرتان نیست و میخواهید کلیه فایلها را تحت تاثیر قرار دهید پسوند را * در نظر بگیرید برای پوشه ها هم پسوند Folder را در نظر بگیرید برای درایو پسوند Drive (همه بدون نقطه). حالا برای مثلا پسوند mmm بایستی .mmm را در نظر بگیرید (یعنی پسوند و نقطه قبل از پسوند را )
2-یک کلید با این نام در HKEY_CLASS_ROOT بسازید.
3-یک نام در نظر بگیرید مثل MyApplicatin.Documents به طور معمول یک اسم دو قسمتی اما مهم نیست. فقط از قبل انتخاب نشده باشد. در کلیدی که قبلا در رجیستری ساختید(مرحله 2) این نام را در مقدار Default بنویسید.
4-حالا یک کلید بسازید و آن را به نامی که در مرحله 3 در نظر گرفتید تغییر نام دهید. (در این مثال MyApplicatin.Documents ) مقدار Default را با نام نوع فایلتان تغییر دهید. مثلا My Application project file type. یا هر چه دوست دارید.
5- یک کلید زیر کلید مرحله 4 بسازید (در این مثال زیر MyApplicatin.Documents ) نام آن را DefaultIcon بگذارید. مقدار Default را با آدرس دقیق فایل آیکون بای این نوع فایل در Shell ویندوز عوض کنید. اگر آیکون در یک فایل Exe یا Dll است بنویسید :
d:\full\path\toexe\MyApp.exe,1
بعد از علامت کاما ایندکس آیکون در فایل exe یا dll را قرار دهید.
6- یک کلید دیگر زیر کلید MyApplicatin.Documents بسازید (کلید مرحله 4) نام آن را shell بگذارید.
7- زیر کلید shell یک کلید با نامی که دوست دارید در منو نمایش داده شود بسازید مثل open یا run یا... مقدار Default اگر با یک متن نوشته شود در اینصورت این متن در منو نمایش داده میشود در غیر اینصورت همان نام کلید نمایش داده میشود. از علامت & برای انتخاب کلیئ میانبر استفاده کنید مثل &Open
8- زیر کلیدی که در مرحله 7 ساختید کلیدی با نام command بسازید. مقدار پیشفرض آن (default ) را به این صورت تنظیم کنید :
D:\full\path\toexe\MyApp.exe "%1"
یعنی آدرس کامل برنامه ای که میخواهید این فایل را باز کند + یک فاصله + "%1" (ممکن است به خاطر فارسی بودن کمی کلمات اینطرف و آنطرف شوند منظور درصد یک است یعنی درصد در سمت چپ)
این درصد یک هنگام اجرا با نام فایلی که روی آن دوبار کلیک شده عوض میشود. علامت کوتیشن در دو طرف تضمین میکند هنگام اجرا نام فایلهایی که فاصله در آنها وجود دارد در یک آرگومان قرار بگیرد . در صورت برداشتن این کوتیشن مثلا D:\program files\my file.txt به سه آرگومان (بر اساس فاصله ها ) تجزیه میشود.

برای تست من یکبرنامه خیلی ساده و یک فایل Reg که اینکارها را یکمرتبه انجام میدهد را به پست Attach میکنم . پسوند Alpha مد نظر من است برنامه ای که در بالا کد آن را نوشتم (و در فایل Attach شده هم هست ) را کامپایل کنید و آن را در C:\ بگذارید (با نام project1.exe) بعد فایل reg را در رجیستری بنویسید (با دوبار کلیک کردن بر آن )
یک فایل با پسوند alpha بسازید. آیکون بایستی به شکل آیکون برنامه باشد. روی آن دو بار کلیک کنید برنامه باز شده و آدرس فایل را نشان میدهد.

برای اینکه چند گزینه به منو اضافه کنید زیر کلید shell میتوانید چند آیتم بسازید مثلا run و Open فقط برای شناسایی این که کاربر کدام گزینه را انتخاب کرده بایستی در command یکی از اینها (معمولا دومی) اینطور عمل کنیم و مقدار deffault را بنویسیم :
D:\full\path\toexe\MyApp.exe "%1" /run
در اصل یک آرگومان سوم هم اضافه میکنیم( در اینجا /run ) این آرگومان هنگامی که این گزینه انتخاب شود به عنوان آرگومان سوم به برنامه فرستاده میشود و با مقایسه این آرگومان سوم میتوانید بفهمید کاربر چه گزینه ای را انتخاب کرده است.
به این ترتیب با آرگومانهای مختلف میتوان حالت های مختلفی را به دست آورد.

بای کاربران نت. متاسفانه معادل دستور Command$ را فراموش کرده ام و نت هم روی سیتمم نصب نیست. شما به راحتی میتوانید برنامه وی بی را به نت مهاجرت دهید (یعنی با نت بازش کنید)خودش تغییر لازم را انجام میدهد.
لطفا اگر کسی دستور معادل را میداند همینجا بنویسد. سوالی هم هست خوشحال میشوم بتوانم جواب بدهم.

فرود - 04:44 ب.ظ 2004/08/27
 

night wolf

Registered User
تاریخ عضویت
24 اکتبر 2003
نوشته‌ها
647
لایک‌ها
5
سن
36
محل سکونت
Iran-Ahvaz
با سلام خدمت آقاي littlerabbit
آقا دستت درد نكنه ولي من براي .net ميخواستم
اون فايلي كه فرستادي تبديل به .net نميشه و از چند تا از كدهاش اشكال ميگيره. من چه طور ميتونم معادل بعضي از دستورهاي وي بي رو براي وي بي .نت پيدا كنم؟
 

night wolf

Registered User
تاریخ عضویت
24 اکتبر 2003
نوشته‌ها
647
لایک‌ها
5
سن
36
محل سکونت
Iran-Ahvaz
حالا يه چيز ديگه من تونستم اين كاري رو كه ميخواستم انجام بدم.
ميخوام فقط روي درايو CD-Rom ظاهر بشه ميتوني كمكم كني؟
مثل گزينه Eject.
بعد اينكه چطور ميشه رديف منو رو تغيير داد؟
 

littlerabbit

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
13 جولای 2003
نوشته‌ها
678
لایک‌ها
6
سن
42
محل سکونت
Iran
به نقل از night wolf :
حالا يه چيز ديگه من تونستم اين كاري رو كه ميخواستم انجام بدم.
ميخوام فقط روي درايو CD-Rom ظاهر بشه ميتوني كمكم كني؟
مثل گزينه Eject.
بعد اينكه چطور ميشه رديف منو رو تغيير داد؟
ساده نيست و با وي بي نميشه.
با عزض شرمندگي فايل اشتباه بود اين فايل اصليه --واقعا كه شرمندم---
 

فایل های ضمیمه

  • Desktop.zip
    16.6 KB · نمایش ها: 30
بالا