Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 10.10.2005, 21:02 Titel: Tasten abfrage bei ncht aktiven Fenster |
|
|
Hallo
Ich habe vor ein Programm zu programmieren welches im hintergrund läuft und mitzählt wi oft man welche taste am tag gedrückt hat.
Wie man ein programm im hintergrund laufen läst weiß ich mitlerweile
aber wie kann ich jetzt die tastartur abfragen?
vielen dank für eure antworten Thorben |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 10.10.2005, 21:28 Titel: |
|
|
Hallo.
Dafür musst du auf WinAPIs zurückgreifen. Habe dazu mal einen kleinen code geschrieben, wo allerdings der unterschied zwischen groß und klein nicht ganz klappt.
Code: |
Declare Function GetAsyncKeyState Lib "user32" ( _
ByVal vKey As Long) As Integer
screen 12
dim i as ubyte
do
for i = 0 to 254
a=GetAsyncKeyState(i)
if a <> 0 and i <> 166 and i <> 16 then '166 und 16 gehoeren zu schift, sollen nicht ueberprueft werden
if i <> 160 then
if a = 1 then
tmp$=UCASE$(CHR$(i)) 'klappt noch nicht ganz, buchstaben groesser bzw. kleiner machen
ELSE 'wenn a nicht 1 ist, dann ist das zeichen oft(vll. auch immer) groß
tmp$=LCASE$(CHR$(i))
End if
end if
do :loop until GetAsyncKeyState(i)=0 'so lange warten, bis die taste nicht mehr gedrueckt wird
exit for 'um doppel Zaehlungen zu vermeiden
end if
next i
locate 1,1: print tmp$;" ";asc(tmp$);" "
sleep 1
loop until inkey$ <>"" 'so lange laufen, bis in dem aktiven(freebasic-programm) fenster eine taste gedrückt wurde
|
|
|
Nach oben |
|
|
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 11.10.2005, 13:06 Titel: |
|
|
Hallo!
Klingt irgendwie nach einem Keylogger?!
Oder irre ich mich da (wieder)?
Greetings,
Mao _________________ Eine handvoll Glück reicht nie für zwei.
--
|
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 12.10.2005, 16:15 Titel: |
|
|
Hallo.
Ich habe mal (NICHT UM ZU SPIONIEREN) versucht, ein Programm zu machen, welches jede Taste aufzeichnet und am ende in eine Datei speichert. Doch das klappt nie.
Code: |
Declare Function GetAsyncKeyState Lib "user32" ( _
ByVal vKey As Long) As Integer
dim i as ubyte
open "D:\test.txt" for output as #1
do
for i = 0 to 254
a=GetAsyncKeyState(i)
if a <> 0 and i <> 166 and i <> 16 then '166 und 16 gehoeren zu schift, sollen nicht ueberprueft werden
if i <> 160 then
if a = 1 then
tmp$+=UCASE$(CHR$(i)) 'klappt noch nicht ganz, buchstaben groesser bzw. kleiner machen
ELSE 'wenn a nicht 1 ist, dann ist das zeichen oft(vll. auch immer) groß
tmp$+=LCASE$(CHR$(i))
End if
end if
do :loop until GetAsyncKeyState(i)=0 'so lange warten, bis die taste nicht mehr gedrueckt wird
exit for 'um doppel Zaehlungen zu vermeiden
end if
next i
sleep 1
loop until inkey$ <>"" 'so lange laufen, bis windows zum beenden die Tastenkombination CHR$(255)+"X" sendet (glaube ich) :-)
print #1,tmp$
close #1
end
|
edit:
hab ne notlösung:
Code: |
Declare Function GetAsyncKeyState Lib "user32" ( _
ByVal vKey As Long) As Integer
dim i as ubyte
do
for i = 60 to 200
a=GetAsyncKeyState(i)
if a <> 0 and i <> 166 and i <> 16 then '166 und 16 gehoeren zu schift, sollen nicht ueberprueft werden
if i <> 160 then
if a = 1 then
tmp$+=UCASE$(CHR$(i)) 'klappt noch nicht ganz, buchstaben groesser bzw. kleiner machen
ELSE 'wenn a nicht 1 ist, dann ist das zeichen oft(vll. auch immer) groß
tmp$+=LCASE$(CHR$(i))
End if
end if
do :loop until GetAsyncKeyState(i)=0 'so lange warten, bis die taste nicht mehr gedrueckt wird
exit for 'um doppel Zaehlungen zu vermeiden
end if
next i
if LEN(tmp$)>50 then
open "D:\test.txt" for append as #1
print #1,tmp$;
tmp$=""
close #1
end if
sleep 1
loop until inkey$ <>"" 'so lange laufen, bis in dem aktiven(freebasic-programm) fenster eine taste gedrückt wurde
'oder windows zum beenden die Tastenkombination CHR$(255)+"X" sendet (glaube ich) :-
end
|
|
|
Nach oben |
|
|
Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 17.10.2005, 14:12 Titel: |
|
|
Vielen Dank habt mir sehr geholfen! |
|
Nach oben |
|
|
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 21.10.2005, 15:13 Titel: |
|
|
Da fällt mir gerade auf, wenn du ein grafik-fenster hast, dann kannst du auch multikey benutzen. |
|
Nach oben |
|
|
|