Assembly 管理按键
我使用的是MASM语法,我想得到一个键盘按键,然后将其存储在代码中供以后使用,我尝试过使用:int 21h interrupt,但它在32位下似乎不起作用 有没有其他方法可以做到这一点Assembly 管理按键,assembly,32-bit,masm,masm32,Assembly,32 Bit,Masm,Masm32,我使用的是MASM语法,我想得到一个键盘按键,然后将其存储在代码中供以后使用,我尝试过使用:int 21h interrupt,但它在32位下似乎不起作用 有没有其他方法可以做到这一点 谢谢。如果您想切换到Windows,您可以使用该功能查看是否按下了一个或多个键。比使用GetKeyboardState更简单的方法是使用以下内容: .486 .model flat,stdcall option casemap : none include \masm32\include\windows.inc
谢谢。如果您想切换到Windows,您可以使用该功能查看是否按下了一个或多个键。比使用
GetKeyboardState
更简单的方法是使用以下内容:
.486
.model flat,stdcall
option casemap : none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\msvcrt.inc
include \masm32\macros\macros.asm
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\msvcrt.lib
.data?
key dd ?
.code
start:
printf("Press a key..")
call crt__getch
mov key,eax
printf("\nYou pressed key number %d", key)
invoke ExitProcess,0
END start
您的程序在什么环境下运行?Windows7,32位。我忘了提到这个程序实际上是基于控制台的。你必须在DosBox这样的模拟器中运行你的程序。或者将其改为Windows控制台应用程序(这意味着使用Win32 API而不是中断)。您认为哪种Win32 API最适合实现这一目标?