現有代碼
PostMessage hwnd, WM_SYSKEYDOWN, 65, 0
已經成功實作了發送Alt+a的操作。
但是由于特殊原因,需要:先按下Alt,再按多個字母/數字,最后彈起ALT。
流程:
Alt按下
延時 50
a按下
延時 50
a彈起
延時 50
1按下
延時 50
1彈起
延時 50
Alt彈起
后臺操作Alt,PostMessage/SendMessage均可
參考帖 http://www.cnblogs.com/hahaqi/archive/2010/08/10/1796444.html
我把引數換了很多了 也試不出來 老蝦救急
uj5u.com熱心網友回復:
http://download.csdn.net/detail/veron_04/1745426uj5u.com熱心網友回復:
這個不能操作外部表單。。。
uj5u.com熱心網友回復:
http://download.csdn.net/detail/veron_04/2813308uj5u.com熱心網友回復:
T_T 最后70分在這個帖子上,最后一點下載分。。。希望下載了能有幫助。。。
uj5u.com熱心網友回復:
Option Explicit
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Const WM_SYSKEYUP = &H105
Private Const WM_SYSKEYDOWN = &H104
Private Sub test()
Dim lngHwnd As Long
lngHwnd = FindWindow(vbNullString, "1.txt - 記事本")
PostMessage lngHwnd, WM_SYSKEYDOWN, &H46, &H3E0001 Or &H20000000 ' 模擬按下 Alt+F
Sleep 100
PostMessage lngHwnd, WM_SYSKEYUP, &H46, &HC03E0001 Or &H20000000 ' 模擬抬起 Alt+F
End Sub
Private Sub Command1_Click()
End Sub
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
Call test
End Sub
uj5u.com熱心網友回復:
上面這個肯定有用,模擬Alt+F的按下和彈起的uj5u.com熱心網友回復:
哥。其實PostMessage 視窗句柄, WM_SYSKEYDOWN, &H46, &H3E0001 Or &H20000000
這一行就實作操作了
下面的sleep沒起到間隔作用。。。
uj5u.com熱心網友回復:
的確是的,希望能對你有所幫助。
uj5u.com熱心網友回復:
哥 莫非 真的有彈起的操作?!?!?!?!?!?!uj5u.com熱心網友回復:
哦 如果有彈起操作 最好了啊 能不能弱弱的問下
&H3E0001 Or &H20000000
這個是什么意思。。。
uj5u.com熱心網友回復:
具體我也說不上來,反正是指定特殊功能按鍵吧。你可以百度一下他的含義。uj5u.com熱心網友回復:
http://topic.csdn.net/u/20101101/14/c6c17f1a-1fd8-4cec-afcf-045265e5f819.htmluj5u.com熱心網友回復:
最后的引數 我用的是0 也可以運行
百度翻了帖子 都說的很含糊 沒有具體的意義
uj5u.com熱心網友回復:
http://download.csdn.net/detail/veron_04/1745426轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/139700.html
標籤:VB基礎類
