pywinauto 自动进行远程桌面登陆 remote desktop connection
python 环境配置
需要安装pywinauto, 可以使用pip,具体过程,这里就不累述。
当安装完成,执行下
from pywinauto.application import Application
不报错,就说明安装成功
pywinauto 与application建立连接
官网这里显示了好几种建立
连接
这里采用如下
app = Application('uia').start(r'C:\WINDOWS\system32\mstsc.exe')
uia
是一个backend参数,与这个windows dialog的底层实现有关。一般都是uia
在这个建立的过程中,app会解析出这个dialog的参数
pywinauto 定位元素,操作元素
如果操作dialog上的元素呢? 例如点击,输入文本等?
点击
获取到元素,调用click()方法就可以
可点击的元素,一般是Button类型的
输入文本
获取到元素,调用 set_edit_text 就可以。
可输入文本的元素,一般是type是EditL类型的。
获取元素
有一种我认为比较简单的写法,用于定位元素。
app[][]...
其中每个[]
里面是dialog的名字,就是我们ui上看到的,也是我们在spy上看到的class name.
在这里,第一个dialog的名字是Remote Desktop Connection
如果是中文的话,填相应的中文,可以使用spy, copy其caption
以防止文字拼写错误。spy
有两种辅助方式,可以帮助我们定位到 准确的元素。一个是spy
工具,
一个是pywinauto自带的print_control_identifiers
spy 辅助
如果电脑没有,这个需要安装。
操作步骤:
- 打开spy
- ctrl +f
- drag
如上图所示,有的定位dialog是没有名称的。有的是有名称的。
print_control_identifiers
这个可以打印出dialog的具体信息,比如,我们想知道 想往computer里面输入机器号,
app[‘Remote Desktop Connection’][‘???’]
这里的???指的是 我们想定位的computer那里。
如果正确定位了,接下来我们只需要 app[‘Remote Desktop Connection’][‘???’].set_edit_text(“”) 就可以了
下面是remote desktop connection 打印出的信息
我们要找到computer的标签,其中,他的type应该是可编辑的Edit。
Control Identifiers:Dialog - 'Remote Desktop Connection' (L681, T177, R1239, B496)
['Dialog', 'Remote Desktop ConnectionDialog', 'Remote Desktop Connection']
child_window(title="Remote Desktop Connection", control_type="Window")| | Static - 'Computer:' (L704, T327, R792, B343)| ['Static', 'Computer:', 'Computer:Static', 'Computer:0', 'Computer:1', 'Static0', 'Static1']| child_window(title="Computer:", auto_id="5011", control_type="Text")| | ComboBox - 'Computer:' (L798, T321, R1114, B346)| ['Computer:2', 'ComboBox', 'Computer:ComboBox']| child_window(title="Computer:", auto_id="5012", control_type="ComboBox")| | | | Edit - 'Computer:' (L802, T325, R1090, B341)| | ['Computer:Edit', 'Edit']| | child_window(title="Computer:", auto_id="5012", control_type="Edit")| | | | Static - 'Username:' (L704, T363, R780, B379)| ['Static2', 'Username:', 'Username:Static']| child_window(title="Username:", auto_id="13063", control_type="Text")| | | Button - 'Connect' (L1012, T449, R1112, B477)| ['Connect', 'Button3', 'ConnectButton']| child_window(title="Connect", auto_id="1", control_type="Button")
可以看到几个有关Computer
- child_window(title=“Computer:”, auto_id=“5012”, control_type=“ComboBox”)
- child_window(title=“Computer:”, auto_id=“5011”, control_type=“Text”)
- child_window(title=“Computer:”, auto_id=“5012”, control_type=“Edit”)
我们需要使用第3个,因为其是edit的。
app['Remote Desktop Connection'].child_window(title="Computer:", control_type ="Edit").set_edit_text("connect_conputer")
整体的代码
下面是整体的代码,因为有dialog memory,我的一些信息就不用输入了。
加入time.sleep 是为了等待dialog UI 刷新完成。也可以使用
actionable_dlg = dlg_spec.wait(‘visible’)
app = Application('uia').start(r'C:\WINDOWS\system32\mstsc.exe')#way 1
#dlg_spec = app.Remote
#way2
#dlg_spec = app.window(title='Remote Desktop Connection')
# wait till the window is really open
#actionable_dlg = dlg_spec.wait('visible')# 输入远程电脑名称
app['Remote Desktop Connection'].child_window(title="Computer:", control_type ="Edit").set_edit_text("我的远程电脑名称")
# 点击连接
app['Remote Desktop Connection']['Connect'].click()
time.sleep(3)
# 远程连接,电脑输入密码. 用户名有dialog memory,所以不用输入了
app['Remote Desktop Connection']['Windows Security'].child_window(auto_id="PasswordField_2", control_type="Edit").set_edit_text("password")
time.sleep(2)
# 点击Ok
app['Remote Desktop Connection']['Windows Security'].child_window(title="OK", auto_id="OkButton", control_type="Button").click()
pywinauto 自动进行远程桌面登陆 remote desktop connection相关推荐
- mac远程桌面Microsoft Remote Desktop for Mac的安装与使用
mac远程桌面Microsoft Remote Desktop for Mac的安装与使用 学习了:https://blog.csdn.net/ytangdigl/article/details/78 ...
- 远程桌面连接(Remote Desktop Manager)
远程桌面连接软件Remote Desktop Manager 特色: 带有系统管理界面,保存远程桌面连接信息,复制数据都很方便! 另外,登录信息记录等一系列方便用户的功能点. (好不好用,你试试,保管 ...
- mac远程桌面Microsoft Remote Desktop for Mac - Mac-连接Windows远程桌面
好记星不如烂笔头,这里记录平时工作中用到的东西,不喜可以留言. 1:在mac电脑远程桌面可以使用,Microsoft 远程桌面 使用 Microsoft Remote Desktop 这个还是 ...
- MAC下连接Windows的远程桌面Microsoft Remote Desktop
在MAC下搞开发,偶尔要远程一些windows机器帮忙解决问题,大部分用向日葵,teamviewer就可以了.但是遇到了需要连接windows远程桌面的怎么处理呢?我试了下MAC自带的远程桌面软件,据 ...
- 使用外网访问Microsoft 远程桌面(Microsoft Remote Desktop),实现对电脑的远程操控
就在昨天博主发现有一款微软官方的APP可以实现在手机上远程操控电脑,抱着玩一玩心态下下来,使用之后发现不愧是官方应用,远程操作起来流畅度很高,如果用局域网的话甚至都没有感到卡顿,但是这样终究只能在家里 ...
- MAC远程连接Windows的远程桌面Microsoft Remote Desktop工具下载
MAC Book Pro进行开发,需要连接远程的windows或堡垒机,目前没找到很好的工具,而微软提供了一套Microsoft Remote Desktop可以进行远程连接,使用起来还算方便. 基本 ...
- 通过WMIC命令远程打开远程计算机的远程桌面(Remote Desktop)功能
虽然标题有点拗口,不过这个命令确实挺有用的. 往往辛辛苦苦装了一台Server,回到家里本想远程桌面爽一下,却忘了打开远程的功能,这时这条命令就有用了. 昨天在一台Server上用了招行的网上银行专业 ...
- 超好用的windows远程桌面管理工具Remote Desktop Connection Manager
Remote Desktop Connection Manager Remote Desktop Connection Manager (RDCMan) 是微软Windows Live体验团队的主要开 ...
- Windows远程桌面的使用(Remote Desktop Connection)
Remote Desktop Connection是Windows自带的一款远程登录附件,非常简单易用. 1.打开的Remote Desktop Connection 输入对方IP地址,点击conne ...
最新文章
- html按钮按下效果_CSS+HTMLlt;水滴按钮效果gt;
- Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图
- Leetcode--84. 柱状图中最大的矩形
- 服务实体经济、战略级行业再下一城,钉钉发布制造行业解决方案2.0
- android开发隐藏软键盘,Android开发之完全隐藏软键盘的方法
- 静态和动态web的区别与联系
- c++中计算2得n次方_PLC-上海会通松下PLC中的数据类型有哪些?
- C语言中字符串的处理方式(一)
- linux shell编程小程序6,shell脚本应用小程序
- CompositeUI Demo BankBranchWorkbench
- js高级学习笔记(b站尚硅谷)-5-回调函数
- 最新的省市区三级地区MySQL数据库,附带获取方法
- Java将UTC格式时间转换为北京时间
- Unity 3D 入门小游戏 小球酷跑(上)
- oracle+rac+ogg部署,RAC环境下配置OGG同步
- 数据分析/大数据研发面经笔经(阿里/腾讯/网易/招行信用卡中心/小红书/vivo等)
- HyperLynx(八)带状线串扰的仿真
- python plt画图_【Python】 【绘图】plt.figure()的使用
- JEECG容器化部署
- 云和恩墨亮相CNCC 2020,zCloud打造国产时代数据库管理中台