myoldsaturn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1367回复:6

请帮帮我,急求屏蔽(Crtl+ALt+Delete)三个键输入的Vxd例子!!!

楼主#
更多 发布于:2005-05-13 15:45
我是一个初学者,我急需要一个vxd的例子,在98启动的时候屏蔽(ctrl+alt+del)键的,谢谢了各位大侠!
myoldsaturn
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-05-13 15:52
我的email: mylittlesaturn@163.com qq:2360257
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-05-13 18:08
都忘的差不多了,你可以看看vtoolsd的帮助,
VKD_Define_Hot_Key,这个函数是不是可以实现?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-14 22:28
我是一个初学者,我急需要一个vxd的例子,在98启动的时候屏蔽(ctrl+alt+del)键的,谢谢了各位大侠!

BeginProc Chk_Hot_Keys

;!!! key trace
   trace_out \"Chk_Hot_Keys key #AX\"
;!!! end

   VK_HK_Queue_Out \"Chk_Hot_Keys key scan code = #AX ...\"

   push  eax

;!!! key trace
   mov   eax,[vkd_gbl_shift_state]
   trace_out \"Chk_Hot_Keys ... shift state = #AX\"
   pop   eax
   push  eax
;!!! end

   test  [VKD_gbl_shift_state], SS_Shift_mask + SS_Toggle_Dn_mask
                   ;Q: are any shift state keys down?
;!!! key trace
   trace_outNZ \"---------- Shift State keys DOWN\"
;!!! end

   jnz   short chkhk_1         ; Y:
   and   eax, (NOT SC_Break AND 0FFh) OR VK_Extended
                   ; clear all but Extended bit &
                   ; base scan code

   cmp   eax, Pause_HK         ;Q: special single key hot key?
;!!! key trace
   trace_outZ \"---------- NO CHECK performed (special key)\"
;!!! end
   jz DEBFAR je_don_t_check       ; N: (chained short jumps)

chkhk_0:
   mov   eax, [esp]         ; retrieve saved eax value
chkhk_1:
IFDEF DEBUG
   push  ebx
   mov   ebx, [esp+8]
   VK_HK_Queue_Out \'Chk_Hot_Keys #ax, called from ?ebx\'
   pop   ebx
ENDIF
   test  al, SC_Break          ;Q: key being released?
   jz short continue_check
   TestMem [VKD_flags], VKDf_HK_hold   ;Q: already in hot key state?
je_don_t_check:
   je DEBFAR don_t_check       ; N: don\'t enter hot key state
                   ;    on just the release!

continue_check:
;!!! key trace
   trace_out \"---------- CHECK performed\"
;!!! end
   pushad
   mov   edi, esi        ; point edi at CB data
   mov   cx, ax             ; save virtual key
   mov   esi, [Hot_Key_List]
   VMMCall List_Get_First
   jz short no_hot_keys     ; jump if no hot keys defined

;
; if extended, is all we need to know
; so leave VK_Extended bit in modifier byte and NON SC_Break bits in the
; scan code byte
;
   and   cx, VK_Extended + (0FFh XOR SC_Break)
.errnz (VK_Extended + (0FFh XOR SC_Break)) - 807Fh

chk_key:
   cmp   cl, [eax.Hot_Key_scan_code] ;Q: scan codes match?
   jne   short no_key          ; N:
   cmp   [eax.Hot_Key_extended], AllowExtended_B ;Q: ignore extended flag?
   je short accept_key      ;        Y:
   cmp   ch, [eax.Hot_Key_extended]  ;Q: same ext status?
   jne   short no_key          ; N:
accept_key:
   mov   ebx, [VKD_gbl_shift_state]
   and   bx, [eax.Hot_Key_SS_Mask]
   cmp   bx, [eax.Hot_Key_SS_Compare] ;Q: correct shift state?
   je short hot_key_fnd     ; Y:
no_key:
   VMMCall List_Get_Next          ; EAX is next key definition
   jnz   chk_key
no_hot_keys:
   clc                ; failed!
   jmp   short chk_exit

hot_key_fnd:
;!!! key trace
   trace_out \"---------- HOT KEY found! = #EAX\"
;!!! end
   VK_HK_Queue_Out \"Chk_Hot_Keys Hot key detected #eax\"

   mov   ebx, [eax.Hot_Key_Local_Flag]
   bt [edi.disabled_hot_keys], ebx ;Q: key disabled?
   jnc   short hot_not_disabled      ; N: match found

   test  byte ptr [esp.Pushad_EAX], SC_Break ;Q: release hot key?
IFDEF DEBUG
   jnz   SHORT D00_handle_up_on_disabled
   VK_HK_Queue_Out \"Chk_Hot_Keys Hot key disabled\"
   jmp   no_key
D00_handle_up_on_disabled:
ELSE
   jz no_key
ENDIF
   and   [eax.Hot_Key_call_mask], NOT Hot_Key_Down   ; flag as key up
   mov   bl, byte ptr [esp.Pushad_EAX]
   mov   [VKD_last_key], bl
   jmp   no_key

hot_not_disabled:
   TestMem  [eax.Hot_Key_call_mask], Monitor_Key ; monitoring only?
   jnz   Hot_Key_Activate_Monitor    ; Y: Handle internally
   stc
   mov   [esp.Pushad_EBX], eax       ; return handle of hot key

chk_exit:
   popad
don_t_check:
   pop   eax
   ret

EndProc Chk_Hot_Keys
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
liuyan4794
驱动牛犊
驱动牛犊
  • 注册日期2005-04-14
  • 最后登录2010-08-19
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-16 14:22
我只有WDM的例子
liuyan4794@163.com
mudan2288
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2005-07-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-12 11:38
谁知道wdm中怎样做可以屏蔽三键(ctrl+del+alt),我的邮箱,好答案给高分!!!
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-06-13 11:50
谁知道wdm中怎样做可以屏蔽三键(ctrl+del+alt),我的邮箱,好答案给高分!!!

我贴上来过,用我的名字搜
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
游客

返回顶部