?? _console.asm
字號:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 控制臺程序的公用子程序
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data?
hStdIn dd ? ;控制臺輸入句柄
hStdOut dd ? ;控制臺輸出句柄
.code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 控制臺 Ctrl-C 捕獲例程
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_CtrlHandler proc _dwCtrlType
pushad
mov eax,_dwCtrlType
.if eax == CTRL_C_EVENT || eax == CTRL_BREAK_EVENT
or dwOption,F_ABORT
.endif
popad
mov eax,TRUE
ret
_CtrlHandler endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 控制臺初始化
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ConsoleInit proc
invoke GetStdHandle,STD_INPUT_HANDLE
mov hStdIn,eax
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov hStdOut,eax
invoke SetConsoleCtrlHandler,addr _CtrlHandler,TRUE
ret
_ConsoleInit endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 控制臺輸出子程序
; 注意: 用 WriteConsole 輸出則執行時無法用 > 重定向到文件
; 用 WriteFile 則可以
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ConsolePrint proc _lpsz
local @dwCharWritten
pushad
invoke lstrlen,_lpsz
lea ecx,@dwCharWritten
invoke WriteFile,hStdOut,_lpsz,eax,ecx,NULL
popad
ret
_ConsolePrint endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -