DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: snarv12
今日帖子: 5
在线用户: 8
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 qq66533885 (qq66533885) ★☆☆☆☆ -
盒子活跃会员
2004/7/26 19:38:29
标题:
加入这段代码后,程序变得不正常。帮忙看看啊。 浏览:1089
加入我的收藏
楼主: private
  id: Integer; 
  procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
----------------------------
procedure TForm1.WMHotKey (var Msg : TWMHotKey); 
begin
if msg.HotKey = id then
begin
form1.Show ;
timer1.Enabled :=false;
form1.Visible :=true;
end;
end;

procedure TForm1.FormCreate(Sender: TObject); 
Const 
{ALT、CTRL和R键的虚拟键值} 
MOD_ALT = 1; 
MOD_CONTROL = 2; 
VK_R = 82; 
begin
{首先判断程序是否已经运行}
if GlobalFindAtom('MyHotkey') = 0 then
begin 
{注册全局热键Ctrl + Alt + R} 
id:=GlobalAddAtom('MyHotkey');
RegisterHotKey(handle,id,MOD_CONTROL+MOD_Alt,VK_R); 
end 
else 
halt; 
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotKey(handle,id); 
GlobalDeleteAtom(id); 
end;
end.

第一次打开程序关闭后,再打开时,点击图标就没有反应了,要注销后才能再打得开。在编程时,第二次按F9就运行不了了。
----------------------------------------------
Delphi学习ing
作者:
男 001zqk (迷路不孩) ★☆☆☆☆ -
盒子活跃会员
2004/7/26 20:04:39
1楼: 這段代碼我在一編文章上看過,除了注冊系統服務在WINNT不行外,其它好像沒什麼問題(我運行正常啊),你看是不是其它地方有問題.
----------------------------------------------
我的心太乱要一些空白
老天在不在忘了为我来安排
我的心太乱害怕爱情的背叛
想哭的我像是一个迷路小孩
迷路的小孩
作者:
男 qq66533885 (qq66533885) ★☆☆☆☆ -
盒子活跃会员
2004/7/26 20:13:00
2楼: 这段代码的功能在XP下能用,只是出现了我上面提到的问题。


----------------------------------------------
Delphi学习ing
作者:
男 001zqk (迷路不孩) ★☆☆☆☆ -
盒子活跃会员
2004/7/26 21:38:39
3楼: 那我就搞不懂了,等高手本解決
----------------------------------------------
我的心太乱要一些空白
老天在不在忘了为我来安排
我的心太乱害怕爱情的背叛
想哭的我像是一个迷路小孩
迷路的小孩
作者:
男 00004020 (冷雨夜) ★☆☆☆☆ -
普通会员
2004/7/26 23:14:13
4楼: 我在xp下运行好几遍,没问题,.........可能不是这段代码问题
----------------------------------------------
病毒盛行----小心为妙
作者:
男 qq66533885 (qq66533885) ★☆☆☆☆ -
盒子活跃会员
2004/7/26 23:28:21
5楼: 我试过了,单单这段代码是没有问题的,可加入自己编得程序中后,就出现问题了。我编得两个程序,用到这代码后,症状都相同。
不能第二次按F9,真得好麻烦。
----------------------------------------------
Delphi学习ing
作者:
男 qq66533885 (qq66533885) ★☆☆☆☆ -
盒子活跃会员
2004/7/27 7:42:20
6楼: 这是我出问题的程序。帮忙编译一下吧!
此帖子包含附件:qq66533885_200472774214.rar 大小:252.2K
----------------------------------------------
Delphi学习ing
作者:
男 qq66533885 (qq66533885) ★☆☆☆☆ -
盒子活跃会员
2004/7/27 10:52:01
7楼: 顶呀!
----------------------------------------------
Delphi学习ing
作者:
男 qq66533885 (qq66533885) ★☆☆☆☆ -
盒子活跃会员
2004/7/27 22:34:39
8楼: 顶到解决为止!
----------------------------------------------
Delphi学习ing
作者:
男 axsoft (axsoft) ★☆☆☆☆ -
盒子活跃会员
2004/7/29 17:40:47
9楼: 在你的关闭代码中:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action:=canone;
  //
  UnRegisterHotKey(handle,id);
  GlobalDeleteAtom(id);
end;

去掉action:=caNone就可以了。
不知道你为什么要加这一句。

----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS