这个矛盾是我自己引起的~`
我在一段代码里用到WM_COPYDATA,所以必须用到SendMessage.
但是在SendMessage发送WM_COPYDATA之前,我要模拟按键盘,若用keybd_event和PostMessage
均不能正确执行,因为它们发生在SendMessage之后,
而用SendMessage又不能产生模拟按键(是不是不能用SendMessage模拟按键)~~
(以上均进行了测试)
难道一定要用到 钩子吗?或者有什么代替的 比如 用什么来代替WM_COPYDATA
谢谢~~~~~
我在一段代码里用到WM_COPYDATA,所以必须用到SendMessage.
但是在SendMessage发送WM_COPYDATA之前,我要模拟按键盘,若用keybd_event和PostMessage
均不能正确执行,因为它们发生在SendMessage之后,
而用SendMessage又不能产生模拟按键(是不是不能用SendMessage模拟按键)~~
(以上均进行了测试)
难道一定要用到 钩子吗?或者有什么代替的 比如 用什么来代替WM_COPYDATA
谢谢~~~~~
解决方案 »
- vc+sql server应用程序,最开始DSN 的选择
- 请问计算机声卡还有喇叭,会不会产生次声波
- 在VC里面建立了一个对话框应用程序,上面有一个文件框,在文本框里一回车整个程序就结束了
- 怎么创建一个基于CdialogBar的对话框,并在上面创建一个真彩工具栏。
- 做了个向导,其“下一步”按钮需要根据用户在CEdit中输入的文件名是否有效激活或禁止,.net或API有判断文件名是否有效的函数吗?
- VC++ tabControl 中动态添加删除选项卡 浏览器标签
- 关与Import "MSChrt20.ocx"的问题
- 一个关于终止线程的问题,请帮帮忙
- 用vc6实现网络中两台机器的通讯,用什么控件?-菜鸟问
- 请问那里能下载到《Programming Windows》by Charles Petzold.
- ●:求一个可以自动记录编译次数的VC插件 ●●●●●
- 为什么下载的工作空间总是打不开???
keybd_event不是通过发送消息实现的吗?
::keybd_event( VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0);//用POSTMESSAGE产生一样的效果
COPYDATASTRUCT cmdMsg;
.........
::SendMessage( adsw_acadMainWnd(),
WM_COPYDATA,
(WPARAM)adsw_acadMainWnd(),
(LPARAM)&cmdMsg);
以上程序执行的顺序不是先执行ESC,而是先发送WM_COPYDATA再执行ESC
但是我的目的是先执行ESC 再发送WM_COPYDATA于是我采用以下代码,但是不却响应ESC键了
::SendMessage( adsw_acadMainWnd(),
WM_KEYDOWN,
VK_ESCAPE,
0x001c0001);
::SendMessage( adsw_acadMainWnd(),
WM_KEYUP,
VK_ESCAPE,
0xc01c0001);
COPYDATASTRUCT cmdMsg;
....
::SendMessage( adsw_acadMainWnd(),
WM_COPYDATA,
(WPARAM)adsw_acadMainWnd(),
(LPARAM)&cmdMsg);
迷惑中...
那你在keybd_event发生了作用之后再SendMessage不行吗,例如在监测到WM_KEYDOW消息后?
-------------------------------------------------------------------------------
我也想这样,但是接收按键消息的窗口 不是我本身程序里的窗口,它是CAD的窗口,所以我才在这里发愁~~
而在keybd_event之后等待该标志为true的时候再sendmessage WM_COPYDATA,然后将哪个标志reset
MSDN:
This message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed.
---is posted
我看了一下,键盘消息等应该是发送到程序的post消息队列的,使用sendmessage只能将消息放到发送消息队列,那么THREAD就取不到消息了
是这样吗?
WM_KEYDOWN是使用postmessage的
MSDN:
This message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed.
---is posted--------------------------------------------------------------------------------------MSDN 上写着用POSTED 的消息 是不是就不能用 sendmessage 了?