移动窗口(),跳过,躲避或绕过消息传递
MoveWindow(), skip, dodge or bypass messaging?
我正在使用MoveWindow()
调整窗口大小,但我不拥有该窗口。我只是从不同的进程中偷走了它,现在我正在弄乱它的 hWindow。
然而,我从中窃取它的过程是运行一个消息循环,处理其中一些消息(WM_MOVE
、WM_SIZE
、WM_GETMINMAXINFO
等),这基本上阻止了我用它做任何我想做的事情。有时,它甚至不会让我将其大小调整到超过给定的最大值,这是使其全屏运行的关键。
除了使用 asm,还有什么方法可以绕过消息传递吗?
SetWindowPos
有一个标志,不告诉窗口你正在用它做某事:
SetWindowPos (hwnd, 0, x, y, width, height, SWP_NOZORDER | SWP_NOSENDCHANGING);
正如注释中提到的,在代码中依赖这种行为,你将使用更多的乐趣是不好的,对其他窗口也不公平,而且你很容易遇到问题。Raymond Chen对此有一些特别有趣的博客文章,即"如果两个程序这样做会怎样?
相关文章:
- Libmosquitto publish 不会将所有消息传递到 Azure IoT Hub
- 线程消息传递或更好:在"大师班"中访问其他班级的成员
- 如何在 boost::asio 中将打包的结构作为消息传递?(无序列化)
- "Guaranteed Delivery"消息传递 - 我应该使用 MQTT 还是 ZeroMQ?
- 核心消息传递中未处理的异常.dll在程序关闭期间
- Microsoft具有本机消息传递和非持久连接的边缘扩展不起作用
- Firebase C 云消息传递背景问题
- 从客户端到浏览器的CEF中的消息传递序列化
- 我们是否可以使用 FireBase 云消息传递来发送或接收消息,或者在 Windows 桌面/控制台或 Linux 控制
- 如何将WM_KEYDOWN消息传递到 IWebBrowser2 实例
- 如何在 GNU Radio 中实现消息传递
- msgpack:C++和Java之间的消息传递
- 增强ASIO和线程之间的消息传递
- 交流时Chrome本机消息传递错误
- 多线程C++消息传递
- 跨平台最佳 MVC 模型到控制器消息传递方法(C#、Objective-C++)
- 如何在Chrome原生消息传递扩展的本机应用程序中使用本机主机消息
- 移动窗口(),跳过,躲避或绕过消息传递
- 无效输入会导致多语言 JSON 消息传递系统中的身份验证绕过
- 共享内存系统性能的消息传递接口