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

问题描述 投票:0回答:1

我想写一个程序,用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);

有用。

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

c process operating-system terminate
1个回答
2
投票

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

main的定义显示了这一点:

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

你可以用atoi转换它:

    DWORD pid= atoi(argv[1]);

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

© www.soinside.com 2019 - 2024. All rights reserved.