Открытие файлов в приложении
Цитата: Никита от 11.07.2021, 17:34Всем привет)
Делаю портативку для Торрент клиента..
Подскажите пожалуйста, как сделать так, чтобы при открытии торрент файла через мой лончер, сам торрент клиент, который запускается принимал этот файл и начинал с ним работать?
Или подскажите, как сделать, чтобы мой лончер понимал, какой именно файл его вызвал и тогда я уже дальше додумаю, как продолжить)
[MNotice]Не стоит делать такие отступы. Для перехода на следующую строку используйте Enter[/MNotice]
Всем привет)
Делаю портативку для Торрент клиента..
Подскажите пожалуйста, как сделать так, чтобы при открытии торрент файла через мой лончер, сам торрент клиент, который запускается принимал этот файл и начинал с ним работать?
Или подскажите, как сделать, чтобы мой лончер понимал, какой именно файл его вызвал и тогда я уже дальше додумаю, как продолжить)
Комментарий модератора:
Не стоит делать такие отступы. Для перехода на следующую строку используйте Enter
Цитата: Adler от 11.07.2021, 18:32Добрый день.
Не файл вызывает программу, а ассоциация. Т.е. если ассоциируете файл с какой-то программой или просто хотите своей программой открыть файл (например, путем перетаскиванием на файл программы), то файл передается программе в качестве параметра командной строки. Соответственно запуская другую программу нужно так же передать ей путь к файлу в качестве параметра командной строки.Если я правильно понял вопрос, то просто при запуске торрент клиента, передайте его в качестве аргумента, в свою очередь получив его из Environment.GetCommandLineArgs().
Process.Start(new ProcessStartInfo { FileName = "<путь к .exe торрент клиента>", Arguments = "<путь к файлу, который необходимо открыть>" });Ну а там уже в зависимости от конкретного клиента может быть какой-то дополнительный "ключ" командной строки для открытия файла.
P.S. Сперва не понял вопрос, поэтому удалил часть сообщения. Не уверен, что и сейчас правильно понял вопрос...
Добрый день.
Не файл вызывает программу, а ассоциация. Т.е. если ассоциируете файл с какой-то программой или просто хотите своей программой открыть файл (например, путем перетаскиванием на файл программы), то файл передается программе в качестве параметра командной строки. Соответственно запуская другую программу нужно так же передать ей путь к файлу в качестве параметра командной строки.
Если я правильно понял вопрос, то просто при запуске торрент клиента, передайте его в качестве аргумента, в свою очередь получив его из Environment.GetCommandLineArgs().
Process.Start(new ProcessStartInfo
{
FileName = "<путь к .exe торрент клиента>",
Arguments = "<путь к файлу, который необходимо открыть>"
});
Ну а там уже в зависимости от конкретного клиента может быть какой-то дополнительный "ключ" командной строки для открытия файла.
P.S. Сперва не понял вопрос, поэтому удалил часть сообщения. Не уверен, что и сейчас правильно понял вопрос...
Цитата: Никита от 11.07.2021, 18:50Цитата: Adler от 11.07.2021, 18:32Добрый день.
Не файл вызывает программу, а ассоциация. Т.е. если ассоциируете файл с какой-то программой или просто хотите своей программой открыть файл (например, путем перетаскиванием на файл программы), то файл передается программе в качестве параметра командной строки.Мне нужно, чтобы при дабл-клике по файлу *.torrent открылась моя программа, но сам *.torrent файл обрабатывался не в моей программе, а уже в том exe, который запуститься только после того, как откроется мой лончер.
То есть, как я это представляю, чтобы при открытии моего лончера он как-то записал в переменную путь к файлу, по которому я делаю дабл-клик.. Это же возможно сделать?
А уже с этой переменной работать, чтобы дальше передать путь к файлу для самого торрент клиента.
Цитата: Adler от 11.07.2021, 18:32Добрый день.
Не файл вызывает программу, а ассоциация. Т.е. если ассоциируете файл с какой-то программой или просто хотите своей программой открыть файл (например, путем перетаскиванием на файл программы), то файл передается программе в качестве параметра командной строки.
Мне нужно, чтобы при дабл-клике по файлу *.torrent открылась моя программа, но сам *.torrent файл обрабатывался не в моей программе, а уже в том exe, который запуститься только после того, как откроется мой лончер.
То есть, как я это представляю, чтобы при открытии моего лончера он как-то записал в переменную путь к файлу, по которому я делаю дабл-клик.. Это же возможно сделать?
А уже с этой переменной работать, чтобы дальше передать путь к файлу для самого торрент клиента.
Цитата: Adler от 11.07.2021, 19:23Ну если ассоциируете файл со своей программой (ну или через "Открыть с помощью"), то проверяйте
Environment.GetCommandLineArgs(), в нем, в качестве второго (первым будет путь к вашей программе) параметра (Environment.GetCommandLineArgs()[1]) будет путь к файлу, который вы пытаетесь открыть.
Ну если ассоциируете файл со своей программой (ну или через "Открыть с помощью"), то проверяйте СкопированоEnvironment.GetCommandLineArgs(), в нем, в качестве второго (первым будет путь к вашей программе) параметра (СкопированоEnvironment.GetCommandLineArgs()[1]) будет путь к файлу, который вы пытаетесь открыть.
Цитата: Никита от 12.07.2021, 00:23Цитата: Adler от 11.07.2021, 19:23Ну если ассоциируете файл со своей программой (ну или через "Открыть с помощью"), то проверяйте
Environment.GetCommandLineArgs(), в нем, в качестве второго (первым будет путь к вашей программе) параметра (Environment.GetCommandLineArgs()[1]) будет путь к файлу, который вы пытаетесь открыть.Получилось) Спасибо)
Цитата: Adler от 11.07.2021, 19:23Ну если ассоциируете файл со своей программой (ну или через "Открыть с помощью"), то проверяйте
СкопированоEnvironment.GetCommandLineArgs(), в нем, в качестве второго (первым будет путь к вашей программе) параметра (СкопированоEnvironment.GetCommandLineArgs()[1]) будет путь к файлу, который вы пытаетесь открыть.
Получилось) Спасибо)