gpt4 book ai didi

windows - 如何捕获 Windows 消息?

转载 作者:可可西里 更新时间:2023-11-01 10:27:52 25 4
gpt4 key购买 nike

我正在制作一个名为 Pwn16 的程序。它通过模拟 Intel 8086/Pentium 处理器和 DOS/Win3.x/Win98 系统,让 16 位应用程序在 64 位系统上运行。 Pwn16 使用一个小型加载程序来检测 Windows 何时发出“不兼容 16 位”消息(包括来自 CMD 的消息),并且当它注意到所述消息被调用时,它将关闭它并自动启动 Pwn16。 是否有任何库可以让我“捕获”这些消息并做其他事情来代替错误?我在 VB6 中完成了大部分工作,因此任何可以执行此操作的代码也会有所帮助。我已经关闭了仿真和 GUI,我只需要完成此加载程序即可完成它。我需要捕获的消息:

“此文件的版本与您正在运行的 Windows 版本不兼容。请检查您计算机的系统信息,了解您是否需要 x86(32 位)或 x64(64 位)版本的程序,然后联系软件发行商。”

“不支持的 16 位应用程序:由于与 64 位版本的 Windows 不兼容,程序或功能“(文件)”无法启动或运行。请联系软件供应商询问是否有 64 位 Windows 兼容版本可用。”

“这不是有效的 Win32 应用程序。”

“(文件)应用程序无法在 Win32 模式下运行。”

谢谢。

最佳答案

据我所知,Explorer 和 cmd.exe 都不会事先检查可执行文件的有效性。相反,他们调用 CreateProcess如果失败,请查看返回的错误代码。

所以,如果你 hook调用 CreateProcess(或者可能是 the underlying native API),您应该能够捕获返回到 Explorer/cmd.exe/whatever 的错误代码,然后执行您的操作。

我认为捕获呈现给用户的消息不会有帮助。除了检查每个对话框和写入每个控制台的每段文本以查看它是否包含您正在寻找的消息所涉及的低效率之外,您将如何识别用户试图运行哪个文件?

关于windows - 如何捕获 Windows 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com