C++ C++;向窗口发送钥匙

C++ C++;向窗口发送钥匙,c++,windows,C++,Windows,我想创建一个程序,模拟按键或只是写一个文本到一个特定的应用程序窗口。 这是我尝试过的,但似乎不起作用 void MainWindow::on_startButton_clicked() { HWND windowname = FindWindow(NULL, L"<mywindowname>"); SendMessage(windowname, WM_SETTEXT, NULL, (LPARAM)"Window"); } void主窗口::启动按钮时单击() { H

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

void MainWindow::on_startButton_clicked()
{
    HWND windowname = FindWindow(NULL, L"<mywindowname>");
    SendMessage(windowname, WM_SETTEXT, NULL, (LPARAM)"Window");
}
void主窗口::启动按钮时单击()
{
HWND windowname=FindWindow(NULL,L“”);
SendMessage(windowname,WM_SETTEXT,NULL,(LPARAM)“Window”);
}

有什么想法吗?

所以我今天发现
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);
}

您可能希望该文本是一个宽字符串,但除非这是您自己的窗口,否则最好使用
SetWindowText
@chris这会更改窗口标题吗?因为那不是我想要的want@Davlog:
WM_SETTEXT
基本相同。。。如果你想模拟按键,你必须使用
SendInput
或单个
WM\u KEYDOWN
/
WM\u keydup
(但是如果应用程序绕过正常的按键消息来获取输入,它们将不起作用)。请参阅我的答案,它可以很容易地转换为c++: