簡體   English   中英

即使窗口存在,FindWindow在MASM32程序中返回零

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM