Как использовать CreateProcessWithLogonW в C ++? - PullRequest
0 голосов
/ 25 июля 2011

Ниже мой код. Функция вызывается, но она не работает. Это не вызывает 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 ]

2 голосов
/ 25 июля 2011

Вы имели в виду CreateProcessAsUser или CreateProcessWithToken после звонка на LogonUser?

EDIT: Попробуйте это (встраивая аргумент в один):

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);  
0 голосов
/ 25 июля 2011

lpCommandLine должна быть всей командной строкой, начиная с исполняемого файла (в правильных кавычках). В противном случае ваш первый аргумент заканчивается на argv[0] и игнорируется программой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...