Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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
    ;DoEvents
End Sub





Function KeyNames(iNum As Integer) As String

    aKeys(1) = ";DIK_ESCAPE"
    aKeys(2) = ";DIK_1 On main keyboard"
    aKeys(3) = ";DIK_2 On main keyboard"
    aKeys(4) = ";DIK_3 On main keyboard"
    aKeys(5) = ";DIK_4 On main keyboard"
    aKeys(6) = ";DIK_5 On main keyboard"
    aKeys(7) = ";DIK_6 On main keyboard"
    aKeys(8) = ";DIK_7 On main keyboard"
    aKeys(9) = ";DIK_8 On main keyboard"
    aKeys(10) = ";DIK_9 On main keyboard"
    aKeys(11) = ";DIK_0 On main keyboard"
    aKeys(12) = ";DIK_MINUS On main keyboard"
    aKeys(13) = ";DIK_EQUALS On main keyboard"
    aKeys(14) = ";DIK_BACK BACKSPACE"
    aKeys(15) = ";DIK_TAB"
    aKeys(16) = ";DIK_Q"
    aKeys(17) = ";DIK_W"
    aKeys(18) = ";DIK_E"
    aKeys(19) = ";DIK_R"
    aKeys(20) = ";DIK_T"
    aKeys(21) = ";DIK_Y"
    aKeys(22) = ";DIK_U"
    aKeys(23) = ";DIK_I"
    aKeys(24) = ";DIK_O"
    aKeys(25) = ";DIK_P"
    aKeys(26) = ";DIK_LBRACKET ["
    aKeys(27) = ";DIK_RBRACKET ]"
    aKeys(28) = ";DIK_RETURN ENTER on main keyboard"
    aKeys(29) = ";DIK_LCONTROL Left CTRL Key"
    aKeys(30) = ";DIK_A"
    aKeys(31) = ";DIK_S"
    aKeys(32) = ";DIK_D"
    aKeys(33) = ";DIK_F"
    aKeys(34) = ";DIK_G"
    aKeys(35) = ";DIK_H"
    aKeys(36) = ";DIK_J"
    aKeys(37) = ";DIK_K"
    aKeys(38) = ";DIK_L"
    aKeys(39) = ";DIK_SEMICOLON"
    aKeys(40) = ";DIK_APOSTROPHE"
    aKeys(41) = ";DIK_GRAVE Grave accent (`)"
    aKeys(42) = ";DIK_LSHIFT Left SHIFT"
    aKeys(43) = ";DIK_BACKSLASH"
    aKeys(44) = ";DIK_Z"
    aKeys(45) = ";DIK_X"
    aKeys(46) = ";DIK_C"
    aKeys(47) = ";DIK_V"
    aKeys(48) = ";DIK_B"
    aKeys(49) = ";DIK_N"
    aKeys(50) = ";DIK_M"
    aKeys(51) = ";DIK_COMMA"
    aKeys(52) = ";DIK_PERIOD On main keyboard"
    aKeys(53) = ";DIK_SLASH Forward slash (/)on main keyboard"
    aKeys(54) = ";DIK_RSHIFT Right SHIFT"
    aKeys(55) = ";DIK_MULTIPLY Asterisk on numeric keypad"
    aKeys(56) = ";DIK_LMENU Left ALT"
    aKeys(57) = ";DIK_SPACE Spacebar"
    aKeys(58) = ";DIK_CAPITAL CAPS LOCK"
    aKeys(59) = ";DIK_F1"
    aKeys(60) = ";DIK_F2"
    aKeys(61) = ";DIK_F3"
    aKeys(62) = ";DIK_F4"
    aKeys(63) = ";DIK_F5"
    aKeys(64) = ";DIK_F6"
    aKeys(65) = ";DIK_F7"
    aKeys(66) = ";DIK_F8"
    aKeys(67) = ";DIK_F9"
    aKeys(68) = ";DIK_F10"
    aKeys(69) = "vDIK_NUMLOCK"
    aKeys(70) = ";DIK_SCROLL SCROLL LOCK"
    aKeys(71) = ";DIK_NUMPAD7"
    aKeys(72) = ";DIK_NUMPAD8"
    aKeys(73) = ";DIK_NUMPAD9"
    aKeys(74) = ";DIK_SUBTRACT Hyphen (minus sign) on numeric keypad"
    aKeys(75) = ";DIK_NUMPAD4"
    aKeys(76) = ";DIK_NUMPAD5"
    aKeys(77) = ";DIK_NUMPAD6"
    aKeys(78) = ";DIK_ADD Plus sign on numeric keypad"
    aKeys(79) = ";DIK_NUMPAD1"
    aKeys(80) = ";DIK_NUMPAD2"
    aKeys(81) = ";DIK_NUMPAD3"
    aKeys(82) = ";DIK_NUMPAD0"
    aKeys(83) = ";DIK_DECIMAL Period (decimal point) on numeric keypad"
    aKeys(87) = ";DIK_F11"
    aKeys(88) = ";DIK_F12"
    aKeys(86) = ";DIK_F13"
    aKeys(84) = ";DIK_F14"
    aKeys(85) = ";DIK_F15"
    aKeys(156) = ";DIK_NUMPADENTER"
    aKeys(157) = ";DIK_RCONTROL Right CTRL key"
    aKeys(91) = ";DIK_NUMPADCOMMA Comma on NEC PC98 numeric keypad"
    aKeys(181) = ";DIK_DIVIDE Forward slash (/)on numeric keypad"
    aKeys(183) = ";DIK_SYSRQ"
    aKeys(184) = ";DIK_RMENU Right ALT"
    aKeys(199) = ";DIK_HOME"
    aKeys(200) = ";DIK_UP Up arrow"
    aKeys(201) = ";DIK_PRIOR PAGE UP"
    aKeys(203) = ";DIK_LEFT Left arrow"
    aKeys(205) = ";DIK_RIGHT Right arrow"
    aKeys(207) = ";DIK_END"
    aKeys(208) = ";DIK_DOWN Down arrow"
    aKeys(209) = ";DIK_NEXT PAGE DOWN"
    aKeys(210) = ";DIK_INSERT"
    aKeys(211) = ";DIK_DELETE"
    aKeys(219) = ";DIK_LWIN Left Windows key"
    aKeys(220) = ";DIK_RWIN Right Windows key"
    aKeys(221) = ";DIK_APPS Application key"
    aKeys(116) = ";DIK_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
Иными словами, опять же - в таймере, но не просто так (GetAsyncKeyState), а через жопу (DirectX7).

Ммм, цензура... :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам