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

问题描述 投票:0回答:2

我正在尝试运行一个文件名中包含“update”的可执行文件,例如“

mycoolupdate
”,不带扩展名。

如果是普通的“

mycoolupdate.exe
”文件,Windows 7中的Windows资源管理器会根据文件名自动判断需要用户权限提升。

我以为这只是一个shell行为,不会影响“

CreateProcess
”WinAPI功能,特别是当文件名不包含
.exe
扩展名时,但事实似乎并非如此。事实证明,同样的规则也适用于 WinAPI。

所以

GetLastError
返回

请求的操作需要提升

有没有办法告诉

CreateProcess
尽管文件名可疑,但我不需要提升用户权限?

winapi windows-7 uac elevated-privileges
2个回答
0
投票

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

作为开发人员,您需要提供此信息。

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


0
投票

遭受 740 ELEVATION_REQIRED 我以惊人的方式获胜:使用 createprocess 启动 .bat 文件。详细信息:Windows10,AccessRuntime_x86_en-us.exe,从命令提示符运行或在资源管理器中双击,会产生 740 createprocess 错误。包含路径并使用 createprocess 启动的一行 inst.bat 解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.