找回密码
 加入
搜索
查看: 2459|回复: 7

[网络通信] [已解决]如何清除外部控件文字

[复制链接]
发表于 2019-11-30 17:15:49 | 显示全部楼层 |阅读模式
本帖最后由 w60711 于 2019-12-1 00:58 编辑

请问各位前辈
目前有一个外部窗口
有 Edit1,Edit2 控件,Edit1裡头有文字

现在想要在不激活该窗口的状况下
将Edit1裡面的文字清除再输入新的
但一直不顺利
想请教是否有啥方法,感谢~
(不清除的话会接续着写入...)

以下2种方法试过无效...
$win = "[CLASS:LauncherDialog]"
$hWin = WinGetHandle($win)
$btnCtrl1 = "[CLASS:Edit; INSTANCE:1]"
$CtrlHandleEdit1 = ControlGetHandle($win,"", $btnCtrl1)

ControlFocus($hWin, '', $btnCtrl1)
Sleep(1000)
ControlSend($hWin, '', $btnCtrl1, '^a')
Sleep(250)

_SendText(String($CtrlHandleEdit1), '新文字') ;;Edit1
$win = "[CLASS:LauncherDialog]"
$hWin = WinGetHandle($win)
$btnCtrl1 = "[CLASS:Edit; INSTANCE:1]"
$btnCtrl1 = "[CLASS:Edit; INSTANCE:2]"
$CtrlHandleEdit1 = ControlGetHandle($win,"", $btnCtrl1)

ControlFocus($hWin, '', $btnCtrl2)
Sleep(1000)
_SendKeys($hWin, '{TAB}')
Sleep(250)

_SendText(String($CtrlHandleEdit1), '新文字') ;;Edit1







发表于 2019-11-30 17:28:59 | 显示全部楼层
ControlSend($hWin, '', $btnCtrl1, '^a') 后台全选有效的话 再send '{del}'
 楼主| 发表于 2019-11-30 20:19:55 | 显示全部楼层
afan 发表于 2019-11-30 17:28
ControlSend($hWin, '', $btnCtrl1, '^a') 后台全选有效的话 再send '{del}'

感谢afan大,
但是我这是在操作游戏的启动器
如果使用 send('{DEL}')的话
是否会影响到正在使用中的画面呢?
感谢您~
发表于 2019-11-30 20:25:09 | 显示全部楼层
w60711 发表于 2019-11-30 20:19
感谢afan大,
但是我这是在操作游戏的启动器
如果使用 send('{DEL}')的话

我的意思是继续用 ControlSend {del},Send是不能后台的… 前提是已完成了全选
 楼主| 发表于 2019-11-30 20:29:53 | 显示全部楼层
afan 发表于 2019-11-30 20:25
我的意思是继续用 ControlSend {del},Send是不能后台的… 前提是已完成了全选

了解了
是我误会了><"

刚刚有一问题忘记补充了
以下很奇怪...
如果我用了 MsgBox(0,0,ControlGetFocus($hWin))
测试是否有将焦点放到Edit1
则可以成功将光标设置以及全选
但把MsgBox 注释掉后,又无法了...

        WinActive($hWin)
        Sleep(1000)
        ControlFocus($hWin, '', $btnCtrl1)
        Sleep(3000)
        ;;MsgBox(0,0,ControlGetFocus($hWin))
        ControlSend($hWin, '', $btnCtrl1, '^a')
        Sleep(250)
发表于 2019-11-30 20:39:50 | 显示全部楼层
w60711 发表于 2019-11-30 20:29
了解了
是我误会了>

MsgBox 弹出及关闭 系统会有激活的消息产生,会让目标激活而自然使全选有效
但有些时候已全选但在窗口未激活状态下是没有高亮显示的,这都需要自行测试,没法猜
也可以插一句 ControlClick($hWin, '', $btnCtrl1),再 ^a ,如果仍无效那可能是需要激活才行

评分

参与人数 1金钱 +30 收起 理由
w60711 + 30 赞一个!

查看全部评分

 楼主| 发表于 2019-11-30 20:47:31 | 显示全部楼层
afan 发表于 2019-11-30 20:39
MsgBox 弹出及关闭 系统会有激活的消息产生,会让目标激活而自然使全选有效
但有些时候已全选但在窗口未 ...

理解了,
感谢afan版大提示~^^
我再来测试看看~
 楼主| 发表于 2019-12-1 00:53:36 | 显示全部楼层
本帖最后由 w60711 于 2019-12-1 00:57 编辑
afan 发表于 2019-11-30 20:39
MsgBox 弹出及关闭 系统会有激活的消息产生,会让目标激活而自然使全选有效
但有些时候已全选但在窗口未 ...

没有激活的状况下
仍有一些状况无法选取...

目前使用这个方法,可以达到目的~
_GUICtrlEdit_SetText($CtrlHandleEdit1,$RuID);;帐号 Edit1
_GUICtrlEdit_SetText($CtrlHandleEdit2,$Rpass);;密码 Edit2
_MouseClick(String($CtrlHandleButton1),'left',32,276);;登入按钮

afan大一席话
激起了灵感,找到了变通方法
太感谢了~~

评分

参与人数 1金钱 +50 收起 理由
afan + 50 赞一个!勤测试是真理

查看全部评分

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

本版积分规则

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

GMT+8, 2024-12-23 16:37 , Processed in 0.083790 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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