Project1

标题: 请问如何屏蔽掉F2键? 显示FPS的那个 [打印本页]

作者: 小无    时间: 2008-8-31 18:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: sanction_act    时间: 2008-8-31 18:03
{/fd}怕有人作弊吗?- -呵呵新来
作者: 小无    时间: 2008-8-31 18:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: sanction_act    时间: 2008-8-31 18:13
哦,原来如此帮你顶,你可知道我的问题http://rpg.blue/viewthread.php?tid=101651
帮帮忙,饿最近也在做游戏
作者: 小无    时间: 2008-8-31 19:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: dbshy    时间: 2008-8-31 19:34
去网上找个屏蔽按键的DLL,这种东西多的是
作者: 做游戏的新手    时间: 2008-8-31 19:59
好像有泥啊的Game.exe屏蔽了
作者: 小柯    时间: 2008-8-31 20:10
屏障FPS有意义么…… = =
让玩家知道才好……
作者: yangff    时间: 2008-8-31 21:31
VB版本有,通过api+dll。我希望又能人用ruby使用这个dll(底层Hook)
dll:不猛击的是SB
  1. Option Explicit

  2. Private Declare Function StartMaskKey Lib "MaskKey" (lpdwVirtualKey As Long, ByVal nLength As Long, ByVal lpfnKeyboarProc As Long, Optional ByVal bDisableKeyboard As Boolean = False) As Long

  3. Private Declare Function StopMaskKey Lib "MaskKey" () As Long



  4. Private Sub cmdStartMask_Click()

  5.     ' 屏蔽 A, B, C, 上, 下, 左, 右及两个win键

  6.     Dim key(8) As Long

  7.     key(0) = vbKeyA

  8.     key(1) = vbKeyB

  9.     key(2) = vbKeyC

  10.     key(3) = vbKeyLeft

  11.     key(4) = vbKeyRight

  12.     key(5) = vbKeyUp

  13.     key(6) = vbKeyDown

  14.     key(7) = &H5B               ' 左边的win键

  15.     key(8) = &H5C               ' 右边的win键

  16.     StartMaskKey key(0), UBound(key) + 1, AddressOf KeyboardProc

  17. End Sub



  18. Private Sub cmdStopMask_Click()

  19.     StopMaskKey

  20. End Sub
复制代码
  1. Option Explicit



  2. Private Const WM_KEYDOWN = &H100

  3. Private Const WM_KEYUP = &H101

  4. Private Const WM_SYSKEYDOWN = &H104

  5. Private Const WM_SYSKEYUP = &H105



  6. Public Type KBDLLHOOKSTRUCT

  7.     vkCode As Long              ' 虚拟按键码(1--254)

  8.     scanCode As Long            ' 硬件按键扫描码

  9.     flags As Long               ' flags

  10.     time As Long                ' 消息时间戳

  11.     dwExtraInfo As Long         ' 额外信息

  12. End Type



  13. Public Enum KEYACTION

  14.     ACTION_KEYDOWN = WM_KEYDOWN

  15.     ACTION_KEYUP = WM_KEYUP

  16.     ACTION_SYSKEYDOWN = WM_SYSKEYDOWN

  17.     ACTION_SYSKEYUP = WM_SYSKEYUP

  18. End Enum



  19. ' 全局键盘钩子回调函数

  20. ' 参数: action 标识键盘消息(按下,弹起), keyStruct 包含按键信息

  21. Public Function KeyboardProc(ByVal action As KEYACTION, keyStruct As KBDLLHOOKSTRUCT) As Boolean

  22.     Select Case action

  23.         Case ACTION_KEYDOWN

  24.             Debug.Print keyStruct.vkCode, "按下键盘按键"

  25.         Case ACTION_KEYUP

  26.             Debug.Print keyStruct.vkCode, "弹起键盘按键"

  27.         Case ACTION_SYSKEYDOWN

  28.         

  29.         Case ACTION_SYSKEYUP

  30.         

  31.     End Select

  32.    

  33.     ' 返回 True 表示继续传递按键消息

  34.     ' 返回 False 表示结束按键消息传递

  35.     KeyboardProc = False

  36. End Function
复制代码
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1