バックグラウンド アプリケーションへのキーの送信: 総合ガイド
特定のキー (例: "k") を別のアプリケーションに送信するタスクメモ帳などを使用するには、.NET でのプロセス処理についての深い理解が必要です。この問題とその考えられる解決策を詳しく見てみましょう。
別のアプリケーションにキーを送信するには、アプリケーションがフォアグラウンドにある必要があります。指定されたコードでは、このステップは SetForegroundWindow を使用して試行されています。ただし、実装にはさらなる改良が必要な場合があります。
キーを送信する前にメモ帳が実際にアクティブなウィンドウであることを確認するには、次の手順を実行する必要があります。
コードの拡張バージョンは次のとおりです。
[DllImport("User32.dll")] static extern int SetForegroundWindow(IntPtr point); Process p = Process.GetProcessesByName("notepad").FirstOrDefault(); if (p != null) { IntPtr h = p.MainWindowHandle; SetForegroundWindow(h); SendKeys.SendWait("k"); }
メモ帳がまだ実行されていない場合は、メモ帳を起動して準備が完了するまで待つ必要があります。 key:
Process p = Process.Start("notepad.exe"); p.WaitForInputIdle(); IntPtr h = p.MainWindowHandle; SetForegroundWindow(h); SendKeys.SendWait("k");
メモ帳が昇格された特権で起動された場合 (例:管理者) であり、アプリケーションがそうでない場合、SetForegroundWindow 呼び出しが正しく動作しない可能性があります。このような場合は、別の方法を検討するか、アプリケーションの権限をそれに応じて調整してください。
以上が.NET のバックグラウンド アプリケーションにキーを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。