在Windows的参数中按ID杀死进程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Windows的参数中按ID杀死进程相关的知识,希望对你有一定的参考价值。

我想写一个程序,用Id杀死进程。当我通过name.exe [pid]运行它时,它无法正常工作。这是我的代码:

      int main(int argc, char *argv[])
    {
        DWORD pid = argv[1];
        HANDLE handleOfMyProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pid);
        TerminateProcess(handleOfMyProcess, 5);
    }

当我不写线

DWORD pid = argv[1];

并以这种方式给出pid号作为第三个参数,例如1243:

HANDLE handleOfMyProcess = OpenProcess(PROCESS_TERMINATE, FALSE, 1243);

有用。

我的问题是为什么第一种方法不起作用?

答案

因为main的参数是字符串,所以不能直接将参数赋给DWORD;你将不得不转换它。

main的定义显示了这一点:

int main(int argc, char *argv[]);

你可以用atoi转换它:

    DWORD pid= atoi(argv[1]);

并且您必须打开编译器的警告,因为编译器会给您一个警告

以上是关于在Windows的参数中按ID杀死进程的主要内容,如果未能解决你的问题,请参考以下文章

linux与windows查看占用端口的进程ID并杀死进程

linux查找进程id和杀死进程以及查看内存??

windows查看端口占用的进程和杀死进程

如何在父进程被杀死/完成时保持子进程处于活动状态(在 Windows 中)

windows命令行下杀死进程的方法

windows 10 杀死指定端口的程序