Страница: 1 |
Страница: 1 |
Вопрос: Хук мыши
Добавлено: 08.07.07 21:44
Автор вопроса: Fever
Здр. ув. форумляне. Конечно можете меня сразу послать в поиск, но я там ниче не встретил. Суть - любым вбшным способом поймать нажатие мыши независимо от контекста и прозрачно для любых других программ.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 08.07.07 21:49
Если совсем на халяву, то:
В цикле GetMessage, или в VB-таймере
проверять GetAsyncKeyState(VK_LBUTTON)
Номер ответа: 2
Автор ответа:
j3d1
ICQ: 8370005
Вопросов: 34
Ответов: 466
Профиль | | #2
Добавлено: 08.07.07 22:39
http://msdn2.microsoft.com/en-us/library/ms644990.aspx
Номер ответа: 3
Автор ответа:
Sneaks
Вопросов: 9
Ответов: 84
Профиль | | #3
Добавлено: 09.07.07 15:35
я хук клавы делаючерез DI. Мыш я думаю тоже можно сделать. Чур не ругать сам все знаю, но мне уже так проше ))
Номер ответа: 4
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #4
Добавлено: 09.07.07 17:32
Гыгы, от меня глюкнуло, я то имел ввиду клаву сникс, что ты там про ди? Это вариант...
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 09.07.07 19:30
Я неверю что ты искал
Номер ответа: 6
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #6
Добавлено: 10.07.07 00:25
А у тебя и не спрашивают веришь ты или нет. Если можешь помочь - помоги, иначе - не флуди.
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 10.07.07 06:20
могу!=хочу.
ок, не флужу.
Номер ответа: 8
Автор ответа:
Sneaks
Вопросов: 9
Ответов: 84
Профиль | | #8
Добавлено: 10.07.07 14:16
Dim dx As New DirectX7
Dim di As DirectInput
Dim diDEV As DirectInputDevice
Dim diState As DIKEYBOARDSTATE
Dim iKeyCounter As Integer
Dim aKeys(255) As String
Private Sub Form_Load()
Set di = dx.DirectInputCreate()
If Err.Number <> 0 Then
MsgBox "Error starting Direct Input, please make sure you have DirectX installed", vbApplicationModal
End
End If
Set diDEV = di.CreateDevice("GUID_SysKeyboard"
diDEV.SetCommonDataFormat DIFORMAT_KEYBOARD
diDEV.SetCooperativeLevel Me.hWnd, DISCL_BACKGROUND Or DISCL_NONEXCLUSIVE
Me.Show
diDEV.Acquire
tmrKey.Interval = 10
tmrKey.Enabled = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
diDEV.Unacquire
End Sub
Private Sub tmrKey_Timer()
lstKeys.Clear
diDEV.GetDeviceStateKeyboard diState
For iKeyCounter = 0 To 255
If diState.Key(iKeyCounter) <> 0 Then
a = iKeyCounter
lstKeys.AddItem a 'KeyNames(iKeyCounter)
End If
Next
 oEvents
End Sub
Function KeyNames(iNum As Integer) As String
aKeys(1) = "IK_ESCAPE"
aKeys(2) = "IK_1 On main keyboard"
aKeys(3) = "IK_2 On main keyboard"
aKeys(4) = "IK_3 On main keyboard"
aKeys(5) = "IK_4 On main keyboard"
aKeys(6) = "IK_5 On main keyboard"
aKeys(7) = "IK_6 On main keyboard"
aKeys(8) = "IK_7 On main keyboard"
aKeys(9) = "IK_8 On main keyboard"
aKeys(10) = "IK_9 On main keyboard"
aKeys(11) = "IK_0 On main keyboard"
aKeys(12) = "IK_MINUS On main keyboard"
aKeys(13) = "IK_EQUALS On main keyboard"
aKeys(14) = "IK_BACK BACKSPACE"
aKeys(15) = "IK_TAB"
aKeys(16) = "IK_Q"
aKeys(17) = "IK_W"
aKeys(18) = "IK_E"
aKeys(19) = "IK_R"
aKeys(20) = "IK_T"
aKeys(21) = "IK_Y"
aKeys(22) = "IK_U"
aKeys(23) = "IK_I"
aKeys(24) = "IK_O"
aKeys(25) = "IK_P"
aKeys(26) = "IK_LBRACKET ["
aKeys(27) = "IK_RBRACKET ]"
aKeys(28) = "IK_RETURN ENTER on main keyboard"
aKeys(29) = "IK_LCONTROL Left CTRL Key"
aKeys(30) = "IK_A"
aKeys(31) = "IK_S"
aKeys(32) = "IK_D"
aKeys(33) = "IK_F"
aKeys(34) = "IK_G"
aKeys(35) = "IK_H"
aKeys(36) = "IK_J"
aKeys(37) = "IK_K"
aKeys(38) = "IK_L"
aKeys(39) = "IK_SEMICOLON"
aKeys(40) = "IK_APOSTROPHE"
aKeys(41) = "IK_GRAVE Grave accent (`)"
aKeys(42) = "IK_LSHIFT Left SHIFT"
aKeys(43) = "IK_BACKSLASH"
aKeys(44) = "IK_Z"
aKeys(45) = "IK_X"
aKeys(46) = "IK_C"
aKeys(47) = "IK_V"
aKeys(48) = "IK_B"
aKeys(49) = "IK_N"
aKeys(50) = "IK_M"
aKeys(51) = "IK_COMMA"
aKeys(52) = "IK_PERIOD On main keyboard"
aKeys(53) = "IK_SLASH Forward slash (/)on main keyboard"
aKeys(54) = "IK_RSHIFT Right SHIFT"
aKeys(55) = "IK_MULTIPLY Asterisk on numeric keypad"
aKeys(56) = "IK_LMENU Left ALT"
aKeys(57) = "IK_SPACE Spacebar"
aKeys(58) = "IK_CAPITAL CAPS LOCK"
aKeys(59) = "IK_F1"
aKeys(60) = "IK_F2"
aKeys(61) = "IK_F3"
aKeys(62) = "IK_F4"
aKeys(63) = "IK_F5"
aKeys(64) = "IK_F6"
aKeys(65) = "IK_F7"
aKeys(66) = "IK_F8"
aKeys(67) = "IK_F9"
aKeys(68) = "IK_F10"
aKeys(69) = "vDIK_NUMLOCK"
aKeys(70) = "IK_SCROLL SCROLL LOCK"
aKeys(71) = "IK_NUMPAD7"
aKeys(72) = "IK_NUMPAD8"
aKeys(73) = "IK_NUMPAD9"
aKeys(74) = "IK_SUBTRACT Hyphen (minus sign) on numeric keypad"
aKeys(75) = "IK_NUMPAD4"
aKeys(76) = "IK_NUMPAD5"
aKeys(77) = "IK_NUMPAD6"
aKeys(78) = "IK_ADD Plus sign on numeric keypad"
aKeys(79) = "IK_NUMPAD1"
aKeys(80) = "IK_NUMPAD2"
aKeys(81) = "IK_NUMPAD3"
aKeys(82) = "IK_NUMPAD0"
aKeys(83) = "IK_DECIMAL Period (decimal point) on numeric keypad"
aKeys(87) = "IK_F11"
aKeys(88) = "IK_F12"
aKeys(86) = "IK_F13"
aKeys(84) = "IK_F14"
aKeys(85) = "IK_F15"
aKeys(156) = "IK_NUMPADENTER"
aKeys(157) = "IK_RCONTROL Right CTRL key"
aKeys(91) = "IK_NUMPADCOMMA Comma on NEC PC98 numeric keypad"
aKeys(181) = "IK_DIVIDE Forward slash (/)on numeric keypad"
aKeys(183) = "IK_SYSRQ"
aKeys(184) = "IK_RMENU Right ALT"
aKeys(199) = "IK_HOME"
aKeys(200) = "IK_UP Up arrow"
aKeys(201) = "IK_PRIOR PAGE UP"
aKeys(203) = "IK_LEFT Left arrow"
aKeys(205) = "IK_RIGHT Right arrow"
aKeys(207) = "IK_END"
aKeys(208) = "IK_DOWN Down arrow"
aKeys(209) = "IK_NEXT PAGE DOWN"
aKeys(210) = "IK_INSERT"
aKeys(211) = "IK_DELETE"
aKeys(219) = "IK_LWIN Left Windows key"
aKeys(220) = "IK_RWIN Right Windows key"
aKeys(221) = "IK_APPS Application key"
aKeys(116) = "IK_PAUSE"
KeyNames = aKeys(iNum)
End Function
это из sdk
Номер ответа: 9
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #9
Добавлено: 10.07.07 18:33
Иными словами, опять же - в таймере, но не просто так (GetAsyncKeyState), а через жопу (DirectX7).
Номер ответа: 10
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #10
Добавлено: 11.07.07 14:18
пасип, потестаем. только это кажись то же самое, что и апи гет/сеткейбоардстейт
Номер ответа: 11
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #11
Добавлено: 16.07.07 18:24
Ммм, цензура...