程式目的:利用滑鼠定位到text1.text內容框,把剪切板內容通過模擬鍵盤操作的ctr+v 復制給text1.text內容框,然后切換剪切板內容,然后利用滑鼠定位到text2.text內容框,把剪切板內容通過模擬鍵盤操作的ctr+v 復制給text2.text內容框,然后切換剪切板內容,詭異事情發生了,第二次操作剪切板時候,第一次已經賦值的text1.text內容會被改變為,第二次給剪切板賦值的字串!這是代碼:
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_MOVE = &H1 '移動滑鼠
Private Const MOUSEEVENTF_LEFTDOWN = &H2 '模擬滑鼠左鍵按下
Private Const MOUSEEVENTF_LEFTUP = &H4 '模擬滑鼠左鍵抬起
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Private Type POINTAPI
x As Long
y As Long
End Type
Private Sub Command1_Click()
Clipboard.Clear
Clipboard.SetText "標題"
SetCursorPos 108, 44 rem滑鼠移動到TEXT1.TEXT字符填充地方
REM下面代碼是模擬點擊滑鼠定位,然后模擬CTR+V
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Call keybd_event(17, 0, 0, 0)
Call keybd_event(86, 0, 0, 0)
Call keybd_event(86, 0, 2, 0)
Call keybd_event(17, 0, 2, 0)
REM 請注意下面2句代碼就是出現BUG地方如果不加下面2句。TEXT1.TEXT被成功賦值為第一次剪切板里面字符竄。但是加了后,就變成了第二次剪切板里面字符竄
Clipboard.Clear
Clipboard.SetText "內容"
REM 請注意上面2句代碼就是出現BUG地方
End Sub
Private Sub Form_Load()
End Sub
Private Sub Timer1_Timer()
Dim a As POINTAPI
GetCursorPos a
Label1.Caption = a.x
Label2.Caption = a.y
End Sub
uj5u.com熱心網友回復:
有解,你代碼有問題uj5u.com熱心網友回復:
你在旺旺上聯系過我,我把修改的工程編譯檔案發你離線了uj5u.com熱心網友回復:
在Call keybd_event(17, 0, 2, 0) 下加 DoEvents轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/132466.html
標籤:VB基礎類
