2
私はこの方法で私のプログラムが関連付けられています:のC#常に0引数
public static void CreateFileAssociation(string extension, string key, string description, string path)
{
RegistryKey classes = Registry.ClassesRoot;
RegistryKey extensionKey = classes.CreateSubKey(extension);
extensionKey.SetValue(null, key);
RegistryKey typeKey = classes.CreateSubKey(key);
typeKey.SetValue(null, description);
RegistryKey shellKey = typeKey.CreateSubKey("shell");
RegistryKey shellOpenKey = shellKey.CreateSubKey("open");
RegistryKey shellOpenCommandKey = shellOpenKey.CreateSubKey("command");
shellOpenCommandKey.SetValue(null, path);
}
マイProgram.cs
:
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1(args.TryGet(0)));
}
そして、私のForm1.cs
:
string filenameArg = "";
public Form1(string arg)
{
InitializeComponent();
filenameArg = arg;
}
私は私の関連するファイルを開きます(拡張子)、私のプログラムは引数なしで始まる
これで何が問題なのか分かりません。どうしたの ?
最も重要な部分を表示するのを忘れました。レジストリに書き込むときに 'path'の中身は何ですか? –
私のアプリケーションは外部です。どこからでも実行できるので、常に起動時にappdata \ local \ myProgramにコピーできます。 パスは:appdata \ local \ myProgram \ prog.exe – alix54
program.csで表示します。 string [] args; args.TryGet(0); string []には文字列[]のTryGetメソッドが定義されていませんか?私はこれをc#6.0でチェックしています –