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 回答