我試圖發送按鍵(Ctrl + T)進行瀏覽器控制。但是,SendKeys.Send()
在WPF應用程序中顯示錯誤?我的問題是WPF應用程序中的SendKeys.Send方法
1)我可以在WPF應用程序中使用此方法嗎?
2)有沒有其他的方法來發送自動鍵盤輸入。
謝謝。
我試圖發送按鍵(Ctrl + T)進行瀏覽器控制。但是,SendKeys.Send()
在WPF應用程序中顯示錯誤?我的問題是WPF應用程序中的SendKeys.Send方法
1)我可以在WPF應用程序中使用此方法嗎?
2)有沒有其他的方法來發送自動鍵盤輸入。
謝謝。
SendKeys是System.Windows.Forms命名空間的一部分,在Wpf中沒有等效的方法。您不能使用SendKeys.Send和WPF,但如果將System.Windows.Forms添加到項目引用中,則可以使用SendKeys.SendWait方法。你唯一的選擇是PInvoke SendInput。
請注意,這兩種方法都會將數據發送到當前活動窗口。
感謝您的建議:-) – Adnan 2012-07-20 14:49:19
@YasirAdnan歡迎您致電 – 2012-07-20 14:56:10
我找到了一個blog post,描述了使用InputManager。它允許你模擬WPF中的鍵盤事件。
/// <summary>
/// Sends the specified key.
/// </summary>
/// <param name="key">The key.</param>
public static void Send(Key key)
{
if (Keyboard.PrimaryDevice != null)
{
if (Keyboard.PrimaryDevice.ActiveSource != null)
{
var e = new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 0, key)
{
RoutedEvent = Keyboard.KeyDownEvent
};
InputManager.Current.ProcessInput(e);
// Note: Based on your requirements you may also need to fire events for:
// RoutedEvent = Keyboard.PreviewKeyDownEvent
// RoutedEvent = Keyboard.KeyUpEvent
// RoutedEvent = Keyboard.PreviewKeyUpEvent
}
}
}
什麼是錯誤? – 2012-07-20 03:30:23