| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1852 人关注过本帖
标题:这里stdin 是什么意思?
只看楼主 加入收藏
u332744
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-9-11
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:13 
这里stdin 是什么意思?
   buffer   db 100 dup(?)
   .CODE
   START:
      invoke StdIn,addr buffer,sizeof buffer
2012-08-21 17:27
u332744
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-9-11
收藏
得分:0 
这是全部代码: 没看到buffer初始化
   .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,CTXT('SciCalc'),NULL
      invoke FindWindow,CTXT('Shell_TrayWnd'),NULL         
      mov    Handle1,eax
     ;get the handle of the start button from the taskbar
      invoke FindWindowEx,Handle1,0,CTXT('Button'),NULL   
      mov     Handle2,eax
     ;set the text
      invoke SetWindowText,Handle2,CTXT('go')
     ;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
2012-08-21 17:27
u332744
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-9-11
收藏
得分:0 
上面代码出自
http://www.
还有个问题:
文字被改动之后,什么情况下会恢复为原来的呢?

[ 本帖最后由 u332744 于 2012-8-21 17:31 编辑 ]
2012-08-21 17:30
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:3 
masm32.inc在这里面的 就是命令行下的输入函数

是以库形式提供的罢 没代码 可以逆向出来 反正也是汇编 你一看就明白了

0040105C    55              PUSH EBP
0040105D    8BEC            MOV EBP,ESP
0040105F    83C4 F8         ADD ESP,-8
00401062    6A F6           PUSH -0A
00401064    E8 6F000000     CALL <JMP.&kernel32.GetStdHandle>
00401069    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
0040106C    6A 07           PUSH 7
0040106E    FF75 FC         PUSH DWORD PTR SS:[EBP-4]
00401071    E8 74000000     CALL <JMP.&kernel32.SetConsoleMode>
00401076    6A 00           PUSH 0
00401078    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
0040107B    50              PUSH EAX
0040107C    FF75 0C         PUSH DWORD PTR SS:[EBP+C]
0040107F    FF75 08         PUSH DWORD PTR SS:[EBP+8]
00401082    FF75 FC         PUSH DWORD PTR SS:[EBP-4]
00401085    E8 5A000000     CALL <JMP.&kernel32.ReadFile>
0040108A    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
0040108D    C9              LEAVE
0040108E    C2 0800         RETN 8


比自己写容易一些


[ 本帖最后由 zklhp 于 2012-8-21 17:47 编辑 ]
2012-08-21 17:45
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用u332744在2012-8-21 17:30:17的发言:

上面代码出自
http://www.
还有个问题:
文字被改动之后,什么情况下会恢复为原来的呢?

文字被改动之后,什么情况下会恢复为原来的呢?

没明白。。
2012-08-21 17:45
u332744
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-9-11
收藏
得分:0 
上面代码运行后把开始菜单的START或者中文版的"开始" 改为 "GO"了,   怎么改回去
2012-08-22 09:13
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用u332744在2012-8-22 09:13:18的发言:

上面代码运行后把开始菜单的START或者中文版的"开始" 改为 "GO"了,   怎么改回去

最简单的方法 怎么设置的怎么改回来呗
2012-08-22 19:14
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
重启一下系统是不是也能改回来呀?
2012-08-22 20:58
u332744
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-9-11
收藏
得分:0 
过一段时间自动改回来了
可是我没看到有改回来的代码啊
2012-08-23 09:21
水哥
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:65
专家分:111
注 册:2012-8-11
收藏
得分:3 
invoke SetWindowText,Handle2,CTXT('开始')
2012-08-23 11:48
快速回复:这里stdin 是什么意思?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019009 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved