是否可以以编程方式检查.NET控件何时将启动UAC?

时间:2010-08-13 08:05:49

标签: c# .net reflection

我正在尝试使用反射让程序查看自己并确定某个控件是否触发UAC。我或者希望能够看到按钮上的事件处理程序创建特权进程或检查给定按钮是否启用了UAC屏蔽。这可能吗?

2 个答案:

答案 0 :(得分:1)

应该可以使用cciast.codeplex.com编写类似于你要求的东西。

CCIAST允许您反编译方法。这样,您就可以了解该方法是否运行了潜在的特权流程。

但根据您的软件,它可能无法产生您希望的结果。

最好,如果可能的话,可能是重构只从一小组已知方法中启动特权进程,然后使用重构工具来查找如何使用它们。

答案 1 :(得分:0)

我认为这只能通过运行控件的功能并查看是否被拒绝访问来实现。这是基于考虑在其容器定义的位置创建文件的控件。改变路径给出了“需要UAC”的不同答案?问题,而且需要UAC的路径也取决于当前用户。

如果您知道控件的作用(它试图访问哪些系统资源)以及包含应用程序的清单,则应该可以根据具体情况进行处理,但这可能最终只是重复逻辑在注册表,服务管理和文件系统中,不同对象具有不同访问权限的操作系统。