C# 了解应用程序是否需要管理员权限

C# 了解应用程序是否需要管理员权限,c#,windows-7,uac,C#,Windows 7,Uac,Windows 7使用自动机制检测应用程序是否需要提升的管理员权限。或者应用程序本身有一个清单 有没有办法通过编程确定指定的应用程序是否需要提升的管理员权限? 我不想为了找到答案而开始 谢谢 实际上只有一种方法可以告诉Windows程序需要升级,那就是通过清单文件。清单文件可以嵌入程序集(exe/dll)中,也可以位于名为.exe.Manifest的单独文件中。这是唯一的方法,也可能是唯一可以安全检查的方法。正式的 Windows还包含一个用于应用程序兼容性的大型数据库。如果微软测试了一个应用程

Windows 7使用自动机制检测应用程序是否需要提升的管理员权限。或者应用程序本身有一个清单

有没有办法通过编程确定指定的应用程序是否需要提升的管理员权限? 我不想为了找到答案而开始


谢谢

实际上只有一种方法可以告诉Windows程序需要升级,那就是通过清单文件。清单文件可以嵌入程序集(exe/dll)中,也可以位于名为
.exe.Manifest
的单独文件中。这是唯一的方法,也可能是唯一可以安全检查的方法。正式的

Windows还包含一个用于应用程序兼容性的大型数据库。如果微软测试了一个应用程序,发现它在操作系统升级时会崩溃,他们有时会在数据库中创建一个条目,从根本上破解这个应用程序。有时他们会谎报当前的操作系统版本,有时他们会自动以管理员身份运行,有时他们会做一些其他事情。您可以使用查看数据库。我不知道是否有官方的方法通过代码查询数据库。谈到一个博客作者制作的工具,但显然从未发布过

最后一个自动提升机制是尝试确定该应用程序是否为安装程序的算法。将检查这些属性:

  • 文件名包括“安装”、“安装”、“更新”等关键字
  • 以下版本控制资源字段中的关键字:供应商、公司名称、产品名称、文件描述、原始文件名、, 内部名称和导出名称
  • 可执行文件中嵌入的并排清单中的关键字
  • 在可执行文件中链接的特定StringTable项中的关键字
  • 可执行文件中链接的RC数据中的关键属性
  • 可执行文件中的目标字节序列
关键字和字节序列是从公共 从各种安装技术中观察到的特征


最后,应用程序可以作为普通用户运行。我不知道是否真的有任何方法可以检测到应用程序本身的反编译不足。

请不要在标题前加上“C”。这就是我们使用标签的目的。好的,谢谢你的更正。我会在以后的问题上牢记这一点;)首先,我要感谢你给了我这个冗长而详细的回答!好的,我将实现最后声明的算法并查找清单文件。它似乎涵盖了许多情况。非常感谢:)