无论如何,通过PC重新引导或用户单击应用程序快捷方式来标识MFC应用程序正在启动?

时间:2019-06-27 06:15:01

标签: c++ windows mfc

我有一个MFC应用程序。该应用程序在PC重新启动后运行,并且显然由用户单击应用程序图标。当用户单击应用程序图标时,应用程序将启动这是正常情况。但是,如果应用程序是从PC重新启动运行的,那么我想最小化应用程序系统托盘。系统已实现,但我不知道检测应用程序是通过PC还是用户单击启动的方式。有什么方法可以在MFC应用程序中检测这些情况?

每个帮助都是非常可贵的。谢谢。

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

更新: 您好@ michael-chourdakis先生非常感谢您的宝贵建议。我在下面更新我的解决方案。有人可能会从中获得帮助。

命令行参数值已设置为“自动运行” ,并使用以下应用程序名称在注册表中注册了该值:

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 个答案:

答案 0 :(得分:7)

注册要在登录时运行的应用程序时(通过注册表,资源管理器启动或您可能使用过的任何其他方法),请传递命令行参数以指示通过这种方式启动。

然后在应用启动时,检查是否使用了该参数。

您可能希望传递一个极高的值,这样就不会有人意外地以这种模式启动您的应用程序,例如CLSID。