【发布时间】:2020-08-09 18:52:38
【问题描述】:
我有以下 C 代码,应该运行带有 UAC 提示符的默认 Windows 程序 changepk.exe
ShellExecute(NULL, "runas", "C:\\Windows\\System32\\changepk.exe", 0, 0, SW_SHOWNORMAL);
(请注意,ShellExecute 的输出为 2)。 但是,当我尝试使用这些行执行“changepk.exe”时,根本没有任何反应,但是对于“notepad.exe”而不是“changepk.exe”它可以工作并给我一个 UAC 提示。这可能是什么问题以及解决它的潜在方法是什么?
【问题讨论】:
-
ShellExecute()的返回值是多少?您是否尝试过ShellExecuteEx()(哪个更好地报告错误)?如果您将输入参数传递给changepk以实际执行操作,您是否有同样的问题?如果你通过cmd.exe /C执行changepk,你有同样的问题吗? -
@RemyLebeau 感谢您的建议。第一个选项不起作用,尝试了 /ProductKey 参数。 cmd.exe /C 开关也不起作用。