具体情况为:
程序中有2个函数:SendMessage()和keybd_event(),将消息和键盘事件传给1个窗口.在delphi里编译运行没有任何问题,事件都传过去了.
不关闭,注意是不关闭delphi,直接点击编译好的exe文件,这2个事件都没有任何反应.不知道是什么原因.
整个过程中:环境没有改变,还是在本机,delphi也没有关闭.唯一的区别就是一个是delphi编译执行的,一个是直接运行exe
程序中有2个函数:SendMessage()和keybd_event(),将消息和键盘事件传给1个窗口.在delphi里编译运行没有任何问题,事件都传过去了.
不关闭,注意是不关闭delphi,直接点击编译好的exe文件,这2个事件都没有任何反应.不知道是什么原因.
整个过程中:环境没有改变,还是在本机,delphi也没有关闭.唯一的区别就是一个是delphi编译执行的,一个是直接运行exe
解决方案 »
- 查询语句
- 点关闭按钮,窗体缩小到系统托盘区域,任务栏不显示?
- 用tcpclient连接服务端时,想先检查一下服务端ip地址和端口的连通性,用什么函数可以快速检查?
- 字段比较
- 关天任务栏的右右菜单问题。
- 救急!
- 小弟有个问题,希望大家指点,先谢谢大家了!!急!!!
- 请问在delphi6上使用opengl的glut库的问题
- 那个函数能调用chm帮组文件亚?
- 问在DELPHI中协FLOAT变量怎么用阿! VER AA:FLOAT; 这样用为什么不行?
- 我的程序是基于sql server的,但我现在也要通过网络操作一个Oracle数据库,该怎么做?
- bigben2008(ben) 请进接分谢谢了,50分。
真是没有遇到哦http://lysoft.7u7.net
用个LISTBOX把一些信息显示出来,分析那里出了问题。
换其它的方式试试,或不用getmem而用AllocMem
以前碰到的一个问题有点像你的
Var
hw:thandle;
begin
hw:=FindWindow(nil,'1.txt - 记事本');
if hw = 0 then
begin
showmessage('记事本没有打开!');
Exit;
end;
SendMessage(hw, WM_SYSCOMMAND, SC_HOTKEY, hw);
keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), 0, 0);
keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), KEYEVENTF_KEYUP,0);
end;
建议关掉DELPHI,或者重新启动WINDOWS试试!
要是还不行,我也实在想不出来了!
1。怎样做才能实现这个功能?
2。为什么在delphi里编译有反应,能够发一个A过去?
然后再找它的句柄
好象用FindwosA得
//你自己的窗口才拥有输入焦点
keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), 0, 0); //记事本当然不能响应按键
需要在发送消息之前先让所有的窗口失去输入焦点,或者将记事本窗口置为最前面的窗口。
SendMessage(hw, WM_SYSCOMMAND, SC_HOTKEY, hw); //编译运行时可以将记事本设为最前窗口的