Страница: 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
Ммм, цензура...