如何使用SendMessage和WM_KEYDOWN向其他窗口发送按键?
我的C#代码如下:
查找打开的记事本,然后向里面写入“A A”
IntPtr hwnd = FindWindow(null, "无标题 - 记事本");
IntPtr htextbox = FindWindowEx(hwnd, IntPtr.Zero, "EDIT", null);
// SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0);//关闭记事本
SendMessage(htextbox, WM_CHAR, 65, 0); //输入A
SendMessage(htextbox, WM_KEYDOWN, VK_SPACE, 0);//实现空格
SendMessage(htextbox, WM_CHAR, 65, 0); //输入A可以输入两个A,但是两个A中间的空格就是出不来WM_KEYDOWN和UP就没有用成功过,真是郁闷。
我的C#代码如下:
查找打开的记事本,然后向里面写入“A A”
IntPtr hwnd = FindWindow(null, "无标题 - 记事本");
IntPtr htextbox = FindWindowEx(hwnd, IntPtr.Zero, "EDIT", null);
// SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0);//关闭记事本
SendMessage(htextbox, WM_CHAR, 65, 0); //输入A
SendMessage(htextbox, WM_KEYDOWN, VK_SPACE, 0);//实现空格
SendMessage(htextbox, WM_CHAR, 65, 0); //输入A可以输入两个A,但是两个A中间的空格就是出不来WM_KEYDOWN和UP就没有用成功过,真是郁闷。
SendMessage(htextbox, WM_KEYDOWN, VK_SPACE, 0);//实现空格
SendMessage(htextbox, WM_KEYUP, VK_SPACE, 0);//实现空格
SendMessage(htextbox, WM_KEYDOWN, VK_SPACE, 0);//实现空格
SendMessage(htextbox, WM_CHAR, 65, 0); //输入A还是没有空格出现,请高手指教
谢谢。其实我的本意不是要打出空格,而是想知道keyup keydown这种方式怎么用。因为我想模拟键盘发出ctrl+A之类的键盘消息。
有没有其他方式能够实现发组合键给后台运行的程序的控件的?比如ctrl+A.注意,是后台运行的,不是放到前台,然后再发。请大侠指点迷津,谢谢谢谢