我正在尝试将某些数据更新为SharePoint文档,在本地环境中尝试此操作时,我不会遇到任何问题。
但是当我尝试在虚拟桌面上做同样的事情时,我无法做到。我正在使用Windows Alert来键入用户名&密码。我尝试过在这种情况下使用“SendKeys”,但这没有用。
....
SendKeys "abc\ATX123",5
SendKeys "Password1",5
SendKeys "{ENTER}",5
....
这段代码只是传递'ENTER'而没有输入ID& PWD。有人可以建议我一些可能的解决方案吗?
答案 0 :(得分:4)
最后,我找到了一种方法来实现这个要求,,,,,比特间接,但这是我在最后找到的唯一方法。
我所做的很简单 - 只创建了一个Windows脚本文件' Logon.vbs'处理该弹出屏幕并在VBA中调用vbs。
如果您正在寻找类似的内容,请参阅下面的示例:
Windows脚本:
'Creating an script object
Set oWSH = WScript.CreateObject("WScript.Shell")
'Activating alert screen
oWSH.AppActivate ("Windows Security")
'Passing the value UserName/UserID
oWSH.SendKeys "USERNAME" 'ensure to complete the username with apropriate domain e.g., abc/A123456
'Changing the focus to password textbox
oWSH.SendKeys "{TAB}"
'Passing the value password
oWSH.SendKeys "PASSWORD"
'Clicking enter to complete the screen
oWSH.SendKeys "{ENTER}"
'Releasing the script object
Set oWSH = Nothing
调用VBS脚本的VBA代码 - Logon.vbs:
Shell "WScript C:\Users\ABC\Desktop\Logon.vbs", vbNormalFocus
答案 1 :(得分:0)
首先,您需要SendKeys "yourString", Boolean
。据我所知,SendKeys
命令需要True
或False
作为第二个输入。
你也可以尝试从一个字段到另一个字段“tabbing”:
SendKeys "abc\ATX123", True
SendKeys "{TAB}", True
SendKeys "Password1", True
SendKeys "{ENTER}", True
如果第一个没有得到写,可能重点是用户形式的另一个组件。尝试使用“tabbing”查看“Username”文本框是否在UserForm出现时激活。如果不是,你也可以尝试设置一些焦点