pywinauto 自动进行远程桌面登陆 remote desktop connection

这篇具有很好参考价值的文章主要介绍了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
pywinauto 登录 remote desktop connection,开发工具,ui,pywinauto,远程桌面连接,自动化,办公

spy 辅助

如果电脑没有,这个需要安装。
操作步骤:

  • 打开spy
  • ctrl +f
  • drag
    pywinauto 登录 remote desktop connection,开发工具,ui,pywinauto,远程桌面连接,自动化,办公

pywinauto 登录 remote desktop connection,开发工具,ui,pywinauto,远程桌面连接,自动化,办公pywinauto 登录 remote desktop connection,开发工具,ui,pywinauto,远程桌面连接,自动化,办公
pywinauto 登录 remote desktop connection,开发工具,ui,pywinauto,远程桌面连接,自动化,办公如上图所示,有的定位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’)文章来源地址https://www.toymoban.com/news/detail-629637.html

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的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Microsoft Remote Desktop For Mac在Mac上远程Windows桌面】

    使用一些网络远程软件,例如向日*、TOdes*、TV等等,都需要两端(客户端、服务端)安装,而windows的mstsc是不需要安装的,只需要客户端有就可以了。但是Mac OS没有mstsc客户端,找了好久才找到,最主要是免费(穷)! 老规矩,废话不多说,先上链接。 Microsoft Remote Desktop F

    2024年02月08日
    浏览(42)
  • Mac远程Win桌面官方工具——Microsoft Remote Desktop for mac

    微软官方专门为Mac用户提供了一款类Windows mstsc的远程桌面工具——Microsoft Remote Desktop for mac,专门用于远程控制Windows桌面。 但是。苹果Appstore中国区无法搜索到该软件(不知道什么原因)。 基本上,大部分使用Microsoft Remote Desktop for mac的朋友,都是从第三方网站下载,其实,

    2024年02月11日
    浏览(43)
  • MacBook远程桌面Windows使用Microsoft Remote Desktop for Mac_亲测使用

    MacBook远程桌面Windows使用Microsoft Remote Desktop for Mac_亲测使用 像Windows上有自带的远程桌面连接软件.MacBook没有自带的远程连接Windows桌面的工具,需要安装软件来实现. 像远程桌面控制软件一般有 TeamViewer、向日葵远程控制, ToDesk, Microsoft Remote Desktop for Mac等远程桌面工具等这些,还可

    2024年02月05日
    浏览(42)
  • 代理Windows台式机支持Remote Desktop外网远程桌面连接, 随时玩转Stable Diffusion WebUI

    zhaoolee在家中Windows台式机折腾Stable Diffusion WebUI , 为了出门在外也能访问Windows台式机的Stable Diffusion WebUI, 本文用树莓派代理台式机的3389端口,将其映射到公网上(以下是Stable Diffusion WebUI出的图,原图在文末)。 通过上面两张图,我们可获取后续登录会用到的电脑名称和用户名

    2024年02月10日
    浏览(62)
  • Microsoft Remote Desktop for Mac(微软远程连接工具)

    Microsoft Remote Desktop for Mac是一款Mac OS平台上的远程桌面控制软件,你可以通过Microsoft Remote Desktop for mac来控制Windows或者Mac OS设备完成你的工作。

    2024年02月11日
    浏览(48)
  • Microsoft Remote Desktop中文汉化远程连接其他计算机方法

    Microsoft Remote Desktop是一款由微软公司推出的远程桌面连接工具,它可以让用户通过互联网远程连接到其他计算机,并在远程计算机上访问本地文件、应用程序和网络资源。 要使用Microsoft Remote Desktop远程连接其他计算机,请按照以下步骤操作: 在Windows 10中,打开“开始”菜单

    2024年02月15日
    浏览(49)
  • Microsoft Remote Desktop for Mac 中文正式版下载 微软远程连接软件

    Microsoft Remote Desktop 是一款专为 Mac 用户设计的远程桌面工具,它可以帮助用户通过网络连接到其他计算机,实现远程控制和操作。 软件下载:Microsoft Remote Desktop for Mac 中文正式版下载 该工具支持多种远程连接协议,包括 RDP、VNC、SSH 等,可以实现跨平台连接,支持 Windows、

    2024年01月17日
    浏览(63)
  • 跨平台兼容,无限可能:Apple Remote Desktop for Mac让远程控制更简单

    Apple Remote Desktop for Mac是一款远程桌面管理软件,提供了一系列强大的功能,让用户可以轻松地管理和控制远程计算机。以下是该软件的一些主要功能和特点: 实时远程访问和控制:使用Apple Remote Desktop,用户可以在任何地方实时访问和控制远程计算机的桌面。这使得技术支持

    2024年01月19日
    浏览(72)
  • 【连接】mac使用Microsoft Remote Desktop Beta 远程win Error code: 0x104

    Microsoft Remote Desktop Beta 变为 Microsoft_Remote_Desktop_10.1.8_installer 原因 We couldn’t connect to the remote PC because the license for this device isn’t valid. Contact your network administrator for assistance. Microsoft Remote Desktop Beta连接失败 连接失败 Error code: 0x104 22.5.9连接成功 172.31.139.189 链接: https://pan.baidu.

    2024年02月12日
    浏览(39)
  • ubuntu20.04 desktop 远程桌面配置记录【亲测好用vnc、vino】

    ubuntu系统下有好几种不同方式的远程桌面方式,本人都使用过,以下是一些使用总结: vnc4server:其中vnc4server对gnome桌面支持不好 vino:系统自带,但需要用户登录一次后才能远程,并且需要安装显示器 tigervnc:俩个字 “ 好用 ”,gnome远程支持很完美 这里介绍一下tigervnc,虽

    2024年04月14日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包