C ++将密钥发送到窗口

时间:2013-11-21 17:44:40

标签: c++ windows

我想创建一个模拟按键或只是将文本写入特定应用程序窗口的程序。 这是我尝试过但它似乎不起作用。

void MainWindow::on_startButton_clicked()
{
    HWND windowname = FindWindow(NULL, L"<mywindowname>");
    SendMessage(windowname, WM_SETTEXT, NULL, (LPARAM)"Window");
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

所以今天我发现SendMessage只发送一个字符(至少它是我问题的解决方案)。因此,对于字符串,我必须对其中的每个字符执行以下操作。

QString string = "Hello";
foreach(QChar c, string){
  SendMessage(windowname, WM_KEYDOWN, (int)c-0x20, 0);
  SendMessage(windowname, WM_CHAR, (int)c-0x20, 0);
  SendMessage(windowname, WM_KEYUP, (int)c-0x20, 0);
}

For more information about this function and deeper details on WM_KEY's etc. click here