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相关推荐

  1. mac远程桌面Microsoft Remote Desktop for Mac的安装与使用

    mac远程桌面Microsoft Remote Desktop for Mac的安装与使用 学习了:https://blog.csdn.net/ytangdigl/article/details/78 ...

  2. 远程桌面连接(Remote Desktop Manager)

    远程桌面连接软件Remote Desktop Manager 特色: 带有系统管理界面,保存远程桌面连接信息,复制数据都很方便! 另外,登录信息记录等一系列方便用户的功能点. (好不好用,你试试,保管 ...

  3. mac远程桌面Microsoft Remote Desktop for Mac - Mac-连接Windows远程桌面

    好记星不如烂笔头,这里记录平时工作中用到的东西,不喜可以留言. 1:在mac电脑远程桌面可以使用,Microsoft 远程桌面     使用 Microsoft Remote Desktop 这个还是 ...

  4. MAC下连接Windows的远程桌面Microsoft Remote Desktop

    在MAC下搞开发,偶尔要远程一些windows机器帮忙解决问题,大部分用向日葵,teamviewer就可以了.但是遇到了需要连接windows远程桌面的怎么处理呢?我试了下MAC自带的远程桌面软件,据 ...

  5. 使用外网访问Microsoft 远程桌面(Microsoft Remote Desktop),实现对电脑的远程操控

    就在昨天博主发现有一款微软官方的APP可以实现在手机上远程操控电脑,抱着玩一玩心态下下来,使用之后发现不愧是官方应用,远程操作起来流畅度很高,如果用局域网的话甚至都没有感到卡顿,但是这样终究只能在家里 ...

  6. MAC远程连接Windows的远程桌面Microsoft Remote Desktop工具下载

    MAC Book Pro进行开发,需要连接远程的windows或堡垒机,目前没找到很好的工具,而微软提供了一套Microsoft Remote Desktop可以进行远程连接,使用起来还算方便. 基本 ...

  7. 通过WMIC命令远程打开远程计算机的远程桌面(Remote Desktop)功能

    虽然标题有点拗口,不过这个命令确实挺有用的. 往往辛辛苦苦装了一台Server,回到家里本想远程桌面爽一下,却忘了打开远程的功能,这时这条命令就有用了. 昨天在一台Server上用了招行的网上银行专业 ...

  8. 超好用的windows远程桌面管理工具Remote Desktop Connection Manager

    Remote Desktop Connection Manager Remote Desktop Connection Manager (RDCMan) 是微软Windows Live体验团队的主要开 ...

  9. Windows远程桌面的使用(Remote Desktop Connection)

    Remote Desktop Connection是Windows自带的一款远程登录附件,非常简单易用. 1.打开的Remote Desktop Connection 输入对方IP地址,点击conne ...

最新文章

  1. html按钮按下效果_CSS+HTMLlt;水滴按钮效果gt;
  2. Android 仿王者荣耀广告弹窗,android仿王者荣耀对战资料之能力图
  3. Leetcode--84. 柱状图中最大的矩形
  4. 服务实体经济、战略级行业再下一城,钉钉发布制造行业解决方案2.0
  5. android开发隐藏软键盘,Android开发之完全隐藏软键盘的方法
  6. 静态和动态web的区别与联系
  7. c++中计算2得n次方_PLC-上海会通松下PLC中的数据类型有哪些?
  8. C语言中字符串的处理方式(一)
  9. linux shell编程小程序6,shell脚本应用小程序
  10. CompositeUI Demo BankBranchWorkbench
  11. js高级学习笔记(b站尚硅谷)-5-回调函数
  12. 最新的省市区三级地区MySQL数据库,附带获取方法
  13. Java将UTC格式时间转换为北京时间
  14. Unity 3D 入门小游戏 小球酷跑(上)
  15. oracle+rac+ogg部署,RAC环境下配置OGG同步
  16. 数据分析/大数据研发面经笔经(阿里/腾讯/网易/招行信用卡中心/小红书/vivo等)
  17. HyperLynx(八)带状线串扰的仿真
  18. python plt画图_【Python】 【绘图】plt.figure()的使用
  19. JEECG容器化部署
  20. 云和恩墨亮相CNCC 2020,zCloud打造国产时代数据库管理中台

热门文章

  1. Linux/ubuntu深度学习,查看cuda、cudnn、显卡、驱动的版本的命令
  2. tabindex的微妙使用
  3. 浅析编程及类的本质、类的抽象
  4. 免费小程序源码分享 博客
  5. 关于自动布局(Autolayout)
  6. 历史上康熙皇帝真的很喜欢微服私访吗?
  7. 智慧图书馆中的自助借还系统
  8. 管理规划:目标是什么?
  9. 玩一玩Android下载框架
  10. 基于MFC的五子棋设计与实现