改变记事本标题栏文字(汇编)

Posted by 老沙
9月 09 2008

其实就是用了一下sendmessage但是要注意postmessage无法处理参数中含有指针的消息,比如WM_SETTEXT,WM_COPYDATA等.
代码如下:

    .386
    .model flat,stdcall
    option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

include    windows.inc
include    user32.inc
includelib   user32.lib
include    kernel32.inc
includelib   kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    .data
hWnd    dd  ?
szBuffer   db  256 dup (?)

    .const
szCaption   db  'SendMessage',0
szDestClass  db  'Notepad',0   ;目标窗口的窗口类
szText    db  '这是一个测试',0
szNotFound  db  '目标无法找到!',0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    .code
start:
    invoke  FindWindow,addr szDestClass,NULL
    .if  eax
      mov  hWnd,eax  ;找到目标窗口则发送消息
      invoke  SendMessage,hWnd,WM_SETTEXT,0,addr szText
    .else
      invoke  MessageBox,NULL,offset szNotFound,offset szCaption,MB_OK
    .endif
    invoke  ExitProcess,NULL
    end  start

Trackback URL for this entry