0

contextmenustrip からアプリケーションに文字列を送信したいと思います。たとえば、メモ帳を開き、アプリケーションを開き、タスクバーから通知アイコンをクリックして項目を選択し、現在開いているアプリケーションにテキスト (sendkeys.send) を送信したいとします。

これを行う最良の方法は何ですか?

ありがとう。

編集: %{TAB} を送信するだけで、Windows 8 を除くすべての Windows バージョンで機能し、互換性がなければなりません。

4

3 に答える 3

1

W8 は、Microsoft または自己署名によって認定されていない場合、他のアプリケーションへのキーストロークを許可しません。

于 2013-05-24T08:20:46.687 に答える
0

以下は、アプリケーション (プロセス) をその名前で検索します。アプリケーションが実行中の場合、テキストを受け取ります。ContextMenuStrip のコードを利用するだけです。不足している可能性のあるものがある場合は、お知らせください。

public partial class Form1 : Form
{
    [DllImport("User32")]
    private static extern int SetForegroundWindow(IntPtr hwnd);

    public Form1()
    {
        InitializeComponent();

        Process notepad = Process.GetProcessesByName("notepad").FirstOrDefault();

        if (notepad != null)
        {
            SetForegroundWindow(notepad.MainWindowHandle);
            SendKeys.SendWait("test");
        }

    }

}
于 2013-03-08T17:15:39.920 に答える