组件 8086 同时按两个扫描代码



我正在尝试编写将屏幕更改为全屏模式的代码。问题是我在dosbox(窗口(中运行编程,所以我必须使dosbox变成全屏。我做了一个研究,我发现通过按下ALT+ENTER dosbox变成全屏。问题是我不希望用户更改为全屏,我希望程序本身这样做。

经过另一项研究,我发现了int 16h, 05h.我已经将Cl设置为ENTER按钮的 ASCII 值 ( 0Dh (。然后我CH设置了ALT(38h(的扫描码。然后我测试了它,但它没有变成全屏。我做了一个检查以确保ALT的扫描代码正常工作,方法是将CL更改为另一个字符并且它有效,所以这不是问题。然后我尝试将CH更改为ALT+ENTER(0Ah(,但仍然不起作用。

我认为问题是int 16h, 05发送扫描代码和 ASCII 字符,我尝试将 ASCII 字符称为其按钮。

有没有办法同时按下2个扫描码?(或者按住ALT,然后用int 16h,05h按下ENTER键?

谢谢!

然后我在CH中设置了ALT的扫描代码(38h(。我做了一个检查以确保 ALT 的扫描代码正常工作,通过将 CL 更改为另一个字符并且它有效,所以这不是问题。

模拟按键的 BIOS 功能永远不会像您想象的那样处理 ALT。ALT 只是一个特殊的键,用于处理其他键的 ASCII 和 SCAN 代码,它永远不会单独出现在编码的任何部分。将CH设置为 38h 将不起作用。


让DOSBOX窗口全屏显示是一个Windows操作。您只能从 Windows 编程代码中执行此操作。您不能在DOSBOX模拟器中运行的DOS程序中执行此操作。


关于模拟ALT-ENTER的想法。
在Windows 3.1的美好时光里,你有一个PIF配置文件,允许你指定某些组合键是由Windows还是由Windows中运行的DOS程序处理。做出正确的选择后,您的DOS程序就可以接收ALT-ENTER键。

也许在这一点上,您可以尝试执行一个真正的Windows程序,以最大化DOS程序的窗口。

最新更新