Есть ли способ или событие для получения аргументов командной строки во время выполнения - PullRequest
0 голосов
/ 28 апреля 2020

так что я пытаюсь сделать медиаплеер на данный момент, я нахожусь в финальной стадии, чтобы опубликовать sh мой медиаплеер для poeple, чтобы загрузить его, у меня просто есть проблема, где мне нужно захватить аргумент командной строки во время выполнения, пока я проверил запуск только одного экземпляра приложения, и я могу получить аргумент командной строки при использовании Open With из windows explorer, он работает, но мне нужно иметь возможность получать аргументы командной строки во время выполнения, предположим, что вы используете мое приложение, вы слушаете musi c и вы нашли нужный вам musi c в папке на вашем p c, вы так ленивы, чтобы переключиться на приложение и используйте кнопку открытия файла, которую вы просто хотите дважды щелкнуть по песне и начать прослушивание, теперь, если приложение закрыто, когда вы дважды щелкнете по песне, оно будет воспроизводиться без проблем, но если приложение запущено, оно не будет воспроизводиться windows просто переключится на приложение. Поэтому возникает вопрос: есть ли событие или способ отловить, если аргумент командной строки передается приложению во время выполнения?

1 Ответ

0 голосов
/ 28 апреля 2020

Поскольку вы указали, что сделали приложение единичным экземпляром, весьма вероятно, что вы используете среду приложений VB. Эта структура предоставляет событие StartupNextInstance . Из документации по этому событию.

Необходимо использовать свойство CommandLine параметра e для доступа к аргументам для последующих попыток запуска приложения с одним экземпляром.

Чтобы добавить обработчик для этого события, вы можете использовать конструктор для создания обработчика через Меню проекта-> Свойства PropjectName-> Кнопка приложения - Просмотр событий приложения или просто скопировать следующее в файл кода в вашем проекте.

Imports Microsoft.VisualBasic.ApplicationServices

Namespace My
  Partial Friend Class MyApplication
    Private Sub MyApplication_StartupNextInstance(sender As Object, e As StartupNextInstanceEventArgs) Handles Me.StartupNextInstance
      ' use e.CommandLine
    End Sub
  End Class
End Namespace
...