Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/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
vb6中的Sendkeys_Vb6_Sendkeys - Fatal编程技术网

vb6中的Sendkeys

vb6中的Sendkeys,vb6,sendkeys,Vb6,Sendkeys,在vb6中,只要在一段时间延迟后按下enter键,我发现的所有示例似乎都不起作用,有什么帮助吗 只是想模拟一次击键。焦点不重要。如果您试图触发事件处理程序,您可以在代码中调用它,而不是发送按键。您可能需要提供更多详细信息。但是,如果您试图向VB6编写的应用程序发送enter键,而该应用程序没有拾取它,通常是因为您没有将表单的KeyPreview属性设置为true。如果没有当前焦点的控件,则会吸收您发送的按键 如果您编写了接收enter键的应用程序。我强烈建议您重构应用程序,以便enter触发的任

在vb6中,只要在一段时间延迟后按下enter键,我发现的所有示例似乎都不起作用,有什么帮助吗


只是想模拟一次击键。焦点不重要。

如果您试图触发事件处理程序,您可以在代码中调用它,而不是发送按键。

您可能需要提供更多详细信息。但是,如果您试图向VB6编写的应用程序发送enter键,而该应用程序没有拾取它,通常是因为您没有将表单的KeyPreview属性设置为true。如果没有当前焦点的控件,则会吸收您发送的按键

如果您编写了接收enter键的应用程序。我强烈建议您重构应用程序,以便enter触发的任何代码都可以通过代码完成。这通常通过将代码移动到两个应用程序都可以访问的区域来实现。这是因为Sendkeys是出了名的非确定性的,会引起很多奇怪的事情

您可以从Win32 API信息中使用keybd_事件
我发现它比SendKeys更可靠。

SendKeys应该永远是最后的选择

问题确实是焦点。您必须在每次发送之前设置焦点


几乎所有的事情都可以通过脚本来完成,那么你想做什么呢?

我制作了一个vb6测试应用程序。1个窗体、1个默认按钮、1个计时器:

Private Sub Command1_Click()
  Debug.Print CStr(Now) + " Command1"
End Sub
Private Sub Timer1_Timer()
    Debug.Print CStr(Now) + " Sendkeys"
    SendKeys "{Enter}"
End Sub
当发送到自身时,它似乎起作用

11/30/2008 6:11:38 PM Sendkeys
11/30/2008 6:11:38 PM Command1
11/30/2008 6:11:43 PM Sendkeys
11/30/2008 6:11:43 PM Command1
11/30/2008 6:11:48 PM Sendkeys
11/30/2008 6:11:48 PM Command1

是否要发送到另一个进程?

您可以尝试我的按键程序,它是。它的语法与SendKeys兼容,但使用keybd_事件API,并内置睡眠功能

Vista上的SendKeys存在一些问题。有关详细信息和解决方案,请参阅Karl Peterson的文章。

如果我想延迟脚本中的某些操作,请执行以下操作:

t = Timer + 5        'Change 5 to a higher number if you need more time to wait
Do While Timer < t
    DoEvents           'This is necessary to prevent freezing 
Loop

SendKeys "{ENTER}"

SendKeys "{ENTER}", True    'This might also work
t=Timer+5'如果您需要更多的等待时间,请将5更改为更大的数字
定时器