CreateProcessAsUser
Логин пользователя проходит успешно (про это свидетельствует не нулевой дескриптор). Но процес создаться не может. Функция CreateProcessAsUser() возвращает 0. Хотя с темиже параметрами ф-ция CreateProcess() успешно виполняеться.
Вот я небольшой кусок кода кину чтоб было понятно что я делаю.
Код:
if(!LogonUser("User", ".", "Password", LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken)){
printf("LOGON Error #%d", GetLastError());
}
if (!CreateProcessAsUser(&hToken, null, cmd_line, 0, 0, false, DETACHED_PROCESS, 0, parent_dir, &si, &pi )) {
printf("Can`t start in SAFE MODE!\n");
if (!CreateProcess(null, cmd_line, null, null, flase, DETACHED_PROCESS, null, parent_dir, &si, &pi )) {
printf("Can`t start in NORMAL MODE!\n");
return -8;
}
}
printf("LOGON Error #%d", GetLastError());
}
if (!CreateProcessAsUser(&hToken, null, cmd_line, 0, 0, false, DETACHED_PROCESS, 0, parent_dir, &si, &pi )) {
printf("Can`t start in SAFE MODE!\n");
if (!CreateProcess(null, cmd_line, null, null, flase, DETACHED_PROCESS, null, parent_dir, &si, &pi )) {
printf("Can`t start in NORMAL MODE!\n");
return -8;
}
}
вот здесь это обсуждалось.