Bru*_*yne 5 x86 assembly winapi masm masm32
我正在尝试用汇编编写程序,我需要的第一件事就是特定进程主窗口的句柄.我一直试图用FindWindow来获取它,但到目前为止没有运气; FindWindow显然保持零返回.任何人都可以指出我在这里缺少什么?谢谢.
.486
.model flat, stdcall
option casemap :none
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
NtpTitle db "Untitled - Notepad",0
MsgNoNtp db "Notepad not found.",0
MsgNtp db "Found Notepad.",0
NullString db 0
hWndNtp dd 0
.code
start:
invoke FindWindow, offset NullString, offset NtpTitle
mov hWndNtp, eax
jz noNotepad
invoke MessageBox, 0, offset MsgNtp, 0, 40h
invoke ExitProcess, 0
noNotepad:
invoke MessageBox, 0, offset MsgNoNtp, 0, 10h
invoke ExitProcess, 1
end start
Run Code Online (Sandbox Code Playgroud)
您应该设置lpClassName
为NULL,而不是空字符串的地址.
invoke FindWindow, 0, offset NtpTitle
Run Code Online (Sandbox Code Playgroud)
你没有测试的回报值FindWindow
; mov不会修改标志.
test eax,eax
jz noNotepad
Run Code Online (Sandbox Code Playgroud)