ブラウザ制御のためにキーストローク(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には同等のメソッドはありません。 WPFでSendKeys.Sendを使用することはできませんが、プロジェクト参照にSystem.Windows.Formsを追加すると、SendKeys.SendWaitメソッドを使用できます。あなたの唯一の他の選択肢は、SendInputをPInvokeすることです。
これらのメソッドの両方が現在アクティブなウィンドウにデータを送信することに注意してください。
あなたのご提案ありがとう:-) – Adnan
@ YasirAdnanあなたを歓迎します –
InputManagerの使用を説明するblog postが見つかりました。 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
}
}
}
エラーは何ですか? –