Håller på att göra en keylogger där ja använder mig av en timer för att registrera vilka tangenter som är ner tryckta.. själva registreringen funkar bra, men ja skulle vilja veta om de finns något sätt att få reda på om shift är ner tryckt. efter som själva app fönstret inte e uppe så kan jag ju inte använda mig av t.ex text1.keydown och liknande.. Hej, finns det anledningar att veta om shift är nertryckt? Jag föreslår att du använder en "Hook" och läser av systemets tangentbordsmeddelande och på så sätt kan känna av all tangentnedslag. Jag vill bara flika in att jag gjort en keylogger förrut med bla exempelkod från pellesoft, den koden förväxlades med viruset "buggbear" eller va det hette. Virusskyddet sa ifrån.är shift ner tryckt
skulle oxå vilja veta om man kan få fram ifall caps-lock, num-lock är på
tack på förhand
*EDIT*
har tänkt lite gran och har kommit på en sak som skulle kunna funka.. kan man på något sätt få fram vilket värde shitf har.. har för mig att shift nertryckt ska ha 1 och inte så ligger de på 0
*/EDIT*
//kempeSv: är shift ner tryckt
Jag menar, du får tex 97 i ascii om du trycker på "A" utan shift, 65 om du trycker på "A" MED shift.
Alla knappar som ger ett asciivärde får ett annat värde med shift nere, därför undrade jag om det finns anledning att kolla om endast shift är nere?
/BSv: är shift ner tryckt
Nedanstående exempel är tager från API-Guiden. Du kan ladda hem den här http://www.mentalis.org/vbtutor/tutmain.shtml och i den kan du söka på "SetWindowsHookEx"
<code>
'In a module
Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'if idHook is less than zero, no further processing is required
If idHook < 0 Then
'call the next hook
KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
Else
'check if SHIFT-S is pressed
If (GetKeyState(VK_SHIFT) And &HF0000000) And wParam = Asc("S") Then
'show the result
Form1.Print "Shift-S pressed ..."
End If
'call the next hook
KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
End If
End Function
'In a form, called Form1
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'set a keyboard hook
hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
End Sub
Private Sub Form_Unload(Cancel As Integer)
'remove the windows-hook
UnhookWindowsHookEx hHook
End Sub
</code>
//
JanneSv:är shift ner tryckt
/B