怎么向非活动窗口发送按键消息? 多谢
如何向非活动窗口发送按键消息?急 谢谢
我想向一个最小化的窗口中发送按键消息
比如 记事本 向其中发送 按键消息 回车
我是这样的
m_hWnd2=FindWindowEx(NULL,NULL, "Notepad ",NULL);
::SendMessage(m_hWnd2,WM_CHAR,13,1);
这样写接收不到消息
另外 如果我想用
::keybd_event( 'A ',0,0,0);
Sleep(1000);
::keybd_event( 'A ',MapVirtualKey( 'A ',0),KEYEVENTF_KEYUP,0);
这段代码 又该怎么写呢?
谢谢
急
------解决方案--------------------
终于帮你搞定了。
小累。 20分,撒也不用说了。
keybd_event()是模拟键盘按键 就相当于你按了下键盘
你觉得会解决这个问题么。NO。所以用不上它。
比如我要处理notepad,也看出了你想处理它。
首先要说的是其实每个程序都有很多窗口的,而FindWindow只能查主窗口,
要获得里面那些控件的窗口,比如菜单,比如你想处理的编辑窗口
就需要用上FindWindowsEx(),它能查一个窗口下的控件窗口。
//记事本的窗口类名是Notepad;寻找这个窗口
m_hWnd2=FindWindow(( "Notepad "),NULL);
//寻找这个窗口下叫窗口类叫Edit的窗口;
m_wnd1=FindWindowEx(m_hWnd2,NULL, "Edit ",NULL);
//向这个窗口发送字符 'a '消息
::SendMessage(m_wnd1,WM_CHAR, 'a ',0);
//关闭记事本
//::SendMessage(m_hWnd2,WM_SYSCOMMAND,SC_CLOSE,0);
//至于发送WM_CLOSE不能结束,我暂时没去研究.
//也许记事本内部把这个消息直接return 0了 就当然不会关闭.
分分分分 结帐.
我想向一个最小化的窗口中发送按键消息
比如 记事本 向其中发送 按键消息 回车
我是这样的
m_hWnd2=FindWindowEx(NULL,NULL, "Notepad ",NULL);
::SendMessage(m_hWnd2,WM_CHAR,13,1);
这样写接收不到消息
另外 如果我想用
::keybd_event( 'A ',0,0,0);
Sleep(1000);
::keybd_event( 'A ',MapVirtualKey( 'A ',0),KEYEVENTF_KEYUP,0);
这段代码 又该怎么写呢?
谢谢
急
------解决方案--------------------
终于帮你搞定了。
小累。 20分,撒也不用说了。
keybd_event()是模拟键盘按键 就相当于你按了下键盘
你觉得会解决这个问题么。NO。所以用不上它。
比如我要处理notepad,也看出了你想处理它。
首先要说的是其实每个程序都有很多窗口的,而FindWindow只能查主窗口,
要获得里面那些控件的窗口,比如菜单,比如你想处理的编辑窗口
就需要用上FindWindowsEx(),它能查一个窗口下的控件窗口。
//记事本的窗口类名是Notepad;寻找这个窗口
m_hWnd2=FindWindow(( "Notepad "),NULL);
//寻找这个窗口下叫窗口类叫Edit的窗口;
m_wnd1=FindWindowEx(m_hWnd2,NULL, "Edit ",NULL);
//向这个窗口发送字符 'a '消息
::SendMessage(m_wnd1,WM_CHAR, 'a ',0);
//关闭记事本
//::SendMessage(m_hWnd2,WM_SYSCOMMAND,SC_CLOSE,0);
//至于发送WM_CLOSE不能结束,我暂时没去研究.
//也许记事本内部把这个消息直接return 0了 就当然不会关闭.
分分分分 结帐.