我正在尝试找出如何让我的C#应用程序向另一个窗口发送按键,而无需将其聚焦。我有一个单词列表和3个记事本文件。想象一下,我按顺序打开了所有3个记事本窗口,并且我的程序会在列表框中取出第一个单词并将其写入第一个记事本窗口中。第二个单词在第二个记事本窗口中,第三个单词在第三个记事本窗口中。然后重新开始并继续。所以我希望它每次只在每个窗口中发布一个单词并像这样不断进行。但是我只知道如何在有一个活动窗口的情况下使用一个记事本窗口完成此操作。
这将要求我首先聚焦在记事本窗口上,启动计时器,并保持对记事本窗口的关注。然后它将循环遍历列表并输入单词(每行一个)。而且它很好用。但我想在3个窗口上执行此操作。
int i = 0;
i = listBox1.SelectedIndex;
i = i + 1;
if (i > listBox1.Items.Count - 1)
i = 0;
listBox1.SelectedIndex = i;
string message = listBox1.SelectedItem.ToString();
SendKeys.Send(message);
SendKeys.Send("{ENTER}");
这将要求我首先聚焦在记事本窗口上,启动计时器,并保持对记事本窗口的关注。然后它将循环遍历列表并输入单词(每行一个)。而且它很好用。但我想在3个窗口上执行此操作。
然后我需要以某种方式获取窗口标题,而不是进程名称。 我会有3个名为Notepad的进程。 但是如果它们被命名为Note1,Note2,Note3,我该怎么办呢?
我需要帮助制作一些程序列表:
listofprograms = ["Note1", "Note2", "Note3"];
它会找到打开了这些名称的应用程序窗口,然后以某种方式将文本写入这些窗口。
有人能帮我吗?到目前为止还没有找到相关信息,相信我我已经搜索过了!
SendMessage
和PostMessage
来发送按键。 - JaredPar