全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1945
推到 Plurk!
推到 Facebook!

如何欄截 2000/XP下的''ALT+F4''熱鍵?

答題得分者是:zong
Code168
一般會員


發表:16
回覆:11
積分:5
註冊:2003-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-09 15:39:35 IP:202.175.xxx.xxx 未訂閱
各位老大, 你們好,小弟乃Delphi初學者,正在試試編寫一個簡單的登入程序,但遇到很大的保安問題,就是當激活登入介面時,若按下"ALT F4"就會進入主程序,小弟花了很多時間去試解決這個問題(如利用onkeyPress/OnKeyDown事件),但不能解決, 現正向各位老大請教,最好能給我一些Sample Code. 謝謝!
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-09 16:13:01 IP:61.64.xxx.xxx 未訂閱
Code168 兄你的問題 以前有人問過了 你可以先再Win32 API 使用討論區 先看看或先搜尋看看 應該有 你的問題 應該先找 1 攔截系統鍵 複合鍵 如遇到無法理解之處再詢問不遲 [推薦] Win2K下的Api函數的攔截 http://delphi.ktop.com.tw/topic.php?topic_id=19406 【推薦】利用Hook技術實現鍵盤監控 http://delphi.ktop.com.tw/topic.php?topic_id=19936 【問題】程式如何在被關掉前先攔截,以便在合適的時候才關閉 http://delphi.ktop.com.tw/topic.php?topic_id=22141 【問題】請教各位高手我要如何攔截 TextOut 這樣的 API Hook? http://delphi.ktop.com.tw/topic.php?topic_id=22995 【問題】Win98 下控制 NumLock http://delphi.ktop.com.tw/topic.php?topic_id=23780 【問題】在 2000/XP/NT 下攔截 Alt Tab、Ctrl Esc、Ctrl Alt Del 鍵 http://delphi.ktop.com.tw/topic.php?topic_id=25598 【Delphi】【問題】鍵盤的代碼 http://delphi.ktop.com.tw/topic.php?topic_id=26006 【Delphi】【分享】虛擬鍵的對應表 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24879 這樣才不會浪費不必要的資源 有問題可以在po上研究討論 ********************************************************* 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together! 希望能大家敞開心胸,將知識寶庫結合一起
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
Code168
一般會員


發表:16
回覆:11
積分:5
註冊:2003-02-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-10 17:47:14 IP:202.175.xxx.xxx 未訂閱
多謝老大提供這麼多資料,小弟感激,但因為小弟編程資歷淺,看了幾遍還是不懂,請Jackkcg老大有沒有一些比較易明的參考材料介紹一下! 非常感謝幫忙!
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-10 17:54:47 IP:61.221.xxx.xxx 未訂閱
Code168 兄 我有簡訊給你 麻煩你看一下 至於你的問題我想有一位比我更專精更熱心之人就是 hagar 版主 你可以 請教他 ********************************************************* 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together! 希望能大家敞開心胸,將知識寶庫結合一起
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-10 18:04:10 IP:202.39.xxx.xxx 未訂閱
參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=25634 當中提到一個 dWinlock 元件 (不過須付費註冊, 否則會跳出一些對話方塊) 該元件提供很多屬性, 只要設定屬性就可以了! 像是設定 TdWinlock.noCtrlAltDel 為 False 就是攔截 Ctrl Alt Del 鍵 設定 TdWinlock.noAltF4 為 False 應該就是您要的答案了! --- Have you ever wondered what it would be like?
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-10 18:27:14 IP:211.21.xxx.xxx 未訂閱
引言: 各位老大, 你們好,小弟乃Delphi初學者,正在試試編寫一個簡單的登入程序,但遇到很大的保安問題,就是當激活登入介面時,若按下"ALT F4"就會進入主程序,小弟花了很多時間去試解決這個問題(如利用onkeyPress/OnKeyDown事件),但不能解決, 現正向各位老大請教,最好能給我一些Sample Code. 謝謝!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Shift = [ssAlt]) and (Key = 115) then
    abort;
end;
這樣在登入介面,按下"ALT F4"應該就不會將登入介面關閉。 ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
zong
初階會員


發表:11
回覆:51
積分:42
註冊:2002-08-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-11 01:51:51 IP:61.219.xxx.xxx 未訂閱
試試看!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);
begin 
   if (Shift = [ssAlt]) and (Key = 115) then
   begin
     //要執行的程序;
     key:=0;
   end;
end; 
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-11 08:19:04 IP:202.39.xxx.xxx 未訂閱
引言: 試試看!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);
begin 
   if (Shift = [ssAlt]) and (Key = 115) then
   begin
     //要執行的程序;
     key:=0;
   end;
end; 
小弟用的是 NT 4.0 果然用這樣的方法是可以攔截到 Alt F4 鍵. --- Have you ever wondered what it would be like?
Code168
一般會員


發表:16
回覆:11
積分:5
註冊:2003-02-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-13 14:05:34 IP:202.175.xxx.xxx 未訂閱
多謝各位老大的悉心指導,我的問題已經解決了. 大家的資料對我都有好大的幫助,每個人的功勞都很大,我很想把分數平分給大家,但這樣是不可能的吧!所以我只好以下幾點來評估誰是分數取得者. 1. Jackkcq給我的有關資料,在發問前我好像者查找過,但因現階段水平不足,看不懂, 但本人也非常感謝Jackkcq, 再次向你致敬. 2. Hager是一個很好的提議,我亦下載了來試,但要花錢呀!加上,這樣對於學習的我, 好像走了shortcut一樣, 不是太好.但非常感謝. 3. channel一個很好的啟發,但不知為何這樣不能通過編譯,非常感謝. 4. Zong的Sample跟channel的差不多,但通過編譯,且Sample Code對於像我這樣一個初學都能看懂,真是非常實用.在此向Zong萬二分致敬.
xxxxzxx
一般會員


發表:21
回覆:49
積分:24
註冊:2004-11-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-03-22 09:19:08 IP:220.163.xxx.xxx 未訂閱
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Shift = [ssAlt]) and (Key = 115) then begin //要執行的程序; key:=0; end; end; ___________________________________________ 不能在xp下用!呵呵
系統時間:2024-04-29 12:16:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!