2016-02-16 130 views
-1

我想杀死一个名为的应用程序,Sample.exe如何在C++中使用管理员权限运行ShellExecute?

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

如何使用的ShellExecute API与Administrador特权

:: ShellExecute的查杀SAMPLE.EXE(NULL,NULL,L “的taskkill” L “/ F/T/IM SAMPLE.EXE”,NULL ,SW_HIDE);

任何人都可以提出一个好的解决方案吗?

感谢, Sreekumar Sasidharan

+0

如果有帮助,你可以使用''runas''动词来启动提升过程。 –

+0

@JonathanPotter我应该在哪里通过这个“runas”? – Sree

+0

作为'ShellExecute'中的动词参数。 –

回答

0

如果...

taskkill /F /T /IM Sample.exe 

......在(正规,非提升)命令行提示符将无法正常工作,然后...

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

...在您的代码中运行时与常规非高级用户同样失败。

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

+0

或使用'runas'动词 –

相关问题