SendKeys操作系统限制

时间:2018-02-18 23:54:01

标签: vbscript uac sendkeys scada proficy

是否存在与SendKeys vbScript方法相关的操作系统复杂性?我正在从Windows XP计算机上的GE Cimplicity 4项目升级到Windows Server 2012 R2虚拟机上的GE Cimplicity 10项目。

SendKeys方法用于在屏幕开口处更改选项卡焦点。无论使用SendKeys发送什么密钥,脚本现在都无限期冻结。在操作系统更改之前有没有遇到任何SendKeys冻结?

SendKeys “{TAB}”, 1

到目前为止我引用的文档:

http://proscada.ru/cimplicity/bce-lrf/lrfs/sendkeys.statement.htm

https://social.technet.microsoft.com/wiki/contents/articles/5169.vbscript-sendkeys-method.aspx

2 个答案:

答案 0 :(得分:0)

 SendKeys "{TAB}1"

字符串(即文本)必须用引号括起来。

答案 1 :(得分:0)

此问题已缩小为以Windows Vista开头的名为“用户访问控制(UAC)”的较新Microsoft安全功能。需要关闭该功能才能使sendKeys命令与Cimplicity一起正常工作。

对于在Xenmplicity之外的sendKeys性能,sendKeys有一些不同的实现,具体取决于时序和操作系统。要强制sendKeys仅使用一个实现来获得一致的计时(如果一致性是个问题),您可以通过添加以下内容来更新app.config文件以强制执行:

<appSettings>
    <add key="SendKeys" value="SendInput"/>
</appSettings>

参考:

https://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send(v=vs.110).aspx