社区
Windows SDK/API
帖子详情
一个很奇怪的问题,在Delphi里编译可运行的程序不能直接用EXE运行
talkfalse
2004-10-20 09:57:27
具体情况为:
程序中有2个函数:SendMessage()和keybd_event(),将消息和键盘事件传给1个窗口.在delphi里编译运行没有任何问题,事件都传过去了.
不关闭,注意是不关闭delphi,直接点击编译好的exe文件,这2个事件都没有任何反应.不知道是什么原因.
整个过程中:环境没有改变,还是在本机,delphi也没有关闭.唯一的区别就是一个是delphi编译执行的,一个是直接运行exe
...全文
277
20
打赏
收藏
一个很奇怪的问题,在Delphi里编译可运行的程序不能直接用EXE运行
具体情况为: 程序中有2个函数:SendMessage()和keybd_event(),将消息和键盘事件传给1个窗口.在delphi里编译运行没有任何问题,事件都传过去了. 不关闭,注意是不关闭delphi,直接点击编译好的exe文件,这2个事件都没有任何反应.不知道是什么原因. 整个过程中:环境没有改变,还是在本机,delphi也没有关闭.唯一的区别就是一个是delphi编译执行的,一个是直接运行exe
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
talkfalse
2004-10-25
打赏
举报
回复
怎么做才能让记事本窗口设为最前窗口
SendMessage(hw, WM_SYSCOMMAND, SC_HOTKEY, hw); //编译运行时可以将记事本设为最前窗口的
lw549
2004-10-25
打赏
举报
回复
哈哈,我晕了
NewStarSE
2004-10-24
打赏
举报
回复
SendMessage(hw, WM_SYSCOMMAND, SC_HOTKEY, hw); //这个样子并没有使记事本成为输入窗口。
//你自己的窗口才拥有输入焦点
keybd_event(Ord('A'), MapVirtualKey(Ord('A'), 0), 0, 0); //记事本当然不能响应按键
需要在发送消息之前先让所有的窗口失去输入焦点,或者将记事本窗口置为最前面的窗口。
hsmserver
2004-10-24
打赏
举报
回复
你用SPY查一下类名
然后再找它的句柄
好象用FindwosA得
talkfalse
2004-10-24
打赏
举报
回复
to hsmserver(撒哈拉之雨的悲伤)
1。怎样做才能实现这个功能?
2。为什么在delphi里编译有反应,能够发一个A过去?
talkfalse
2004-10-24
打赏
举报
回复
在别人的机器上编译的拿过来也不行。别人的环境是XP+delphi6。我得是win2k+delphi6
hsmserver
2004-10-24
打赏
举报
回复
其实什么都用不到
那样你根本得不到文件的句柄
所以一点反映都没有
智商无下限
2004-10-24
打赏
举报
回复
那会不会是你的DELPHI里用了什么特殊的控件?
建议关掉DELPHI,或者重新启动WINDOWS试试!
要是还不行,我也实在想不出来了!
talkfalse
2004-10-24
打赏
举报
回复
没有用,试过了。删除后新生成的exe还是不能发消息过去。但是在delphi里直接编译运行的就可以
智商无下限
2004-10-24
打赏
举报
回复
你把你的的可执行文件删除,然后重新编译一个试试!
talkfalse
2004-10-24
打赏
举报
回复
完成的功能仅仅是按一下按钮发一个A到打开的记事本
talkfalse
2004-10-24
打赏
举报
回复
procedure TForm1.Button1Click(Sender: TObject);
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;
nicotine
2004-10-22
打赏
举报
回复
问题可能出在SendMessage上,你的pchar是怎么用的,是pchar(string)还是定义pchar再用getmem还是chr:Array[0..255] Of char等等
换其它的方式试试,或不用getmem而用AllocMem
以前碰到的一个问题有点像你的
masterjames
2004-10-21
打赏
举报
回复
贴出代码
ahuige
2004-10-21
打赏
举报
回复
有两点没说清楚,不关闭delphi,但是工程关闭没有.工程在运行没有?
ctrlqrj
2004-10-21
打赏
举报
回复
看来还是要贴出代码才行
快乐老猫
2004-10-21
打赏
举报
回复
窗口是否找对了?
用个LISTBOX把一些信息显示出来,分析那里出了问题。
talkfalse
2004-10-20
打赏
举报
回复
但是确实就遇到了,我怎么都想不明白
ly_liuyang
2004-10-20
打赏
举报
回复
不会吧
真是没有遇到哦
http://lysoft.7u7.net
talkfalse
2004-10-20
打赏
举报
回复
咦!~~~~是我没有描述清楚,还是没人知道啊
C#微软培训资料
一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以互相交换组件的地方 比尔 比尔比尔 比尔.盖茨 盖茨盖茨 盖茨 在本章中你将了解 Microsoft.NET 的概念 ...
delphi
有关包的介绍
一般我们编写
编译
一个
DELPHI
应用
程序
时,会产生一个
EXE
文件,也就是一个独立的WINDOWS应用
程序
。很重要的一点:区别于Visual Basic,
DELPHI
产生的是预先包裹的应用
程序
是不需要大量的
运行
库(DLL's)。 假设:...
Delphi
XE10零基础实战快速入门
通过课堂上一个一个的实战例子,演示
Delphi
XE10的用法,最后通过一个完整的通讯录
程序
,让学员初步掌握软件开发的全部流程让零基础学员快速入门
Delphi
编程,快速掌握
Delphi
的使用方法,并能够制作出自己的软件来。为同学们下一步的提高打下坚实的基础。
DELPHI
的BPL使用
第一部分:有关包的介绍 一般我们编写
编译
一个
DELPHI
应用
程序
时,会产生一个
EXE
文件,也就是一个独立的WINDOWS应用
程序
。很重要的一点:区别于Visual Basic,
DELPHI
产生的是预先包裹的应用
程序
是不需...
delphi
7在win7 64bit系统下的
问题
之前
delphi
7在win7 64bit上
运行
是正常的,某天,大概是...2、之前一个project,使用runtimepackage
编译
的,
exe
退出时也会崩溃,但在测试路径完全相同的情况下,不是每次都会。追踪发现是在unloadpackage-->freelibrary
Windows SDK/API
1,183
社区成员
22,335
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章