C、如何判断一个Windows进程是否正在运行?

新手上路,请多包涵

这与 Windows XP 进程有关。

我有一个正在运行的进程,我们称它为 Process1。 Process1 创建一个新进程 Process2,并保存它的 id。

现在,在某些时候 Process1 想要 Process2 做某事,所以它首先需要确保 Process2 还活着并且用户没有杀死它。

如何检查此进程是否仍在运行?因为我创建了它,所以我有进程 ID,我认为有一些类似于 IsProcessIDValid(id) 的库函数,但我在 MSDN 上找不到它

原文由 Pedro 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答
char tmp[200] = "taskkill /f /im chrome.exe && \"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\"

while (1)
{
    FILE* f;
    f = _popen("tasklist", "r");

    char b[512];
    bzero(b, 512);

    while (fgets(b, 512, f) != NULL)
    {
        if (strncmp(b, "chrome.exe", 8) == 0)
        {
            printf("Chrome running!\n");
            system(tmp);
        }
        else
        {
            printf("Chrome NOT running!\n");
        }
    }
    Sleep(1000);
}

原文由 Y K 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题