想做一个后台模拟按键的例子。 查到是用这个API SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); 这个有4个参数,其中第二个参数是按键的宏定义,请问这个参数对应的十六进制数去哪里找? 然后再请稍微解释一下后两个参数的意思吧。。谢谢了
举例说明
------------- C# ------------- 一、API 命名空间 using System.Runtime.InteropServices; 函数原型 [DllImport("user32.dll ", EntryPoint = "SendMessage ")] static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, string lParam); 二、CLT 命名空间 Microsoft.WindowsCE.Forms 函数语法 public static void SendMessage( ref Message m ) 用法示例 Message msg = Message.Create(MsgWin.Hwnd, MsgWindow.WM_CUSTOMMSG, (IntPtr)e.X, (IntPtr)e.Y); MessageWindow.SendMessage(ref msg); ------------- VB ------------- Private Declare Function SendMessage Lib "user32" Alias _ "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal _ wParam As Long, lParam As Any) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, _ ByVal lpWindowName As String _ ) As Long Private Const WM_close = 16 Private Sub Command1_Click() Dim winHwnd As Long Dim lngRetVal As Long winHwnd = FindWindow("IEFrame", vbNullString) Debug.Print winHwnd If winHwnd <> 0 Then RetVal = SendMessage(winHwnd, WM_close, 0&, 0&) Else MsgBox "IE没有运行。" End If End Sub ------------- C++ ----------------- #include "windows.h" int main(int argc, char* argv[]) { HWND hWnd = ::FindWindow(NULL,"QQ2010"); if( hWnd != NULL) { ::SendMessage(hWnd,WM_CLOSE,0,0); } return 0; }