C++ 是否通过电脑重启或用户点击应用程序快捷方式来确定MFC应用程序正在启动?

C++ 是否通过电脑重启或用户点击应用程序快捷方式来确定MFC应用程序正在启动?,c++,windows,mfc,C++,Windows,Mfc,我有一个MFC应用程序。此应用程序在PC重新启动的情况下运行,显然是由用户单击应用程序图标。当用户单击应用程序图标时,应用程序将启动,这是正常情况。但是,如果应用程序从PC重新启动运行,我希望最小化应用程序系统托盘。系统已经实现,但我不知道如何检测应用程序是由PC还是用户点击启动的。有没有办法在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....  
}

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

在应用程序启动时,检查是否使用了该参数

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

,但当用户通过双击资源管理器中的可执行文件启动应用程序时(或通过使用
CreateProcess
ShellExecute
的任何其他应用程序启动应用程序时),这当然是不够的。