PDA

View Full Version : سوال: تعیین آیکن های یک پسوند



group45
دوشنبه 15 شهریور 1389, 20:03 عصر
با سلام
من میخوام کاری کنم که مثلا اگه برنامم با فایلای txt کار میکنه همشون آیکن برناممو بگیرن.
لطفا راهنمایی کنید

با تشکر فراوان......................

sinashahab
دوشنبه 15 شهریور 1389, 20:08 عصر
باید با ریجستری این کارو بکنی .

rezamansori
دوشنبه 15 شهریور 1389, 21:15 عصر
مي دونيم تو ريجيستر اما كجاش و چجوري آدرس برنامه و ايكون فايل ها رو بديم.
لطف كن يه نمونه سورس ضميمه كن.

molana alavi
دوشنبه 15 شهریور 1389, 21:18 عصر
سلام
با بقیه مراحل آشنایی دارید؟؟؟


به هر حال برای اطلاع سایر دوستان هم که شده من تمام مراحل رو ذکر می کنم


چنانچه پسوند مورد نظر قبلاً ثبت شده از مراحل 1 تا 4 صزف نظر كنيد.
1 - به مسير HKEY_CLASESS_ROOT برويد و يك كليد با نام يك نقطه و پسوند مورد نظر اضافه كنيد. برای مثال .mp3
2 - در مقدار (Default) اين كليد يك نام دلخواه بنويسيد (براي مثال MyFile)
3 - در مسير شماره يك يك كليد با همين نام (براي مثال MyFile) ايجاد كنيد.
4- تحت کلید فوق یک کلید با نام DefaultIcon بسازید و مسیر آیکون مورد نظر را در ورودی (Default) آن بنوسید

برای تکمیل کار می توانید مراحل زیر را انجام دهید:

5 - تحت مسير شماره 2 فوق يك كليد با نام shell ايجاد كنيد.
6- تحت كليد فوق يك كليد با نام مورد نظر (نامي كه بايد در منوي راست كليك نمايش داده شود) ايجاد كنيد
7 - تحت كليد فوق يك كليد با نام command ايجاد كنيد.
8 - در مقدار (Default) كليد فوق مقدار زير را وارد كنيد

"C:\folder1\MyApp.exe" %L
البته بديهيست كه مسير فايل اجرايي متناسب با برنامه شما بايد تنظيم بشه.
(با تشکر از آقای مصافی که در یکی از شایت های برنامه نویسی این جواب منو دادن)

group45
دوشنبه 15 شهریور 1389, 22:08 عصر
ممنون از شما ولی چطور میشه اینارو تو برنامه کد نویسی کرد تا واسه بار اولی که برنامه میاد بالا این کارا انجام بشه؟؟؟؟؟؟؟؟

cardano7
سه شنبه 16 شهریور 1389, 08:24 صبح
ممنون از شما ولی چطور میشه اینارو تو برنامه کد نویسی کرد تا واسه بار اولی که برنامه میاد بالا این کارا انجام بشه؟؟؟؟؟؟؟؟

برخی از کتاب های آموزشی بخشی را برای ارتباط #C با Registry باید داشته باشند. ولی اگه پیدا نکردید این لینک می تونه کمک کنه:

http://www.csharphelp.com/2007/01/registry-ins-and-outs-using-c/

لینک جستجو:
http://www.google.com.my/search?q=C%23+registry&ie=utf-8&oe=utf-8&aq=t&client=firefox-a&rlz=1R1GGLL_en___MY394

Reza_Yarahmadi
سه شنبه 16 شهریور 1389, 09:52 صبح
متد زير براي معرفي فايل به ويندوز است ، اگر نميخوايد با كليك بر روي فايل برنامه شما بالا بياد بخش applicationPath رو خالي بفرستيد.

using Microsoft.Win32;



void RegisterMyFile(string fileType, string myIconPath, string applicationPath)
{
Registry.ClassesRoot.CreateSubKey("." + fileType).SetValue("", fileType + "File");
Registry.ClassesRoot.CreateSubKey(fileType + "File").CreateSubKey("DefaultIcon").SetValue("", myIconPath);
Registry.ClassesRoot.CreateSubKey(fileType + "File").CreateSubKey("shell").CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + applicationPath + "\"\"%1\"");
}

rezamansori
چهارشنبه 17 شهریور 1389, 13:01 عصر
هنگامی که کاربر یکی از فایل ها رو اجرا کرد برنامه اجرا میشه ما چطوری اون فایل رو توش باز کنیم؟

Reza_Yarahmadi
چهارشنبه 17 شهریور 1389, 13:23 عصر
چطوری اون فایل رو توش باز کنیم؟
چطور باز كردنش كه بستگي به برنامه شما داره ، ويندوز آدرس فايل رو به برنامه شما پاس ميده و برنامه شما با توجه به آدرس فايل رو بررسي ميكنه.
براي بدست آوردن آدرس فايل هم ميتونيد از دستور زير استفاده كنيد

Environment.GetCommandLineArgs()
اين متد يك آرايه رشته اي برميگردونه كه اولين خونه اون آدرس فايل اجرايي برنامه و بقيه آدرس فايلهايي است كه روش كليك شده.