如何告诉CreateProcess我不需要提升用户权限

时间:2018-10-18 09:30:00

标签: winapi windows-7 uac elevated-privileges

我正在尝试运行一个可执行文件,该文件的文件名包含“ update”,例如“ mycoolupdate”,但没有扩展名。

如果它是普通的“ mycoolupdate.exe”文件,则Windows 7中的Windows资源管理器会自动根据需要提升用户权限的文件名来决定。

我认为这只是一个shell行为,不会影响WinAPI函数“ CreateProcess”,尤其是当文件名不包含.exe扩展名时,但事实并非如此。事实证明,相同的规则适用于WinAPI。

所以GetLastError返回

  

请求的操作需要提升

有没有办法告诉CreateProcess尽管文件名可疑,但我不需要提高用户权限?

1 个答案:

答案 0 :(得分:0)

从Windows Vista开始,需要正确编写的应用程序才能具有应用程序清单。

作为开发人员,您需要提供它。

在这种情况下,您的清单表明您的应用程序已为Windows Vista(或更高版本)正确编写。否则,Windows会假定您的应用程序未针对Windows Vista正确编写。