c# - sendkeys 以外
WPFアプリケーションのSendKeys.Sendメソッド (2)
SendKeysはSystem.Windows.Forms名前空間の一部であり、Wpfにはこれに相当するメソッドはありません。 WPFでSendKeys.Sendを使用することはできませんが、System.Windows.Formsをプロジェクト参照に追加すれば、 SendKeys.SendWaitメソッドを使用できます。 あなたの唯一の他のオプションはSendInputをPInvokeすることSendInput 。
これらの方法は両方とも現在アクティブなウィンドウにデータを送信することに注意してください。
ブラウザ制御のためにキーストローク(Ctrl + T)を送信しようとしています。 しかし、 SendKeys.Send()
はWPFアプリケーションでエラーを示しました。 私の質問は
1)WPFアプリケーションでこの方法を使用できますか?
2)自動キーストロークの送信に代わる方法はありますか。
ありがとう。
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
}
}
}