如何访问UNICODE_STRING CommandLine变量?

时间:2012-10-03 23:01:02

标签: c windows winapi process command-line-arguments

我发现在Windows中运行的程序的命令行参数存储在Process Environment块中。我发现在PEB内部有一个名为RTL_USER_PROCESS_PARAMETERS的结构,它包含一个名为UNICODE_STRING CommandLine的成员变量; 我可以通过编写c代码来访问此变量吗?请协助 有关PEB的更多信息,请参阅此链接 http://msdn.microsoft.com/en-us/library/aa813706%28VS.85%29.aspx

1 个答案:

答案 0 :(得分:2)

您需要GetCommandLine功能。即使您的程序是ANSI,您仍然可以显式调用宽版本GetCommandLineW

此功能为documented on MSDN。查看“要求”部分,您会看到它已在WinBase.h中定义,但您应该包含Windows.h。它仅从Windows XP开始提供,因此根据您使用的SDK版本,您可能需要首先定义_WIN32_WINNT

#define _WIN32_WINNT 0x0502
#include <windows.h>