Страница: 1 | 
		
		 
			   
			 
			 Как отслеживать нажатия клавиш. ***!***Не только при активной форме***!*** Чтобы узнавать о каждой нажатой клавиши. Кстати, мож знаете как скрыть процесс приложения в XP... 
			 
			 кинь на форму таймер с интервалом 35, и лейбл Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer Private Sub Timer1_Timer() Dim i As Byte For i = 0 To 254 If GetAsyncKeyState(i) Then Label1 = Chr$(i) Next i End Sub Зы пока мы только над итим думаем То, что тебе первым посоветовали, работать не совсем будет. Коды у этой функции совпадают только с буквами. Остальные сам натыкай. И данная реализаци у меня очень хреново работала поэтому испотзуй сразу два апи - GetAsyncKeyState и GetKeyState. Ну типа вот так: Работает очень быстро... И с простым таймером. Чтоб с апи-таймером не заморачиваться... Вот примерный код: Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Public KeyFGKS(255) As Integer Function KeyScan() As String For i = 1 To 255    If Not GetKeyState(i) = KeyFGKS(i) And GetAsyncKeyState(i) <> 0 Then      'Если кнопка была нажата       KeyFGKS(i) = GetKeyState(i)       If i >= 68 And i <= 90 Then          'Определение клавиши          KeyScan = Chr(i)          Exit For       End If       Select Case i          Case 1             KeyScan = "LeftMouse"          Case 2             KeyScan = "RightMouse"          Case 4             KeyScan = "MouseScroll"          Case 192             KeyScan = "~"          Case 49             KeyScan = "1"          Case 50             KeyScan = "2"          Case 51             KeyScan = "3"          Case 52             KeyScan = "4"          Case 53             KeyScan = "5"          Case 54             KeyScan = "6"          Case 55             KeyScan = "7"          Case 56             KeyScan = "8"          Case 57             KeyScan = "9"          Case 48             KeyScan = "0"          Case 189             KeyScan = "-"          Case 187             KeyScan = "="          Case 220             KeyScan = "\"          Case 8             KeyScan = "BackSpace"          Case 9             KeyScan = "TAB"          Case 20             KeyScan = "CapsLock"          Case 160             KeyScan = "LShift"          Case 161             KeyScan = "RShift"          Case 162             KeyScan = "LCtrl"          Case 163             KeyScan = "RCtrl"          Case 164             KeyScan = "LAlt"          Case 165             KeyScan = "RAlt"          Case 32             KeyScan = " "          Case 144             KeyScan = "NumLock"          Case 96             KeyScan = "NP0"          Case 97             KeyScan = "NP1"          Case 98             KeyScan = "NP2"          Case 99             KeyScan = "NP3"          Case 100             KeyScan = "NP4"          Case 101             KeyScan = "NP5"          Case 102             KeyScan = "NP6"          Case 103             KeyScan = "NP7"          Case 104             KeyScan = "NP8"          Case 105             KeyScan = "NP9"          Case 27             KeyScan = "Esc"          Case 112             KeyScan = "F1"          Case 113             KeyScan = "F2"          Case 114             KeyScan = "F3"          Case 115             KeyScan = "F4"          Case 116             KeyScan = "F5"          Case 117             KeyScan = "F6"          Case 118             KeyScan = "F7"          Case 119             KeyScan = "F8"          Case 120             KeyScan = "F9"          Case 121             KeyScan = "F10"          Case 122             KeyScan = "F11"          Case 123             KeyScan = "F12"          Case 111             KeyScan = "NP/"          Case 106             KeyScan = "*"          Case 109             KeyScan = "NP-"          Case 107             KeyScan = "+"          Case 114             KeyScan = "F3"          Case 110             KeyScan = "NP."          Case 44             KeyScan = "PrintScreen"          Case 145             KeyScan = "ScrollLock"          Case 19             KeyScan = "PauseBreak"          Case 33             KeyScan = "PageUp"          Case 34             KeyScan = "PageDown"          Case 36             KeyScan = "Home"          Case 35             KeyScan = "End"          Case 45             KeyScan = "Insert"          Case 46             KeyScan = "Delete"          Case 39             KeyScan = "Right"          Case 38             KeyScan = "Up"          Case 37             KeyScan = "Left"          Case 40             KeyScan = "Down"          Case 13             KeyScan = vbCrLf          Case 191             KeyScan = "/"          Case 188             KeyScan = ","          Case 190             KeyScan = "."          Case 219             KeyScan = "["          Case 221             KeyScan = "]"          Case 186             KeyScan = ";"          Case 222             KeyScan = "'"       End Select       Exit For                            'Если кнопка была нажата, то выход из цикла после выполнения всех процедур    End If Next i End Function Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Нажатие клавиш...
     
    
Добавлено: 27.01.04 15:43
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 Дмитрий Щапов
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 3
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 NeForm@t
![]()
![]()
![]()
ICQ: 252999255 
Вопросов: 36
Ответов: 247
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  27.01.04 15:52
       
    
       
  
  
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 NovichoK
![]()
![]()
Вопросов: 72
Ответов: 147
      
 Профиль |  | #2
       
Добавлено:  27.01.04 23:09
       
    
       
  
Чтоб отслеживать нажатия клавиш нужно поставить системный хук, видишь мой вопрос выше чуть-чуть находиться, так если тебе надо для 98 то там найдешь пример, если же нет то жди может мне ответят...
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 goodroman
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
ICQ: 307245054 
Вопросов: 5
Ответов: 7
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  31.01.04 22:09