如何在c ++中使用CreateProcessWithLogonW?

时间:2011-07-25 06:50:02

标签: visual-c++

以下是我的代码。该函数被调用,但它不起作用。它不会调用exe。为什么呢?

int Createprocesslogon()
{
STARTUPINFOW su_info;
ZeroMemory(&su_info, sizeof(STARTUPINFOW));
su_info.cb = sizeof(STARTUPINFOW);

PROCESS_INFORMATION pi;
ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
CreateProcessWithLogonW(L"xxx", L"localhost", L"123456", 0, L"C:\\Program Files\\app\\IECapt.exe" ,L" --url=http://www.facebook.com/ --out=test.png --min-width=1024", 0, NULL, NULL, &su_info, &pi);

cout << "testt";

return 0;
}

2 个答案:

答案 0 :(得分:2)

在致电CreateProcessAsUser后,您的意思是CreateProcessWithToken还是LogonUser

编辑: 试试这个(将参数嵌入一个):

CreateProcessWithLogonW(L"xxx", L"localhost", L"123456", 0, 0,
L"\"C:\\Program Files\\app\\IECapt.exe\" \" --url=http://www.facebook.com/ --out=test.png --min-width=1024\"", 0, NULL, NULL, &su_info, &pi);  

答案 1 :(得分:0)

lpCommandLine应该是整个命令行,从可执行文件开始(正确引用)。否则,您的第一个参数将以argv[0]结束,并被程序忽略。