Re: [問題] 請問如何對"背景程式" 下按鍵指令?
最後選擇用C#來撰寫,不過程式一直沒有出現我要的效果
目前測試用的流程為:
取得前景視窗之handle
-> 開啟timer
-> 定時對指定的視窗送出模擬按鍵按下數字1的動作
以下為程式碼:
IntPtr hWnd;
private const int WM_KEYDOWN = 0x100;
private const int WM_KEYUP = 0x101;
//定義按鍵按下/放開
private const int VK_F2 = 0x71;
[DllImport("user32.dll")]
private static extern short GetAsyncKeyState(int vKey);
//取得按鍵之狀態
[DllImport("user32.dll")]
private static extern IntPtr GetActiveWindow();
//也試過 IntPtr GetForegroundWindow()
//但一樣沒有要的效果
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(
IntPtr hwnd, int wMsg,
int wParam, IntPtr lParam);
//另外有看過另一種參數是將 IntPtr lParam 寫成 Int lParam
//不過使用起來都沒有效果
private void button2_Click(object sender, EventArgs e)
{
while (GetAsyncKeyState(VK_F2) == 0) ;
timer2.Enabled = true;
hWnd = GetActiveWindow();
}
private void timer2_Tick(object sender, EventArgs e)
{
SendMessage(hWnd, WM_KEYDOWN, 0x31, new IntPtr());
SendMessage(hWnd, WM_KEYUP, 0x31, new IntPtr());
//另有試過將 new IntPtr() 換成 IntPtr.zero
//不過都沒有效果
}
請問我的問題出在哪裡??
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.125.33.178
※ 編輯: jkdncv 來自: 140.125.33.178 (09/01 13:10)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):