_IsPressed

04/09/2009 09:55 Manlius#1
Hallo Leute,
Ich habe jetzt irgend eine Taste mit _IsPressed belegt z.B. die Taste "B".
Wenn ich nun auf "B" drücke, glaubt _IsPressed, dass ich die Taste "B" mehrmals als einmal gedrückt habe.
Ich glaube, dass das daran liegt, dass _IsPressed sich zu schnell "aktualisiert".
Kann man da irgendwie was drehen, also, dass wenn man jetzt "B" drückt, dass dann _IsPressed sagt, dass "B" nur einmal gedrückt worden ist?

Danke

LG
Manlius
04/09/2009 10:44 felixli93#2
Code:
If _IsPressed ("Taste") = 1 Then
		FileWrite (...) (was auch immer)
		While _IsPressed ("Taste") = 1
			Sleep(1)
		WEnd
EndIf
vllt ja so, hab mich mit _IsPressed noch nie beschäftigt
04/09/2009 14:26 Atheuz#3
Quote:
Originally Posted by Manlius View Post
Hallo Leute,
Ich habe jetzt irgend eine Taste mit _IsPressed belegt z.B. die Taste "B".
Wenn ich nun auf "B" drücke, glaubt _IsPressed, dass ich die Taste "B" mehrmals als einmal gedrückt habe.
Ich glaube, dass das daran liegt, dass _IsPressed sich zu schnell "aktualisiert".
Kann man da irgendwie was drehen, also, dass wenn man jetzt "B" drückt, dass dann _IsPressed sagt, dass "B" nur einmal gedrückt worden ist?

Danke

LG
Manlius
In c++ mache ich das immer mit einem Break; das pausiert nicht die ausführung und die Funktion wird auch nicht weiter ausgeführt, auch wenn man draufbleibt.
04/10/2009 23:25 fieser-hund#4
Quote:
Originally Posted by felixli93 View Post
Code:
If _IsPressed ("Taste") = 1 Then
		FileWrite (...) (was auch immer)
		While _IsPressed ("Taste") = 1
			Sleep(1)
		WEnd
EndIf
vllt ja so, hab mich mit _IsPressed noch nie beschäftigt
sry, aber man sieht, dass du kene ahnung hast^^
Quote:
dllopen("user32.dll")
While 1
Sleep ( 250 )
If _IsPressed("24","user32.dll) Then
MsgBox(0,"Funktion", "Die B-Taste wurde gedrückt!")
ExitLoop
EndIf
WEnd
Nein kann man mit autoit nicht
kommt mir aber irgendwie verdächtig vor???
hast du vor ein keylogger zu bauen? das wäre hier aber nicht gerne gesehen^^
04/11/2009 02:55 scbiz#5
Quote:
Originally Posted by Atheuz View Post
In c++ mache ich das immer mit einem Break; das pausiert nicht die ausführung und die Funktion wird auch nicht weiter ausgeführt, auch wenn man draufbleibt.
if(GetAsyncKeyState(0x42) & 1) //...
04/11/2009 03:08 link#6
[C/C++] Testen, ob die B-Taste derzeit gedrückt ist:
Code:
if (HIWORD(GetAsyncKeyState('B')))
    MessageBox(NULL, ":)", NULL, MB_OK);
04/11/2009 12:55 felixli93#7
Quote:
Originally Posted by fieser-hund View Post
sry, aber man sieht, dass du kene ahnung hast^^
alles klar, überleg dir mal, was du hier schreibst, denn genau so klappt es
also mach andere nicht runter, sondern probier es vorher aus, bevor du irgendein scheiß postest
04/16/2009 22:10 fieser-hund#8
Quote:
Originally Posted by felixli93 View Post
alles klar, überleg dir mal, was du hier schreibst, denn genau so klappt es
also mach andere nicht runter, sondern probier es vorher aus, bevor du irgendein scheiß postest
tja schade, dass es nicht stimmt.
Wenn du den string "taste" ersetzt, ist es nicht gleich z.b. B oder c.
schau dir in Hilfe der _IsPressed an
04/17/2009 12:13 N.E.O.#9
Ich hatte irgendwann mal für Spiele, um ne Art MoveTo zu machen so nen Script:

PHP Code:
#include <Array.au3>
#include <misc.au3>
#include "Key.au3"

$dllDllOpen("user32.dll")
_SetupKeysGen(5"file.ini")
_KeyGen()
_Check()

Func _Check()
    
    
HotKeySet("{Ä}""_Pause")

While 
1
    
    
If _IsPressed(57$dllThen
        $t 
TimerInit()
        While 
_IsPressed(57$dll)
        
Sleep(10)
    
WEnd
    $td 
TimerDiff($t)
    ;
MsgBox(64"Taste wurde gedrückt""Die Taste  W, wurde "&$td"MS gedrückt!")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""ControlSend($W, "", "", '{W down}')")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""Sleep("&$td&")")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""ControlSend($W, "", "", '{W up}')")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""Sleep(100)")
    
    ElseIf 
_IsPressed(41$dllThen
        $t 
TimerInit()
        While 
_IsPressed(41$dll)
        
Sleep(10)
    
WEnd
    $td 
TimerDiff($t)
    ;
MsgBox(64"Taste wurde gedrückt""Die Taste  A, wurde "&$td"MS gedrückt!")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""ControlSend($W, "", "", '{A down}')")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""Sleep("&$td&")")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""ControlSend($W, "", "", '{A up}')")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""Sleep(100)")
    
    ElseIf 
_IsPressed(44$dllThen
        $t 
TimerInit()
        While 
_IsPressed(44$dll)
        
Sleep(10)
    
WEnd
    $td 
TimerDiff($t)
    ;
MsgBox(64"Taste wurde gedrückt""Die Taste  D, wurde "&$td"MS gedrückt!")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""ControlSend($W, "", "", '{D down}')")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""Sleep("&$td&")")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""ControlSend($W, "", "", '{D up}')")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""Sleep(100)")
    
    ElseIf 
_IsPressed(53$dllThen
        $t 
TimerInit()
        While 
_IsPressed(53$dll)
        
Sleep(10)
    
WEnd
    $td 
TimerDiff($t)
    ;
MsgBox(64"Taste wurde gedrückt""Die Taste  S, wurde "&$td"MS gedrückt!")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""ControlSend($W, "", "", '{S down}')")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""Sleep("&$td&")")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""ControlSend($W, "", "", '{S up}')")
    
IniWriteSection(@ScriptDir "\bla.txt""Keys""Sleep(100)")
    
EndIf
WEnd

EndFunc


Func _Pause
()
    
    
$UnPaused NOT $UnPaused
    
While $UnPaused
 Sleep
(10)
    
WEnd
EndFunc 
(C) by Me :D
04/17/2009 12:58 felixli93#10
Quote:
Originally Posted by fieser-hund View Post
tja schade, dass es nicht stimmt.
Wenn du den string "taste" ersetzt, ist es nicht gleich z.b. B oder c.
schau dir in Hilfe der _IsPressed an
meine fresse, wenn er nicht mal weiß, dass man da nicht "b" reinschreiben kann, sondern man einen code braucht, dann soll ers gleich bleiben lassen
04/18/2009 10:26 Manlius#11
Das is mir auch klar, dass man da nen Code braucht und für B bracht man *guck-in-hilfe^^* 42.
Ich hab´s jetzt so gemacht, dass ich ein Sleep gesetzt hab....