PDA

View Full Version : چگونه با کلیک شدن بر روی یک فایل تکست می توان آنرا گشود؟



1010101
پنج شنبه 19 آذر 1383, 10:18 صبح
سلام
من یه برنامه توی مایه های notepad نوشتم و پیشفرز ویندوز برای فایل های txt رو برنامه خودم قرار دادم :oops: :oops:
حالا می خواستم ببینم چطور میشه که یه فایل txt وقتی اجرا میشه (مثلا c:\test.txt) داخل برنامه من load بشه
یا به عبارت دیگه چطور میتونم مکان اون txt رو بدست بیارم و وقتی برنامم بالا میاد بهش بفهمونم که توست چه فایلی
و از کجا فرا خوند شده. :evil2:
امیدوارم منظورم خوب رسونده باشم.

Vahid_Nasiri
پنج شنبه 19 آذر 1383, 12:22 عصر
با استفاده از کلاس Microsoft.Win32.RegistryKey می توان یک file type را به برنامه ای نسبت داد. برای مثال :


string keyName;
string keyValue;
//This creates a Root entry called "MyApp".
keyName = "MyApp";
keyValue = "My Application";

RegistryKey key;
key = Registry.ClassesRoot.CreateSubKey(keyName);
key.SetValue("",keyValue);
key = key.CreateSubKey("shell");
key = key.CreateSubKey("open");
key = key.CreateSubKey("command");
key.SetValue("","c:\\temp\\my.exe %1");

keyName = ".bar";
keyValue = "MyApp";
key = Registry.ClassesRoot.CreateSubKey(keyName);
key.SetValue("", keyValue);

در این مثال به برنامه my.exe که در مکان معرفی شده قرار دارد فایلهایی با پسوند bar نسبت داده شده است. از این پس با کلیک بر روی اینگونه فایلها برنامه my.exe اجرا می شود.
برای مثال اجرای کد زیر سبب اجرای برنامه شما می شود:

System.Diagnostics.Process.Start("c:\\test.bar");


برای دریافت نام فایلی که روی آن کلیک شده و باید دربرنامه باز شود نیاز هست تا برنامه شما command line parameters ارسال شده به آنرا دریافت و پردازش کند.
برای اینکه مفهوم پارامترهای دریافتی برنامه را بهتر متوجه شوید به مثال زیر دقت کنید (برای برنامه های حالت کنسول) :


using System;

public class CommandLine2
{
public static void Main(string[] args)
{
Console.WriteLine("Number of command line parameters = {0}",
args.Length);
foreach(string s in args)
{
Console.WriteLine(s);
}
}
}

در برنامه های winform‌ دار باید با استفاده از متغیر Environment.CommandLine این مقادیر را دریافت نمایید (در تابع main برنامه).

1010101
جمعه 20 آذر 1383, 18:48 عصر
سلام :D
آقای نصیری دستت درد نکنه :wink:
ولی یه مشکل کوچیک هست اونم وقتی این کار رو میکنم دوتا پارامتر دریافت میکنم
یکی همون فایلی که برنامه منو فرا خونده و دیگری هم مکان برنامه من (c:\My.exe)
برای اینکه فقط پارامتر فایلی که برنامه ی من رو فرا خونده بدست بیارم باید چیکار کنم (با یه مثال):evil2:
با تشکر 1010101