找回密码
 加入
搜索
查看: 5055|回复: 19

API 后台发送退格键为什么不好用啊?

[复制链接]
发表于 2009-6-9 20:05:27 | 显示全部楼层 |阅读模式
$cv=_WinAPI_PostMessage($hWnd,0x0100,8, 0)
这个,不行哦,高手指点下,谢谢!!!!
发表于 2009-6-9 20:06:21 | 显示全部楼层
干嘛要重开贴啊,汗~
 楼主| 发表于 2009-6-9 20:13:51 | 显示全部楼层
不是一个问题吧?
发表于 2009-6-10 22:20:13 | 显示全部楼层
 楼主| 发表于 2009-6-28 19:09:57 | 显示全部楼层
#include <PostMessage_UDF.au3>

$Hwnd = WinGetHandle("计算器")

_MouseClick($hWnd, "left", 19, 12)

_SendText($Hwnd,"9");后台发送点击9的消息
试过不好用啊?同志们怎么用PostMessage_UDF.au3啊???!!
发表于 2009-6-28 19:29:45 | 显示全部楼层
本帖最后由 pusofalse 于 2009-6-28 19:31 编辑
#include <SendMessage.au3>
If Not IsDeclared("WM_CHAR") Then $WM_CHAR = 0x102
_SendMessage($hWnd, $WM_CHAR, 8, 0)
 楼主| 发表于 2009-6-28 19:40:56 | 显示全部楼层
这个可以后台发么,我试了好像没效果哦~~
 楼主| 发表于 2009-6-28 20:05:40 | 显示全部楼层
_SendText($Hwnd,$bb)
_SendKeys($hWnd, "{ENTER}")
用这个还不行啊~继续等。。。。。。。。。。。。。。。。。。。。。。
发表于 2009-6-28 20:11:48 | 显示全部楼层
本帖最后由 pusofalse 于 2009-6-28 20:19 编辑
这个可以后台发么,我试了好像没效果哦~~
xpban2006 发表于 2009-6-28 19:40

如果目标进程阻止了发送按键,可能会导致失败。
我这里用记事本测试成功,楼主所谓的“后台”是什么意思?

以记事本为例,试下这样:
#include <SendMessage.au3>
If Not IsDeclared("WM_CHAR") Then $WM_CHAR = 0x102
Run("Notepad.exe")
WinWait("[class:Notepad]")

; $hWnd - 记事本的编辑框句柄。
$hWnd = ControlGetHandle("[class:Notepad]" ,"", "Edit1")
_SendMessage($hWnd, $WM_CHAR, Asc("a"), 0)
Sleep(1000)
_SendMessage($hWnd, $WM_CHAR, 8, 0)
 楼主| 发表于 2009-6-28 20:13:46 | 显示全部楼层
后台----打开的窗口可以不是激活状态,向它发按键
你的命令我试了不好用啊
发表于 2009-6-29 01:37:13 | 显示全部楼层
兄弟,你和我那个向隐藏窗口发空格是一样的道理....很多命令我都试过了......都不行....我用按键精灵就可以,但是按键精灵占用CPU太高了....所以想转为AU3的程序.......但是都没办法达到这样的效果....
 楼主| 发表于 2009-6-29 01:55:37 | 显示全部楼层
不是没有办法了吧?
发表于 2009-6-29 08:41:16 | 显示全部楼层
本帖最后由 liongodmien 于 2009-6-29 08:43 编辑

一个简单例子

$hwnd = WinGetHandle('计算器', 'Backspace')
ControlClick($hwnd, '', '[text:9]')
;ControlSetText($hwnd, '', '[classnn:Edit1]', '999')
发表于 2009-6-29 09:23:40 | 显示全部楼层
这个也达不到要求......这个是已打开了窗口的,.....他要的是在隐藏状态下....
发表于 2009-6-29 09:42:45 | 显示全部楼层
14# mmsivws
画人不一定要画出肠子的!

Run(@SystemDir & '\calc.exe')
WinWaitActive('计算器', 'Backspace')
MsgBox(262148, '注意计算器', '记住计算机里显示的数字是多少!' & @CR & '记住后按‘是’')
$hwnd = WinGetHandle('计算器', 'Backspace')
WinSetState($hwnd, '', @SW_HIDE)
ControlClick($hwnd, '', '[text:9]')
;ControlSetText($hwnd, '', '[classnn:Edit1]', '999')
MsgBox(262212, '注意看桌面', '计算机隐藏了吗?')
WinSetState($hwnd, '', @SW_SHOW)

评分

参与人数 1金钱 +20 收起 理由
yufei8051 + 20 可行无法回帖了。好帖记号

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-26 00:35 , Processed in 0.085385 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表