B beilei Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-08 #1 要屏蔽系统全局的ALT+F4,以及鼠标右键的弹出菜单, 应该是用键盘和鼠标hook吧? 可惜我对这方面不熟悉,谁能给出代码? 一个一百分:)
H hhzh426 Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-08 #2 屏蔽全局的alt+f4没有意义! 如果不想让你的程序被alt+f4关闭的话可以设置一个全局变量canexit并置为false; 在form的onclosequery中设置canclose:=canexit;即可。为了使程序能够正常退出可以在 程序代码的close前添加canexit:=true;
屏蔽全局的alt+f4没有意义! 如果不想让你的程序被alt+f4关闭的话可以设置一个全局变量canexit并置为false; 在form的onclosequery中设置canclose:=canexit;即可。为了使程序能够正常退出可以在 程序代码的close前添加canexit:=true;
H happytaa Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-08 #3 procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); begin if (ssAlt in shift)and(key=115) then key:=0; end; 这样可以屏蔽
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); begin if (ssAlt in shift)and(key=115) then key:=0; end; 这样可以屏蔽
H hqiang Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-08 #5 好象用SystemParametersInfo也可以,不过具体的调用我忘了,你可以自己看看(再win32s help里)!嘿嘿 用hhzh426的方法也可以啦!
H hhzh426 Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-09 #6 var temp:integer; begin SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0); end; //禁止alt+tab,alt+ctrl+del等功能键 把Windows“唤醒”。代码如下: var temp : integer; begin SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @temp, 0); end;
var temp:integer; begin SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0); end; //禁止alt+tab,alt+ctrl+del等功能键 把Windows“唤醒”。代码如下: var temp : integer; begin SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @temp, 0); end;
B beilei Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-09 #7 屏蔽全局的alt+f4是任务(为什么?我也不知道:() 用设置屏幕保护的方法屏蔽不掉alt+f4 屏蔽全局的鼠标右键的弹出菜单也是一样,也许只能hook了
F Fyx Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-12 #9 向系统注册Alt+F4热键,然后在代码里什么也不做,这样可以屏蔽全局的 Alt+F4: private { Private declarations } HotKeyId: Integer; procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY; procedure TForm1.HotKeyDown(var Msg: Tmessage); begin if (Msg.LparamLo = Mod_Alt) And (Msg.LParamHi = VK_F4) then begin // 什么也不做 end; end; procedure TForm1.FormCreate(Sender: TObject); begin HotKeyId := GlobalAddAtom('HotKey') - $C000; RegisterHotKey(Handle, hotkeyid, Mod_Alt, VK_F4); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin UnRegisterHotKey(handle, HotKeyId); end;
向系统注册Alt+F4热键,然后在代码里什么也不做,这样可以屏蔽全局的 Alt+F4: private { Private declarations } HotKeyId: Integer; procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY; procedure TForm1.HotKeyDown(var Msg: Tmessage); begin if (Msg.LparamLo = Mod_Alt) And (Msg.LParamHi = VK_F4) then begin // 什么也不做 end; end; procedure TForm1.FormCreate(Sender: TObject); begin HotKeyId := GlobalAddAtom('HotKey') - $C000; RegisterHotKey(Handle, hotkeyid, Mod_Alt, VK_F4); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin UnRegisterHotKey(handle, HotKeyId); end;
D duan_1 Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-14 #10 to Fyx 用这种方法能单纯的屏蔽ctrl+alt+del键吗,用模拟屏幕保护的方法连alt+tab键也屏蔽了, 我可不想屏蔽alt+tab键.
阿 阿蒙 Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-14 #11 fyx 的方法之屏蔽了 alt+f4 健你可以改动就屏蔽 ctrl+alt+del 健了
W wjiachun Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-21 #13 beilei:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
H hspdel Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-21 #14 《〈happytaa: 你这样的做法是有问题的,只有当焦点是在FORM上的时候才行,如果焦点在其他的控件是不 行的。 实现这个功能有很多种方法,楼上的兄弟已经说了几种了,HOOK我是用过了,不过我觉得 实现这个功能不用HOOK吧呵呵 我提供一种方法了截获wm_syscommand消息,if Message.wParam = SC_CLOSE 就是了呵呵 希望能帮到你了
《〈happytaa: 你这样的做法是有问题的,只有当焦点是在FORM上的时候才行,如果焦点在其他的控件是不 行的。 实现这个功能有很多种方法,楼上的兄弟已经说了几种了,HOOK我是用过了,不过我觉得 实现这个功能不用HOOK吧呵呵 我提供一种方法了截获wm_syscommand消息,if Message.wParam = SC_CLOSE 就是了呵呵 希望能帮到你了
W wolf_cyj Unregistered / Unconfirmed GUEST, unregistred user! 2000-12-21 #15 是一个叫wm_queryclose..的消息,我忘了,你查查吧。