text1.setFocusFor j = 1 To Len(CrtStr)
subKey = CByte(Asc(UCase(Mid(CrtStr, j, 1))))
pressKey (subKey)
Next jtext2=text1该段代码是将一个字符串用模拟键盘输入的方式输入到text1,模拟输入没问题,但text2中却没反应(pressKey函数是用keybd_event做的输出一个字符的函数)如果将text2=text1移到一个Timer控件中执行却能成功,显然VB在模拟输入的循环结束之前执行了最后一行代码,不知哪位高手能指点一下!!!谢谢
subKey = CByte(Asc(UCase(Mid(CrtStr, j, 1))))
pressKey (subKey)
Next jtext2=text1该段代码是将一个字符串用模拟键盘输入的方式输入到text1,模拟输入没问题,但text2中却没反应(pressKey函数是用keybd_event做的输出一个字符的函数)如果将text2=text1移到一个Timer控件中执行却能成功,显然VB在模拟输入的循环结束之前执行了最后一行代码,不知哪位高手能指点一下!!!谢谢
解决方案 »
- VB08 TREEVIEW的问题
- 画面上的控件大小怎么随画面的变化,也随着变化?
- 我刚装上了水晶报表,请问如何把它添加到VB工程菜单里使用呢?
- 如何将一个bitmap类型的数据,转换成流式数据。也就是把图片转换成流。
- 压缩文件问题,在线等!!!!!
- datagrid控件的顽固问题
- 请教如何使用中文语音引擎
- 哪位好心人能告诉我 dbOperate Sql 这个语句的含义啊,我才开始学vb,不明白啊!
- 很简单的问题,可我不会,麻烦各位大侠看看,送分!!!!!!!!!
- (给QQRN)一个简单的修改游戏数据的VB程序
- 关于commondialogbox wait......
- 如何用代码把数据库(SQL server)和DataEnvironment连接起来???
subKey = CByte(Asc(UCase(Mid(CrtStr, j, 1))))
pressKey (subKey)
Next j
doeventstext2=text1
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Function pressKey(ByVal myKey As Byte) '模拟键盘
Select Case myKey
Case 65 To 90
Call keybd_event(myKey, 0, 0, 0)
Call keybd_event(myKey, 0, KEYEVENTF_KEYUP, 0)
Case vbKeySpace
Call keybd_event(vbKeySpace, 0, 0, 0)
Call keybd_event(vbKeySpace, 0, KEYEVENTF_KEYUP, 0)
End Select
End FunctionPrivate Sub Command1_Click()
Dim CrtStr As String
Dim i As Integer
Dim subKey As Byte
i = 1
CrtStr = "adsbsdfsd"
Text1.SetFocus
For i = 1 To Len(CrtStr)
subKey = CByte(Asc(UCase(Mid(CrtStr, i, 1))))
pressKey (subKey)
Next i
Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer()
Text2 = Text1
End Sub
在2000和XP下均这样,98没测