[英]FindWindow returns zero in MASM32 program even if the window exists
我正在嘗試以匯編形式編寫程序,而我需要做的第一件事是特定進程主窗口的句柄。 我一直在嘗試使用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
您應該將lpClassName
設置為NULL,而不是將地址設置為空字符串。
invoke FindWindow, 0, offset NtpTitle
您沒有測試FindWindow
的返回值; mov不修改標志。
test eax,eax
jz noNotepad
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.