2013-11-02 4 views
0

У меня есть простое графическое приложение, которое должно выполнять определенную функцию при запуске, но не при ручном запуске с рабочего стола или меню «Пуск». Чтобы включить эту функцию, я подумал о предоставлении аргументов командной строки для приложения, так что в зависимости от аргумента командной строки мы можем различать запуск при запуске и ручном запуске.
Вопрос: как я могу убедиться, что всякий раз, когда пользователь нажимает значок приложения на своем рабочем столе, требуемые аргументы командной строки передаются программе.
Я использую C# для программирования своего приложения и хочу запускать его на окнах 7Как подать аргументы командной строки в форму при запуске?

+0

Какая операционная система? Какой язык? Нам нужно больше деталей. –

+0

Я использую C#, а операционная система - это окна 7 64 бит –

+0

Это не тот же вопрос! Мой вопрос другой. Я хочу, чтобы аргументы были переданы при запуске приложения из запуска, а не из другого приложения. –

ответ

2

Общий шаблон проектирования для приложений Windows, который можно запускать при запуске (то есть автоматически) или вручную (то есть, когда пользователь запускает приложение) должен передать аргумент командной строки , когда приложение запускается при запуске, но не тогда, когда пользователь запускает его вручную. Зачем? Поскольку вы управляете механизмом, с помощью которого приложение запускается автоматически (например, поскольку вы создаете раздел реестра в HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run). Так, например, можно добавить значение "c:\program files\MyCompany\MyApp.exe" /Startup И тогда вы могли бы проверить для startup аргумента в коде:

bool isStartupLaunch; 
foreach (string arg in args) 
    isStartupLaunch |= (arg.toLower() == "/startup"); 

В противоположность этому, вы никогда не может контролировать, как пользователь собирается запустить приложение. Возможно, они дважды нажимают на ярлык, но, возможно, они дважды нажимают на ваш фактический исполняемый файл, или, может быть, они открывают командную строку и запускают этот путь. Поэтому вы не хотите полагаться на получение определенного аргумента командной строки, когда пользователь запускает ваше приложение. Гораздо безопаснее искать автоматический запуск, потому что вы контролируете, как это делается, и поэтому можете управлять переданными аргументами командной строки.

Смежные вопросы