首页
社区
课程
招聘
[求助]剪切板为什么要执行两次才能成功复制
发表于: 2013-3-27 23:02 6836

[求助]剪切板为什么要执行两次才能成功复制

2013-3-27 23:02
6836
invoke        lstrcat,addr buf,L("0")        ;在字符串中加上零
invoke        lstrlen,addr buf
push eax
invoke        GlobalAlloc,GHND,eax
mov esi,eax
invoke GlobalLock,eax       
mov        edi,eax
pop eax                               
invoke RtlMoveMemory,edi,addr buf,eax                                        
invoke OpenClipboard,hWnd
invoke EmptyClipboard                       
invoke SetClipboardData,CF_TEXT,esi                ;为什么总是执行第二次这个函数才执行成功,以上函数都执行成功       
invoke CloseClipboard
invoke GlobalUnlock,edi
invoke GlobalFree,esi        
百思不得其解.为什么要执行两次才能成功.这么.第一次启动程序复到剪切板成功,第二次复不成功,第三次又能成功. 坐得知情人回答

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
知道了..谢谢
2013-3-28 01:34
0
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
lstrcat,addr buf,L("0")的写法是否有问题?

个人认为有较大问题,正常的字符串上加不上也不需要加0,非正常字符串就读违规了
2013-3-28 08:55
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
lz的解决方法是什么?
2013-3-28 10:08
0
雪    币: 29
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
把最后一句去掉就行了
2013-3-31 01:14
0
游客
登录 | 注册 方可回帖
返回
//