如何在C ++中以管理员权限运行ShellExecute?

时间:2016-02-16 06:21:41

标签: c++ windows winapi

我想杀死一个名为Sample.exe的应用程序

我尝试使用TerminateProcess,它在杀死Sample.exe时返回了ACCESS_DENIED错误。后来我发现这是一个访问权限问题。

如何使用ShellExecute API以使用Administrador权限终止Sample.exe

:: ShellExecute(NULL,NULL,L“taskkill”,L“/ F / T / IM Sample.exe”,NULL,SW_HIDE);

有人能建议一个好的解决方案吗?

谢谢, Sreekumar Sasidharan

1 个答案:

答案 0 :(得分:0)

如果...

taskkill /F /T /IM Sample.exe

...不会在(常规,非提升)命令行提示符下工作,然后......

::ShellExecute(NULL, NULL, L"taskkill", L"/F /T /IM Sample.exe", NULL, SW_HIDE);

...在您的代码中,当作为常规非提升用户运行时,同样会失败。

解决方案是运行程序 as-admin (提升)。当然,你必须意识到如果它起作用的话,这将是多大的安全漏洞。