WaitForSingleObject 不等待进程结束[重复]

2023-12-12

我想等待进程执行(calc.exe)结束,但它不起作用。 我的程序很快完成,而我的进程(calc.exe)继续运行(我没有停止它)。

并且 WaitForSingleObject 立即返回 WAIT_OBJECT_0。

ps:我禁用了我的防病毒软件(AVIRA)

int main(int argc, char** arv)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));

const char * calcPrgm = "C:\\\\Windows\\System32\\calc.exe";
LPSTR calcPrgmLpstr = const_cast<LPSTR>(calcPrgm);

// Start the child process. 
if (!CreateProcess(NULL,   // No module name (use command line)
    calcPrgmLpstr,        // Command line
    NULL,           // Process handle not inheritable
    NULL,           // Thread handle not inheritable
    FALSE,          // Set handle inheritance to FALSE
    0,              // No creation flags
    NULL,           // Use parent's environment block
    NULL,           // Use parent's starting directory 
    &si,            // Pointer to STARTUPINFO structure
    &pi)           // Pointer to PROCESS_INFORMATION structure
    )
{
    printf("CreateProcess failed (%d).\n", GetLastError());
    return -1;
}

// Wait until child process exits.
auto ret = WaitForSingleObject(pi.hProcess, INFINITE);
printf("WaitForSingleObject ret = %x\n", ret);
if (ret == WAIT_OBJECT_0)
{
    printf("WaitForSingleObject ret ret == WAIT_OBJECT_0\n");
}
BOOL b = FALSE;
DWORD n = 0;
b = GetExitCodeProcess(pi.hProcess, &n);

// Close process and thread handles. 
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
printf("WaitForSingleObject end\n");
return 0;
}

我发现了错误。 “calc.exe”在退出之前创建另一个进程。我在主“Sleep(60 * 1000);”中使用 1 行代码创建/调用了自己的程序。现在没事了:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WaitForSingleObject 不等待进程结束[重复] 的相关文章

