作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 sendkeys,但将它发送到一个非焦点程序。例如,我想使用 sendkeys 到 Notepad - Untitled,但它没有被聚焦。抱歉,如果不清楚,我会详细说明。我当前的代码是这样的:
string txt = Regex.Replace(richTextBox3.Text, "[+^%~()]", "{$0}");
System.Threading.Thread.Sleep(1000);
SendKeys.Send(txt + "{ENTER}");
如果我使用 SendMessage,有人愿意给我举个例子说明我应该做什么吗?我没有发现我在网上找到的任何内容对我的问题非常有用。
最佳答案
以下代码是我从 previous SO answer 中找到的. PostMessage API 会将 Windows 消息发送到特定的 Windows 句柄。下面的代码将导致 Internet Explorer 的所有实例都触发按键按下事件,而不提供焦点,模拟按下 F5 键。可以找到附加键码列表 here .
static class Program
{
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]
static void Main()
{
while(true)
{
Process [] processes = Process.GetProcessesByName("iexplore");
foreach(Process proc in processes)
PostMessage(proc.MainWindowHandle, WM_KEYDOWN, VK_F5, 0);
Thread.Sleep(5000);
}
}
}
关于c# - SendKeys 到一个特定的程序而不是焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42498440/
我是一名优秀的程序员,十分优秀!