经过一点确认之后:
XP SP3是否实现了Vista中的用户界面特权隔离(UIPI)机制?
出于人类利益的背景故事:)
最近,我将C ++源代码交给了一个相当大的应用程序。遗憾的是,此应用程序的唯一开发者自90年代中期问世以来就去世了,这使我们处于一个非常狭窄的位置,直到我们可以雇用新的开发者为止。
最近,用户报告说该应用程序已随机停止工作,并且/或者以前起作用的某些功能似乎根本无法启动“尽管我的目标没有改变!”。 “什么都没有改变”原来是SP3 :)
知道这一点,尽管我不是C / C ++专家,但我想我应该看一下源代码,看看我是否能找到任何东西(花了大量时间研究防火墙,病毒扫描程序和其他工具)。外在因素)。
我追踪到一个错误,该错误是对Api函数SendMessage的调用,然后转到MSDN文档进行查看。它明确指出:“ Microsoft Windows Vista和更高版本。消息发送受用户界面特权隔离(UIPI)约束。进程的线程只能将消息发送到完整性级别较低或相等的进程的线程的消息队列。”尽管我不确定100%,但这似乎是可能的原因。
干杯!
兰尼。
最佳答案
不,XP SP3不会实现Vista的任何安全更改,至少与窗口管理器无关。您实际上并没有提供太多帮助的背景,但是会遇到与SendMessage()相关的哪种错误?
SendMessage()是一种非常广泛使用的例程,该例程只是将Windows消息分发到窗口,因此我希望该错误与收件人窗口处理传入消息(或不处理)的方式相关,而不是与SendMessage()本身相关。与其将SendMessage()视为Windows函数,还不如将它视为一个函数,它将最终在向您发送消息的窗口所拥有的任何应用程序中调用进一步的应用程序代码-特别是SendMessage()的返回代码告诉您窗口的应用程序如何继续尝试处理消息。
关于c++ - XP SP3中的用户界面特权隔离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/272112/