随机推荐

  • geom_tile 图的可变大小

    I have a code that takes in positional data as well as values at that positional data and then plots it with geom tile T
  • 从连接到 Google Functions 的端点调用时,Firebase ID 令牌具有不正确的“aud”(受众)声明

    我使用 Google Endpoints 作为 API 网关 该网关在 Google Run 容器服务中运行 API 路径指向 Google 函数 node js 对 API 网关的调用来自 Web 应用程序 即浏览器 其中一条路径是 lo
  • 在 asset:install 和 assetic:dump 之后,Fontawesome 字体失败

    我正在尝试建立一个我正在共享托管上工作的网站 一切正常 但 FontAwesome 图标 因为 Symfony 找不到它们应该在的位置 我按照以下步骤将网站移动到生产共享托管 由于 SH 不允许符号链接 因此将资产发布为硬拷贝 因此我运行此
  • 根据权重分布从列表中随机选择 N 个项目的最快算法是什么?

    我有一个很大的物品清单 每个物品都有一个重量 我想随机选择N个项目而不放回 而权重较大的项目更有可能被选择 我正在寻找最有效的想法 性能至关重要 有任何想法吗 如果你想样品项目无需更换 你有很多选择 使用加权选择替换算法来选择随机索引 有很
  • JTabel 单个单元格文本对齐

    基本上我有一个JTable 和这个JTabel将在一个单元格中包含一种产品 然后在其正下方的单元格中包含成本 产品名称应左对齐 产品成本应向右对齐 我实际上并不关心每行中其他单元格的对齐方式 所以我需要设置单个单元格或单个行的对齐方式 我找
  • Python中无效证书获取证书信息

    我正在编写一个 Python 2 7 13 Win x64 脚本来验证 SSL 证书并发出问题警报 但是 我遇到了一个问题 即仅当证书有效时脚本才会返回信息 如果证书无效 我会收到 CERTIFICATE VERIFY FAILED SSL
  • 替换文本中的一个字符

    如何用 2B 替换 这是我的代码 x lt asflj ldjjsf ljsdlafj gsub 2B x 我的输出是 2Ba 2Bs 2Bf 2Bl 2Bj 2B 2B 2B 2Bl 2Bd 2Bj 2Bj 2Bs 2Bf 2B 2Bl
  • “libRestKit.a,文件是为存档而构建的,不是正在链接的架构(armv7)”

    我正在尝试使用 xcodebuild 来构建项目 但是RestKit and GPUImage给出以下问题 ld 警告 忽略文件 project libGPUImage a 文件 project libGPUImage a 2个切片 中缺少
  • 应用程序服务器如何将 Google 帐户与用户设备关联?

    我希望用户能够从网络服务器和 或本机 PC 应用程序输入数据 并将其传输到他们选择的 Android 设备 就像 Google Play 在设备上安装的方式一样 我想使用用户的 Google 帐户验证在应用程序服务器和向 GCM 注册的用户
  • 在地图上绘制线条 - gcIntermediate

    我的代码可以很好地生成从 A 点到 B 点的地图和线条 但是对于远东半球的国家 该线尝试穿过最短路径 例如从澳大利亚向东 并中断以创建一条穿过地块的直线 有什么建议么 我缩短了代码并将其全部包含在下面以供使用 有人提到 在代码的链接中 使用
  • 配置django与Oracle 11g数据库问题

    使用 Django 进行 Oracle 数据库配置 并在迁移应用程序时遇到错误 django db migrations exceptions MigrationSchemaMissing 无法 创建 dja ngo migrations
  • 使用进程将数据发送到记事本

    我想将列表框中的每个项目发送到记事本 但我的逻辑有点打败我 private void send Click object sender EventArgs e var notepad Process GetProcessesByName N
  • 为什么 random.shuffle 返回 None ?

    Why is random shuffle返回None在Python中 gt gt gt x foo bar black sheep gt gt gt from random import shuffle gt gt gt print sh
  • 可以用SQL在数据库中进行二分查找吗?

    好的 我正在使用 C 编程语言访问一个简单的数据库 在 Microsoft SQL Server 上 目前 我正在使用 DataReader 对象来访问数据库 所以这是我的问题 是否可以对特定的数据进行二分搜索 在 C 中 以便我可以加快搜
  • Symfony2 - 如何从我的网址中删除“web/app_dev.php/”?

    当我希望我的 symfony 网站上线时 如何从我的网址中删除 web app dev php 这是开发时的默认url http localhost my symfony 2 web app dev php hello World 所以当我
  • NSMutableArray indexOfObject 返回一个非常大的数字

    我有一个 NSMutableArray 返回一个非常大的索引 po masterArray count lt returns 2 NSUInteger theIndex masterArray indexOfObject validateE
  • 在编译时选择随机数分布

    我正在使用编写测试TYPED TEST谷歌测试的功能 它允许我将测试推广到多种类型 我正在测试类型的类模板int and double 在测试中 我需要生成随机数 为此 我尝试使用std uniform int distribution
  • 数据描述符和非数据描述符的正确定义是哪一个?

    它们都是来自文档的Python 第一个 says 如果一个对象定义了两者 get and set 它被认为是一个数据描述符 仅定义的描述符 get 称为非数据描述符 它们通常用于方法 但也可能有其他用途 第二个 says 如果描述符定义 s
  • @aspnet_Membership_CreateUser 的密码

    应用 书呆子晚餐 该 SP 用于为新创建的用户插入密码 我试图找出应用程序代码中 Password 的来源 因为它是提供给该 SP 的 我在应用程序级别上查找它 但在应用程序级别上找不到它 有谁知道应用程序中哪里使用SP来传递 Passwo
  • WaitForSingleObject 不等待进程结束[重复]

    这个问题在这里已经有答案了 我想等待进程执行 calc exe 结束 但它不起作用 我的程序很快完成 而我的进程 calc exe 继续运行 我没有停止它 并且 WaitForSingleObject 立即返回 WAIT OBJECT 0