Я связан мою программу с помощью этого метода: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 defintion для строки []? Я проверяю это с помощью C# 6.0 –