2016-02-16 165 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'動詞 –

相關問題