我目前在C# 中使用SendKeys.SendWait(text);
,但SendKeys
發送全局密鑰,我必須激活我的應用程序然後發送它。另一個問題是當我在我的鍵盤上鍵入某些內容(在另一個應用程序中)並且SendKeys
函數激活(在我的應用程序中)時,會發生錯誤。如何在我的應用程序中發送鍵盤鍵?
因此,無論我的應用程序處於活動狀態並鍵入了什麼內容,如何向我的應用程序發送消息?
我目前在C# 中使用SendKeys.SendWait(text);
,但SendKeys
發送全局密鑰,我必須激活我的應用程序然後發送它。另一個問題是當我在我的鍵盤上鍵入某些內容(在另一個應用程序中)並且SendKeys
函數激活(在我的應用程序中)時,會發生錯誤。如何在我的應用程序中發送鍵盤鍵?
因此,無論我的應用程序處於活動狀態並鍵入了什麼內容,如何向我的應用程序發送消息?
SendMessage()
做你想做的。你需要像這樣使用它:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
const UInt32 WM_CHAR = 0x0102;
const int VK_Q = 0x51; // taken from http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx
SendMessage(handleToTheInputForm, WM_CHAR, VK_Q, 1);
是的,類似這樣的東西 – TreantBG
您需要將其他應用程序的窗口上獲得handle
,這樣就可以把它集中和可靠地發送你的按鍵給它,
看一看這個教程
是的,我現在這樣做,但即時通訊再次發生錯誤。我不希望我的應用程序依賴於哪個應用程序處於活動狀態...... – TreantBG
這個應用程序的目的是什麼,你能提供一些你已經擁有的相關代碼嗎? –
它是一個bot程序 - 使用webbrowser控件。我想輸入消息併發送。我無法改變輸入表單的值...所以我必須將鍵發送到應用程序。關於你想要的代碼 - 有註解要顯示。我只是使用上面的函數發送密鑰,就是這樣,但我想改變該函數以符合我的要求。 – TreantBG