1

我有一个 Win32 应用程序,它有一个对话框,只有在进程是重新启动的进程时才会执行某些操作。大纲如下:

#define CMDLINE_RESTART_PROCESS "--Restart"

BOOL CheckForProcessRestart()
{
    LPTSTR szCmdLine = ::GetCommandLine()
    return ::StrStr(szCmdLine, CMDLINE_RESTART_PROCESS) != NULL;
}

BOOL CMyDialog::InitInstance()
{
    if(CheckForProcessRestart())
    {
        // Do something (like initialize certain variables, controls, etc)
    }
    // Rest of application
}

在我检测到该进程是一个重新启动的进程并初始化这些控件和变量后,我的对话框将执行它​​的操作并关闭。

此对话框可通过主窗口中的菜单访问。单击该菜单按钮时,当此对话框弹出时,它将再次检测到它是重新启动的进程,因为GetCommandLine()将获取原始命令行参数。

我的问题是,有什么方法可以在处理完命令行参数后重置它们?

谢谢!

4

2 回答 2

3

据我所知,没有办法做到这一点。您最好的选择是制作一份副本并始终检查该副本。然后,您可以根据需要修改该副本。

于 2013-03-04T07:30:13.287 回答
2

只需使用一个标志,true在第一次重新启动时设置它,然后在它是true.

于 2013-03-04T07:29:00.063 回答