У меня есть программа, которая передает аргументы командной строки связанному файлу (т.е. связанному расширению файла) исполняемого файла. Исполняемый файл никогда не получает аргументы. Однако, если я запускаю исполняемый файл напрямую и передаю ему путь к связанному файлу и аргументам, он получает как путь к файлу, так и аргументы.
Я запускаю связанный файл, используя:
System.Diagnostics.Process.Start(filepath, arguments)
Заранее благодарим за помощь.
-Edit
В принципе, у меня есть интерпретатор языка программирования, который должен получать аргументы командной строки, переданные ему программой С#.
Если я запустил файл кода с помощью программы С#, интерпретатор запустится, но не получит аргументы командной строки, которые были переданы в файл кода программой С#.
Таким образом, существует три файла:
Кроме того, запуск интерпретатора напрямую не является опцией, потому что он не расположен в том же пути к файлу на каждом компьютере.
Я надеюсь, что это яснее, но я не могу опубликовать исходный код с юридическими ограничениями.
Вы можете попробовать (untested) изменить ассоциацию файлов (на расширенной панели), чтобы включить аргументы% 2% 3 и т.д. (обычно это просто включает в себя% 1) - однако это связано с изменениями на клиенте и (что более важно) вся идея передачи аргументов в документ предполагает, что у вас есть один и тот же зритель (т.е. аргументы разумны).
IMO, лучший вариант - явно запустить exe, передав doc (и другие другие) в качестве аргументов.
Пример:
приемник exe (только показывает полученные аргументы команды):
static class Program {
[System.STAThread]
static void Main(string[] args) {
System.Windows.Forms.MessageBox.Show(string.Join("|", args));
}
}
Затем: создайте файл "foo.flibble", щелкните правой кнопкой мыши/открыть и связать с моим ресивером; попал в файловые ассоциации, "flibble", расширенный, "открытый", отредактировал и добавил% 2% 3% 4
Затем в отдельном exe:
Process.Start(@"c:\foo.flibble", "test of args");
Что показывает:
c:\foo.flibble|test|of|args
Итак, этот имеет, теперь передал дополнительные аргументы exe через документ. Но большая конфигурация клиента!