我正在编写一个包装另一个进程的(Win32控制台)程序;它需要的参数如下面的例子:将argv转换回单个字符串
runas.exe user notepad foo.txt
即:runas
解析user
然后将运行记事本,使剩余的参数。
我的问题是argv
被分解成各个参数,但CreateProcessAsUser
需要一个lpszCommandLine
参数。
构建这个命令行可能并不简单,只需将空间加入argv
即可。任何指针?
这只是一个例子。我的第一个参数实际上不是用户名,并且可能有空格。这使得手动解析的结果非常棘手。
同样,argv
的天真级联不起作用,因为它需要处理原始参数被引用并且可能在其中包含空格的情况。
我会说“用空格加盟的argv一起回来”就可以了。是什么让你觉得不对? – 2009-06-10 11:30:14
Benoît,因为它不适用于`runas.exe用户记事本'foo bat.txt'`。 – avakar 2009-06-10 11:35:39
不要忘记引用任何包含空格的参数 – Hasturkun 2009-06-10 11:35:41