【100分】请(大侠)写系统热键弹出对话框,该怎么处理

【100分】请(大侠)写系统热键弹出对话框
单机from1程序上的按钮之后,不管from1窗口的应用程序是否为当前活动的或者隐藏,只要用户按(insert)都会弹出from2窗口,from2窗口可以支持访问网站。 关闭程序后会释放热键注册。如果热键被占用,那么单击按钮的时候就会提示

求大侠帮我写这个脚本出来,我是菜鸟,现在需要,可是不会写,100分是我的全部家当了!感谢!

------解决方案--------------------
RegisterHotKey注册全局热键
http://hi.baidu.com/allen_niu/blog/item/52d01534d111f7bad1a2d352.html
------解决方案--------------------
看到上个帖子已经结帖了,不是小鸟帮你把问题解决了吗??? 又来?

好好看看我上个帖子中回复的那个链接,完完整整的代码都摆在那里,看不懂就没撤了...
------解决方案--------------------
在等一轮,还是没有人解决的话我就要收分了~~~~


------解决方案--------------------
kaikai_kk 
(KAIKAI) 
你太历害了呀,终于跟踪到你的另一个注解这个问题的帖子了
#4 楼
http://topic.csdn.net/u/20120302/09/07493f77-f728-4607-9136-9853b2cf9bdf.html
我根据你的思路走一边,也进行了进应的改善与更正,先发个图让大家过过目吧如下:

代码注明如下:
没有装RzTrayIcon,用系统自带的托盘类
1)create事件如下:
procedure TFrmKey.FormCreate(Sender: TObject);
begin
//初始化功能键列表 F1---F12
ComboBox1.Clear;
ComboBox1.Items.Add('请选择功能热键');
ComboBox1.Items.Add('F1');
ComboBox1.Items.Add('F2');
ComboBox1.Items.Add('F3');
ComboBox1.Items.Add('F4');
ComboBox1.Items.Add('F5');
ComboBox1.Items.Add('F6');
ComboBox1.Items.Add('F7');
ComboBox1.Items.Add('F8');
ComboBox1.Items.Add('F9');
ComboBox1.Items.Add('F10');
ComboBox1.Items.Add('F11');
ComboBox1.Items.Add('F12');
ComboBox1.ItemIndex:=0; //定义到F1上

self.Position:=poDesktopCenter; //窗体 居中显示
end;
2)Bitbtn1 按扭 注册热键 事件如下:
procedure TFrmKey.BitBtn1Click(Sender: TObject);
begin
_HotKey:=GlobalAddAtom('HotKey')-$C000;

case ComboBox1.ItemIndex of
1:
begin
Label1.Caption:='键盘输入检测快捷键 热键为:F1 ';
RegisterHotKey(Handle,_HotKey,0,vk_F1); {取出用户设定的热键,把vk_F2变一下即可}
doNotifyIconData('add');
end;
2:
begin
Label1.Caption:='键盘输入检测快捷键 热键为:F2 ';
RegisterHotKey(Handle,_HotKey,0,vk_F2); {取出用户设定的热键,把vk_F2变一下即可}
doNotifyIconData('add');
end;
3:
begin
Label1.Caption:='键盘输入检测快捷键 热键为:F3 ';
RegisterHotKey(Handle,_HotKey,0,vk_F3); {取出用户设定的热键,把vk_F2变一下即可}
doNotifyIconData('add');
end;
4:
begin
Label1.Caption:='键盘输入检测快捷键 热键为:F4 ';
RegisterHotKey(Handle,_HotKey,0,vk_F4); {取出用户设定的热键,把vk_F2变一下即可}
doNotifyIconData('add');
end;
5:
begin
RegisterHotKey(Handle,_HotKey,0,vk_F5); {取出用户设定的热键,把vk_F2变一下即可}
Label1.Caption:='键盘输入检测快捷键 热键为:F5 ';
doNotifyIconData('add');
end;
6:
begin
Label1.Caption:='键盘输入检测快捷键 热键为:F6 ';
RegisterHotKey(Handle,_HotKey,0,vk_F6); {取出用户设定的热键,把vk_F2变一下即可}
doNotifyIconData('add');
end;
//省略 6个,你们可知如何书写吗.............

end;

end; 
3)Bitbtn2 注消热键 代码如下:
UnRegisterHotKey(handle,_HotKey);//注消热键
4)修改事件
procedure TFrmKey.HotKey(var Msg:Tmessage);
begin
 { if ((Msg.LParamHi=vk_F1) or (Msg.LParamHi=vk_F2) or (Msg.LParamHi=vk_F3) or (Msg.LParamHi=vk_F4) or
(Msg.LParamHi=vk_F5) or (Msg.LParamHi=vk_F6) or (Msg.LParamHi=vk_F7) or (Msg.LParamHi=vk_F8) or
(Msg.LParamHi=vk_F9) or (Msg.LParamHi=vk_F10) or (Msg.LParamHi=vk_F11) or (Msg.LParamHi=vk_F12)) then
begin }
if self.Visible then
begin
doNotifyIconData('del');
self.Visible:=false;
end
else
begin
doNotifyIconData('add');
self.Visible:=true;
end;
//end;
end;
5)托盘事件如下:
procedure doNotifyIconData(aType: String);
var
lpData: PNotifyIconData; //引用单元 uses ShellApi;