窗户力UAC提升的文件,如果他们的名称中包含“更新”?(Windows force UAC elev

2019-10-23 14:31发布

我使用的是Windows 7和Microsoft Visual Studio 2010。

我创建简单的项目与一个MessageBox()的调用WinMain() 该项目的名称是"update" ,那么EXE文件的名称是update.exe 。 我在链接器设置关闭清单生成。 但是,当我尝试启动在Visual Studio调试,它说,我的应用程序需要提升。

我决定通过点击它在Windows资源管理器启动应用程序,但它仍然需要管理员权限。 我重新命名为update12345.exe12345update12345.exe ,但它仍然需要提升。

但是,当我把它改名为12345.exe ,它完美地工作,而不要求管理员权限! 我认为,Windows需要为这名中包含的所有文件海拔"update"子。 所以,我把另一个文件( debugview.exe从Sysinternals的DebugView中),并重新命名为update.exe -但它的工作原理没有升高。

什么都可以对这种奇怪的行为的原因是什么?

Answer 1:

如果您的应用程序不包含一个requestedExecutionLevel到它的清单,安装程序检测技术,检查自己的名称中包含“更新”,“安装”等,以检测是否是一个安装应用程序。 这就解释了,因为你的应用程序需要UAC被重命名为“ 更新 ”的时候,和其他应用程序比具有清单没有。



文章来源: Windows force UAC elevation for files if their names contain “update”?