【发布时间】:2019-06-27 06:15:01
【问题描述】:
我有一个 MFC 应用程序。此应用程序在 PC 重新启动时运行,显然是通过用户单击应用程序图标来运行的。当用户单击应用程序图标时,应用程序将启动这是正常情况。但如果应用程序从 PC 重新启动运行,我想最小化应用程序系统托盘。系统已经实现,但我不知道如何检测应用程序是由 PC 启动还是由用户单击启动。有没有办法在 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....
}
【问题讨论】:
-
There is a way to detect if an application was launched from a shortcut,但是当用户通过在资源管理器中双击可执行文件来启动它时(或者当使用
CreateProcess或ShellExecute通过任何其他应用程序启动时),这当然是不够的。