应用程序在运行时接受参数

时间:2011-07-13 13:25:46

标签: visual-c++ mfc

我正在使用visual studio 2008和MFC。我接受使用CCommandLineInfo的子类并重写ParseParam()的参数。

现在我想在运行时将这些参数传递给应用程序。例如“test.exe / start”然后键入控制台“test.exe / initialize”再次初始化。

有没有办法做到这一点?

编辑1:一些澄清。我的程序以“test.exe / start”开头。我想键入“test.exe / initialize”并初始化唯一的运行进程(不关闭/打开)。通过初始化,我的意思是读取不同的XML文件,更改界面的某些值和其他内容。

2 个答案:

答案 0 :(得分:1)

我想不出一个简单的方法来完成你所要求的。

但是,您可以开发应用程序以专门接收命令,并根据这些命令在接收命令时执行您想要的任何操作。由于您已经在使用MFC,因此您可以轻松地完成此操作。为您的应用程序创建一个窗口(HWND)并注册它。它不必是可见的(这不一定会使您的应用程序成为GUI应用程序)。实施WndProc,并根据WM_USER + <xxx>定义您将收到的具体消息。

答案 1 :(得分:0)

首先,显而易见的问题是为什么你想拥有线程而不是进程。

您可以使用GetCommandLineCommandLineToArgvW来获取完全格式化的命令行。检测参数,并调用CreateProcessShellExecute传递/ watever 以生成进程。您可能还想使用GetModuleBaseName来获取自己的EXE名称。