请帮忙 - 来自 Aero Shake/3D Flip 的 WM_SYSCOMMAND 消息
您好,
我有一个用 Delphi 2006 编写的应用程序。我注意到,在 Windows 7 下运行时,该应用程序没有收到来自 Aero Shake 的 WM_SYSCOMMAND 消息。但是,如果我以管理员身份运行应用程序,那么它在执行 Aero Shake 时确实会收到 WM_SYSCOMMAND。
我尝试为 WM_SYSCOMMAND 调用 ChangeWindowMessageFilter 并得到 True 的结果,表明调用成功,但我仍然无法从 Aero Shake 获取 WM_SYSCOMMAND 消息。
有谁知道为什么以及如何解决这个问题?
谢谢
HI
I have an application written in Delphi 2006. I have noticed that when running under windows 7 the application does not receive the WM_SYSCOMMAND message from Aero Shake. However if I run the application as administrator then it does receive the WM_SYSCOMMAND when performing Aero Shake.
I've tried calling ChangeWindowMessageFilter for WM_SYSCOMMAND and get a result of True indicating that the call succeeded but I still can't get the WM_SYSCOMMAND message frmo Aero Shake.
Does anyone know why and how I can fix this?
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
讨论在存在(或以其他方式)MOVE 消息处理和/或特定情况下 AeroSnap/Shake 的行为窗框样式可能会提供一些帮助。
This discussion of the behaviour of AeroSnap/Shake in the presence (or otherwise) of MOVE message handling and/or specific window frame styles may provide some assistance.
我已经解决了这个问题,为了获取 WM_SYSCOMMAND 消息,您需要使用应用程序清单将应用程序提升到至少 HighestAvailable。执行此操作后,一切正常,只是您现在在启动应用程序时会看到标高确认对话框。
I've solved this, in order to get the WM_SYSCOMMAND message you need to elevate the application to at least highestAvailable using an application manifest. After doing this everything works perfectly except that you now get the elevation confirmation dialog when starting the application.