gpt4 book ai didi

c++ - 使用 TerminateProcess 终止 "mstsc.exe"进程时出现错误代码 (5) 访问被拒绝

转载 作者:可可西里 更新时间:2023-11-01 14:51:44 35 4
gpt4 key购买 nike

我使用 CreateProcess() 函数通过“mstsc.exe”启动 rdp 客户端应用程序。之后,我想终止它,所以我使用了 TerminateProcess() 函数,但它失败了,错误代码为 5。如果我用“notepad.exe”替换“mstsc.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 与在 takmanager 或“Process Explorer”中观察到的进程“mstsc.exe”的 ID 不同。

最佳答案

您的主机进程是 32 位的而您在 64 位 Windows 上运行吗?

如果是这样,您正在调用 32 位 mstsc,它正在生成 64 位版本,因此 PID 不同。查看this thread

关于c++ - 使用 TerminateProcess 终止 "mstsc.exe"进程时出现错误代码 (5) 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12095581/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com