この関数を使用して、CreateProcess()
「mstsc.exe」を使用してrdpクライアントアプリを起動します。その後、終了したいのでTerminateProcess()
関数を使用しますが、エラーコード5で失敗します。「mstsc.exe」を「notepad.exe」に置き換えると、終了機能が動作します。コードは次のとおりです。
TCHAR szCommandLine[] = TEXT("mstsc.exe");
STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi;
BOOL bResult = CreateProcess(NULL, szCommandLine, NULL, NULL,
FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
::Sleep(3000);
if (TerminateProcess(pi.hProcess, 0) == 0) {
printf("failed: %d", GetLastError());
}
誰かがそれを説明して解決するのを手伝ってもらえますか?私が観察したのは、pi
返されたpidが、taksmanagerまたは「ProcessExplorer」で観察されたプロセス「mstsc.exe」のIDとは異なることです。