以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  键盘模拟连续输入  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128183)

--  作者:weibu
--  发布时间:2018/11/30 15:27:00
--  键盘模拟连续输入
Dim r As Row = Tables("表A").Rows(0)
Dim t As String = e.Form.Controls("TextBox1").Text
SetCursorPos (r("x"), r("y")) \'鼠标位置
mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) \'点击
mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
Sendkeys.Send("I Like Foxtable") \'发送按键信息
这段代码我放到按钮CLICK事件中,只是第一次可以模拟输入成功。后面连续点击按钮仅光标过去,但不再模拟键盘输入了;
必须重新启动狐表才可以,但仅是第一次

--  作者:有点甜
--  发布时间:2018/11/30 16:02:00
--  

 

具体实例发上来测试。说明如何测试。

 

 


--  作者:weibu
--  发布时间:2018/11/30 17:06:00
--  

老师图片是操作说明;按1.2.3.4步骤;

想达到的目的是,在狐表文本框输入值点击ENTER;文本框的值会发送到第三方软件文本输入框并触发ENTER键。

最后光标回到狐表的文本框;

问题:

1.文本框值发送不出去,更不能连续发送;

2.  固定值可发送,但点击第二次按钮后,就没反应了

3.发送值到第三方软件后,一定要触发ENTER


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

狐表实例:获取坐标的已经搞定,模拟值我做了两个按钮测试,您看下

 
 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:text.rar

[此贴子已经被作者于2018/11/30 17:07:44编辑过]

--  作者:有点甜
--  发布时间:2018/11/30 18:13:00
--  

1、textbox的valuechanged事件代码删除;

 

2、按钮代码改成这样,我测试没问题

 

Dim r As Row = Tables("表A").Rows(0)
Dim t As String = e.Form.Controls("TextBox1").Text
SetCursorPos (r("x"), r("y")) \'鼠标位置
mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) \'点击
mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
Sendkeys.Sendwait(t & vbcrlf)                     \'如何发送信息后触发enter键

 

3、你测试代码请认真一点啊。


--  作者:weibu
--  发布时间:2018/11/30 19:17:00
--  
好的,老师,感谢感谢
--  作者:weibu
--  发布时间:2018/11/30 19:21:00
--  
老师外部写入完成后,光标再回到狐表文本框的代码没问题吧
老师你点击两次按钮会输入两行数字吗?我的还是就只能输入第一次
[此贴子已经被作者于2018/11/30 19:25:28编辑过]

--  作者:有点蓝
--  发布时间:2018/11/30 20:29:00
--  
Dim r As Row = Tables("表A").Rows(0)
Dim t As String = e.Form.Controls("TextBox1").Text
SetCursorPos (r("x"), r("y")) \'鼠标位置
mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) \'点击
mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
Sendkeys.Sendwait(t & vbcrlf)                     \'如何发送信息后触发enter键
Dim w As Row = Tables("表A").Rows(1)
SetCursorPos (w("x"), w("y")) \'鼠标位置
mouse_event( MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) \'点击
mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
e.Form.Controls("TextBox1").value = Nothing
e.Form.Controls("textbox1").Select()

--  作者:weibu
--  发布时间:2018/11/30 20:41:00
--  
老师按钮可以了,能发在Sendkeys.Sendwait(t & vbcrlf)   加个等待300毫秒再执行下面的代码。
 同样上面的代码为什么放在文本框的valuechanged就不执行;我到文本框输入数字并按回车键,不执行或执行没成功

--  作者:有点蓝
--  发布时间:2018/11/30 20:54:00
--  
……
Sendkeys.Sendwait(t & vbcrlf)  
System.Threading.Thread.Sleep(300)
Dim w As Row = Tables("表A").Rows(1)
……

--  作者:weibu
--  发布时间:2018/11/30 21:09:00
--  
蓝老师,有两个问题:
1.同样的代码为什么放在狐表文本框的valuechanged就不执行?
2.模拟键盘输入多次测试会发现,有时第一位数字会重复或丢失,如何解决?
[此贴子已经被作者于2018/11/30 21:50:43编辑过]