|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
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 |
作者: |
|
2004/7/26 20:04:39 |
1楼: |
這段代碼我在一編文章上看過,除了注冊系統服務在WINNT不行外,其它好像沒什麼問題(我運行正常啊),你看是不是其它地方有問題.
----------------------------------------------
我的心太乱要一些空白 老天在不在忘了为我来安排 我的心太乱害怕爱情的背叛 想哭的我像是一个迷路小孩 迷路的小孩
|
作者: |
|
2004/7/26 20:13:00 |
2楼: |
这段代码的功能在XP下能用,只是出现了我上面提到的问题。
----------------------------------------------
Delphi学习ing
|
作者: |
|
2004/7/26 21:38:39 |
3楼: |
那我就搞不懂了,等高手本解決
----------------------------------------------
我的心太乱要一些空白 老天在不在忘了为我来安排 我的心太乱害怕爱情的背叛 想哭的我像是一个迷路小孩 迷路的小孩
|
作者: |
|
2004/7/26 23:14:13 |
4楼: |
我在xp下运行好几遍,没问题,.........可能不是这段代码问题
----------------------------------------------
病毒盛行----小心为妙
|
作者: |
|
2004/7/26 23:28:21 |
5楼: |
我试过了,单单这段代码是没有问题的,可加入自己编得程序中后,就出现问题了。我编得两个程序,用到这代码后,症状都相同。 不能第二次按F9,真得好麻烦。
----------------------------------------------
Delphi学习ing
|
作者: |
|
2004/7/27 7:42:20 |
6楼: |
这是我出问题的程序。帮忙编译一下吧!
----------------------------------------------
Delphi学习ing
|
作者: |
|
2004/7/27 10:52:01 |
7楼: |
顶呀!
----------------------------------------------
Delphi学习ing
|
作者: |
|
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就可以了。 不知道你为什么要加这一句。
----------------------------------------------
-
|
|