我有一个使用CreateProcess的C ++程序。这在我手动触发应用程序时工作正常。但是,当从任务调度程序触发应用程序时,它返回符合错误代码6,此错误代码引用了什么?
在网上,我找不到与错误代码对应的任何消息?
我使用的代码:
int StartCommand(char* Command) {
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
bool CommandStatus = CreateProcess(NULL, Command, NULL, NULL, FALSE, CREATE_NO_WINDOW | CREATE_SUSPENDED | CREATE_BREAKAWAY_FROM_JOB, NULL, NULL, &si, &pi);
AssignProcessToJobObject(FilerHandle, pi.hProcess); // Does not work if without CREATE_BREAKAWAY_FROM_JOB
ResumeThread(pi.hThread);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
if (CommandStatus) {
return pi.dwProcessId;
}
cout << GetLastError() << endl; //RETURNS ME 6
Message = "Couldn't start command!";
Exit(Message);
return 0;
}
请注意,当我手动触发时,相同的命令会成功执行