1

ねえ、フォーカス ウィンドウ (フォアグラウンド ウィンドウ) にする必要なく、メモ帳にメッセージを入力しようとしています。

これは私がこれまでに持っているものです:

    const UInt32 WM_KEYDOWN = 0x0100;
    const int VK_F5 = 0x74;

    [DllImport("user32.dll")]
    static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);
    [STAThread]

    private void button2_Click(object sender, EventArgs e)
    {
            Process[] processes = Process.GetProcessesByName("Notepad");

            foreach (Process proc in processes)
                PostMessage(proc.MainWindowHandle, VK_TAB, VK_S, 0);

    }

しかし、これは S をメモ帳に入力しません。VK_F5 を使用すると日付/時刻が表示され、ヘルプ ウィンドウを表示する VK_F1 を使用すると s と入力されません。

SendKey を使用することを考えましたが、メモ帳をターゲットにする必要があります。

どんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

1

VK_F5 を使用したときに日付が挿入された場合は、メッセージ送信手順が機能していることを意味します。

問題はメッセージの送信先です。メッセージをメモ帳のウィンドウ ハンドルに送信しています。

キーをテキスト領域に書き込む場合は、メモ帳アプリケーションのテキスト領域コントロールのハンドルを取得し、それにメッセージを送信する必要があります

于 2010-08-19T03:04:00.967 に答える