PDA

View Full Version : حرفه ای: باز کردن فایل با دابل کلیک از ویندوز



secondstriker
یک شنبه 04 دی 1390, 17:15 عصر
با سلام
برنامه من با OpenFileDialog فایل مورد نظر رو باز میکنه اما وقتی از اکسپلورر ویندوز روی آن دابل کلیک می کنم باز نمیشه. پسوند فایل هم DPHE می باشد که با خود برنامه تولید شده است. لطفا راهنمایی بفرمایید.

Mahmoud Zaad
یک شنبه 04 دی 1390, 17:34 عصر
سلام
باید پسوند مورد نظر رو با نام برنامه و آیکونش توی رجیستری ثبت کنی یه متد مثل زیر می نویسی و توی constructor فرم اصلیت می نویسی. ممکنه لازم بشه، یه بار ری استارت کنی.

private void registerySetting()
{
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(".DPHE");
key.SetValue("", "DPHE files");
key.Close();
key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey("DPHE files");
key.SetValue("", "MyAppName");
key.Close();
key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey( @"DPHE files\Shell\Open").CreateSubKey("Command");
key.SetValue("", "\"" + Application.ExecutablePath + "\" \"%L\"");
key.Close();
key = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey( @"DPHE files\DefaultIcon");
key.SetValue("", Application.StartupPath + @"\icon.ico");
key.Close();
}

MyAppName نام برنامه است.

secondstriker
دوشنبه 05 دی 1390, 16:31 عصر
سلام
باید پسوند مورد نظر رو با نام برنامه و آیکونش توی رجیستری ثبت کنی یه متد مثل زیر می نویسی و توی constructor فرم اصلیت می نویسی. ممکنه لازم بشه، یه بار ری استارت کنی.

privatevoid registerySetting()
{
RegistryKey key = Registry.ClassesRoot.CreateSubKey(".DPHE");
key.SetValue("", "DPHE files");
key.Close();
key = Registry.ClassesRoot.CreateSubKey("DPHE files");
key.SetValue("", "MyAppName");
key.Close();
key = Registry.ClassesRoot.CreateSubKey(@"DPHE files\Shell\Open").CreateSubKey("Command");
key.SetValue("", "\"" + Application.ExecutablePath + "\" \"%L\"");
key.Close();
key = Registry.ClassesRoot.CreateSubKey(@"DPHE files\DefaultIcon");
key.SetValue("", Application.StartupPath + @"\icon.ico");
key.Close();
}

MyAppName نام برنامه است.

من تا حالا هر چی برنامه دیدم اینجوری بوده که وقتی نصبش تموم میشده تمامی فایل هایی که توی خود setup از طرف کاربر تنظیم میشده که با برنامه باز بشن، هم آیکنشون عوض می شده و هم با دابل کلیک با برنامه باز میشدن.
به نظر شما این کار بهتر نیست تا اینکه کد تغییر رجیستری رو مستقیم توی فایل باینری برنامه قرار بدم؟

Mahmoud Zaad
دوشنبه 05 دی 1390, 17:03 عصر
سلام
از نظر بهتر یا بدتر بودن، دقیقاً نمی دونم. این هم یه روشی بود که عرض کردم. البته می تونید تنظیمات رو توی خود ستاپ هم انجام بدید. من یه برنامه کوچیک داشتم از این روش استفاده کردم.

qweeqw
جمعه 03 مهر 1394, 20:23 عصر
سلام دوستان یه تعداد فایل خروجی دارم میخوام یک بار opens with کنم و مثلا فرمت 005. الی 900.رو یک باره opens with کنم و نرم افزار مورد نظر انتخاب کنم