真的经过一些确认之后:
XP SP3是否实现了Vista中的用户界面权限隔离(UIPI)机制?
人类感兴趣的背景故事:) 我最近把C ++源代码交给了一个相当大的应用程序。可悲的是,这个应用程序的唯一开发人员,自90年代中期成立以来,最近离世,让我们处于一个非常紧张的地方,直到我们可以雇用一个新的开发人员。
最近用户报告该应用程序已经随机停止工作和/或以前工作过的某些功能似乎根本没有“尽管没有任何改变我的目的!”。 “没有改变”原来是SP3:)
知道了这一点,虽然我不是C / C ++人,但我想我会看看源代码,看看能不能找到任何东西(花了很多时间看防火墙,病毒扫描仪和其他外部因素)。
我跟踪了一个错误,调用了Api函数SendMessage,然后转到MSDN文档来查看。它明确指出“Microsoft Windows Vista及更高版本。消息发送受用户界面权限隔离(UIPI)的限制。进程的线程只能在完整性级别较低或相等的进程中向线程的消息队列发送消息。” 虽然我不是100%肯定,但这似乎是一个可能的原因。
干杯!
莱尼。
答案 0 :(得分:4)
不,XP SP3没有实现任何Vista安全性更改,至少与窗口管理器没有任何关联。你真的没有太多的帮助背景,但是你得到的与SendMessage()相关的错误是什么?
SendMessage()是一个非常广泛使用的例程,它只是将Windows消息调度到窗口,所以我希望错误与收件人窗口如何处理传入消息(而不是与SendMessage)相关联( )本身。您不必将SendMessage()视为仅仅是一个Windows函数,而是将其视为一个函数,最终会在您发送消息的窗口拥有的任何应用程序中调用更多的应用程序代码 - 特别是SendMessage()的返回代码告诉你窗口的应用程序在尝试处理消息时是如何得到的。
答案 1 :(得分:0)
UIPI不报告SendMessage上的错误 - 如果您收到错误,那么它就是其他内容。其他评论者是正确的,UIPI只在Vista上,除非你试图向服务发送消息,否则你不会得到这个 。