В любом случае можно определить, что приложение MFC запускается после перезагрузки ПК или по нажатию пользователем ярлыка приложения? - PullRequest
3 голосов
/ 27 июня 2019

У меня есть приложение MFC. Это приложение запускается с перезагрузкой компьютера и, очевидно, пользователь нажимает на значок приложения. Когда пользователь нажимает значок приложения, приложение запускается. Это нормальный сценарий. Но если приложение запускается с перезагрузки компьютера, я хочу минимизировать системный трей приложения. Система была внедрена, но я не знаю, как определить, запускается ли приложение с помощью ПК или клика. Есть ли способ обнаружить эти сценарии в приложении MFC?

Каждая помощь очень заметна. Спасибо.

/////////////////////////////////////////////// ////////////////////////////////

Обновление: Здравствуйте, мистер @ michael-chourdakis большое спасибо за ваше ценное предложение. Я обновляю свое решение ниже. Кто-то может получить помощь от этого.

Значение параметра командной строки было установлено как "autorun" и зарегистрировано это значение с именем моего приложения в реестре, как показано ниже:

CString strFilePath = ApplicationFilePath + _T(" ") + _T("--autorun");

Ниже приведен процесс получения параметров командной строки из приложения MFC. InitInstance :

CString strAutoRun = _T("");

if(AfxGetApp()->m_lpCmdLine != NULL && AfxGetApp()->m_lpCmdLine[0] == _T('\0'))
{
     strAutoRun = AfxGetApp()->m_lpCmdLine;
}

if(strAutoRun.CompareNoCase(_T("--autorun")) == 0)
{
    // Application start from PC Rebooting....  
}

1 Ответ

7 голосов
/ 27 июня 2019

При регистрации приложения для запуска при входе в систему (через реестр, запуск обозревателя или любой другой метод, который вы, возможно, использовали), передайте параметр командной строки, чтобы указать запуск таким образом.

И при запуске приложения проверьте, использовался ли этот параметр.

Возможно, вы захотите передать экстремальное значение, чтобы никто не запустил ваше приложение в этом режиме, например, CLSID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...