Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AutoIT ControlSend修饰符不一致_Autoit - Fatal编程技术网

AutoIT ControlSend修饰符不一致

AutoIT ControlSend修饰符不一致,autoit,Autoit,我在Windows7上的AutoIT的ControlSend功能遇到了一个奇怪的问题,所以我希望有人能帮我 我编写了FUSE文件系统,它通过Samba与Windows共享。我正在尝试在Windows上使用AutoIT在文件系统上编写和修改具有各种不同应用程序的文件,从而实现文件系统测试的自动化 当我第一次启动测试时,我正在使用“Send”方法发送击键,但我发现其他应用程序偶尔会窃取焦点,我的测试会累坏。我希望使用ControlSend可以让我的测试继续进行,即使焦点被盗。我遇到的问题是,有时修改

我在Windows7上的AutoIT的ControlSend功能遇到了一个奇怪的问题,所以我希望有人能帮我

我编写了FUSE文件系统,它通过Samba与Windows共享。我正在尝试在Windows上使用AutoIT在文件系统上编写和修改具有各种不同应用程序的文件,从而实现文件系统测试的自动化

当我第一次启动测试时,我正在使用“Send”方法发送击键,但我发现其他应用程序偶尔会窃取焦点,我的测试会累坏。我希望使用ControlSend可以让我的测试继续进行,即使焦点被盗。我遇到的问题是,有时修改键(如Shift和Control)没有按应有的方式发送

例如,如果我使用

ControlSend("Open", "", "Edit1", "Z:\test.txt")
为了在一个打开的对话框中设置路径,我偶尔会看到文本显示为“z;| test.txt”,显然是将shift键颠倒了几个字符

在另一种情况下,如果我

ControlSend($hWnd, "", "Edit1",  "^o")
要将“Ctrl+o”发送到记事本窗口,我偶尔会发现,它没有打开“打开”对话框,而是在记事本文本字段中键入字母“o”

我需要能够设置这些脚本,并让它们在不受监控的情况下连续运行,因此,偶尔让它输入显式不是它应该发送的字符会使它成为一个不可行的解决方案


我能做些什么使发送正确的字符和正确的修改器更加一致吗?

根据我的经验,AutoIt有时会弄乱发送键,但只有在它们一个接一个地快速发送的情况下

ControlSend函数在您希望它发送的字符串后面有一个标志,它使AutoIt可以发送原始或非原始密钥

ControlSend(“标题”、“文本”、控制ID、“字符串”[,标志=0])

标志更改“键”的处理方式:

0=(默认)文本包含特殊字符,如+表示移位,{LEFT}表示左箭头

1=原始发送密钥

对于Ctrl.+o问题,请尝试如下所示:

ControlSend ( "title", "", 0, "^{o}")

希望这有帮助:)

是说设置flag=1可以防止我间歇性看到的案例错误吗?随机的大小写变化似乎并不围绕特殊字符,它们只是在我的文本中大小写变化时出现。我将尝试看看
^{0}
是否比
^0
更好。虽然晚了一点,但我遇到了同样的问题,最终找到了解决方案。我写在这里: