我有一个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....
}
答案 0 :(得分:7)
注册要在登录时运行的应用程序时(通过注册表,资源管理器启动或您可能使用过的任何其他方法),请传递命令行参数以指示通过这种方式启动。
然后在应用启动时,检查是否使用了该参数。
您可能希望传递一个极高的值,这样就不会有人意外地以这种模式启动您的应用程序,例如CLSID。