gpt4 book ai didi

excel - 从 Excel 连接到 RDP

转载 作者:行者123 更新时间:2023-12-04 21:32:27 25 4
gpt4 key购买 nike

我看到许多论坛都在谈论从 Excel 文件启动远程桌面连接。

我也看到了这段代码,它很好并且有效。

Sub OpenRDP()
Dim MyRDP As Variant

MyLink = "c:\windows\system32\mstsc.exe /v:" & ActiveCell.Value

MyRDP = Shell(MyLink, 1)

End Sub

但是,在我的 Excel 文件中,有一列中有主机地址,旁边是一列密码。

我的问题是:是否可以启动 RDP 并将主机 IP 地址和密码传递给它?如果是,它是如何完成的?

谢谢!

最佳答案

由于您只是通过 shell 调用命令,因此您并没有真正掌握以编程方式启动的应用程序(在本例中为 RDP)。所以你不能做这样的事情:

MyRDP.Password = Range("B2").value

但是,您可以使用 Application.Sendkeys将按键发送到窗口,当您发送命令时,它将盲目地应用于您的光标所在的位置。

假设您的密码存储在同一行,但在列上(相邻的单元格):
Application.SendKeys (ActiveCell.Offset(, 1).Value & "{ENTER}")

发送您的密码和“Enter”键以接受密码。

因为 RDP 需要一点时间才能弹出,所以你不能在调用 shell 命令后就扔掉那行。你必须等待一段时间。 5 秒在我的计算机上运行良好,但你的计算机可能更慢或更快,所以你可能不得不在这里胡思乱想:
Sub OpenRDP()
Dim MyRDP As Variant
Dim MyLink As String

MyLink = "c:\windows\system32\mstsc.exe /v:" & ActiveCell.Value

MyRDP = Shell(MyLink, 1)

'wait five seconds and send password in adjacent cell of same row
Application.Wait (Now() + TimeValue("0:00:5"))
Application.SendKeys (ActiveCell.Offset(, 1).Value & "{ENTER}")

End Sub

我毫不怀疑,通过查询 WMI 以获取正在运行的进程并等待 RDP 弹出来执行发送键,或者寻找一个库以帮助使用代码与 RDP 交互,这可能会复杂大约 10000 倍,但是......对于两行这种方法的代码会让你走得很远。

此外,(因为值得一说)将密码存储在 excel 中并不是非常安全。任何有权访问您的工作簿的人都可以访问您的远程桌面。即使工作簿受密码保护,也可以通过按一下按钮来破解。

关于excel - 从 Excel 连接到 RDP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48542666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com