注册 登录
编程论坛 汇编论坛

对程序运行结果有疑问

toyix 发布于 2008-07-14 14:46, 1060 次点击
;#Mode=CON
  .386
  .model flat, stdcall
  option casemap :none

  include windows.inc
  include user32.inc
  include kernel32.inc
  include masm32.inc

  includelib user32.lib
  includelib kernel32.lib
  includelib masm32.lib
  include macro.asm

  .data?
      Handle1  dd  ?
      Handle2  dd ?
      buffer  db 100 dup(?)
  .CODE
  START:
    ;get the handle of the taskbar
      invoke FindWindow,CTEXT('Shell_TrayWnd'),NULL        
      mov    Handle1,eax
    ;get the handle of the start button from the taskbar
      invoke FindWindowEx,Handle1,0,CTEXT('Button'),NULL  
      mov    Handle2,eax
    ;set the text
      invoke SetWindowText,Handle2,CTEXT('Z..T')
    ;used to refresh the caption of the start button
      invoke SendMessage,Handle2,WM_MOUSEMOVE,0,0   
  ; 运行之后
      ;暂停显示,回车键关闭
      invoke StdIn,addr buffer,sizeof buffer
      invoke ExitProcess,0  
  end START 程序运行之后 开始菜单上面的字  就变成了‘Z..T’,但为什么 操作一些程序之后,它上面的字又变回‘开始’了呢(比如打开任务管理器操作)我看的是aogo网站的教程,用的他们自创的编辑器,题目不明白的联系QQ494000816,在线等答案
5 回复
#2
ONEPROBLEM2008-07-14 15:29
呵呵~~我也弄了几下,也不明白是什么原因。反正觉得挺有意思的。
反汇编看看~~~
#3
ONEPROBLEM2008-07-14 15:40
原因会不会是,罗云彬书上的第7章“图形操作”里面所说的“客户区刷新”的问题啊?
可惜我刚学到第5章,后面的还没看明白。
#4
ONEPROBLEM2008-07-14 16:04
呵呵~~我又试验了几下:
发现,打开“WINDOWS任务管理器”的时候,“开始”按钮又恢复了原来的样子。
我的猜测是这样的:
“开始”按钮一般情况下总是属于最顶层的窗口(总在最前面),所以打开一般窗口的时候,它是不用刷新的。而“WINDOWS任务管理器”是系统的模态对话框,一打开它就成了最前面的窗口了。此时,“开始”按钮就得刷新了-----恢复了原来的样子。
我又尝试了“隐藏任务栏”这个方式,发现也是这样----“开始”按钮一刷新,就恢复原来的样子了。
#5
toyix2008-07-14 17:21
如果是这样的话,有没有办法让上面的字不变过来呢,好像超级兔子就有这样的功能
#6
你们都要疼我哦2008-07-14 22:47
  还没看到相关内容呢.
1