|
You last visited: Today at 03:20
Advertisement
Eine Taste eine Zeit lang Zeitlang runter drücken
Discussion on Eine Taste eine Zeit lang Zeitlang runter drücken within the AutoIt forum part of the Coders Den category.
07/11/2009, 14:13
|
#1
|
elite*gold: 0
Join Date: Jul 2009
Posts: 88
Received Thanks: 32
|
Eine Taste eine Zeit lang Zeitlang runter drücken
Hallo ich bin AutoIt Anfänger und beschäftige mich schon länger mit der Frga ewie man es ins Script schreibt das nicht nur die Taste gesendet wird sondern auch für eine selbst bestimmte Zeit runter gedrückt wird...
Würdet ihr mir bitte ein Beispiel machen??
mfg Nachwuchs Scripter ProImba   
|
|
|
07/11/2009, 16:11
|
#2
|
elite*gold: 2
Join Date: Oct 2006
Posts: 218
Received Thanks: 138
|
Das geht mit HotKeySet
Als Beispiel:
Code:
HotKeySet("g","_Test")
While 1
Sleep(50)
WEnd
Func _Test()
Sleep(50)
EndFunc
das kleine g wird nun abgefangen und nicht mehr weitergesendet.
Edit: Ich habe die Frage falsch gelesen und dachte du meintest unterdrückt
Da es schon ewig her ist das ich mit Send Befehlen gearbeitet habe weiß ich nicht ob
es dafür eine direkte Methode gibt. Du kannst doch einfach den Send Befehl in eine
Schleifen schreiben und sooft wiederholen lassen wie du möchtest.
|
|
|
07/11/2009, 16:42
|
#3
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
Lies dir einfach mal die Autoit Hilfe zum Thema send bis zum ende durch!
|
|
|
07/11/2009, 17:05
|
#4
|
elite*gold: 2
Join Date: Oct 2006
Posts: 218
Received Thanks: 138
|
Sein Problem ist das er eine Taste über einen Zeitraum gedrückt haben will, was mit dem
regulären Send Befehl nicht geht (ein Key Down Event wartet nicht auf Key Up).
Eine Möglichkeit wäre folgendes:
$dauer = 1000
$zeit = TimerInit()
Do
Send("{q}") ;meinetwegen auch Send("{q DOWN}") mit anschließenden UP
Until TimerDiff($zeit) >= $dauer
|
|
|
07/12/2009, 12:51
|
#5
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
Das was du Mankana da in deinem Pseudocode machen willst is nichts anderes als die taste immer wieder zu tippen, also vom prinzip her so:
Code:
...
Send("a")
Sleep(10)
Send("a")
Sleep(10)
Send("a")
Sleep(10)
...
Die Frage war aber
Quote:
Originally Posted by ProImba
...wie man es ins Script schreibt das nicht nur die Taste gesendet wird sondern auch für eine selbst bestimmte Zeit runter gedrückt wird...
|
Und in der Autoit Hilfe steht:
Quote:
Um eine Taste gedrückt zu lassen (brauchbar eigentlich nur für Spiele):
Send("{a down}") ;Hält die Taste A gedrückt
Send("{a up}") ;Lässt die Taste wieder los
|
|
|
|
07/12/2009, 13:57
|
#6
|
elite*gold: 2
Join Date: Oct 2006
Posts: 218
Received Thanks: 138
|
Und beantwortet dein aus der Hilfe genommenes Zitat die Frage?
Vielleicht solltest du den Befehl einfach mal ausprobieren.
Ich habe außerdem dazu geschrieben warum das nicht so geht wie er es sich scheinbar
wünscht, deswegen habe ich ihn ein Workaround präsentiert.
|
|
|
07/12/2009, 13:59
|
#7
|
elite*gold: 20
Join Date: Feb 2007
Posts: 3,080
Received Thanks: 4,294
|
| Moep | hat doch vollkommen recht.
Send("{a down}") ;Hält die Taste A gedrückt
sleep(die zeit die die taste gedrückt werden soll)
Send("{a up}") ;Lässt die Taste wieder los
bei diversen onlinegames hat das schon immer so funktioniert.
|
|
|
07/12/2009, 15:12
|
#8
|
elite*gold: 2
Join Date: Oct 2006
Posts: 218
Received Thanks: 138
|
Bei mir funktionierte das nicht, da wurde nur ein kurzer Tastenanschlag ausgegeben
unabhängig von der Zeitdifferenz zwischen down und up.
|
|
|
07/12/2009, 20:26
|
#9
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
Danke kknb
Die Taste wird für die angegebene zeit gedrückt, probiers mal in einem game aus.
Du erwartes vielleicht das bei den key down Befehl in einer textdatei "aaaaaaaaa..." stehen müsste, was jedoch nicht der Fall ist. Liegt vielleicht daran das Windows ein gedrückt halten einer taste nach einer bestimmten Zeit so ausgibt. Aber anscheinend umgeht man mit der key down func diese windows func.
|
|
|
07/12/2009, 21:18
|
#10
|
elite*gold: 26
Join Date: Jun 2009
Posts: 972
Received Thanks: 228
|
Quote:
|
Originally Posted by Mankana
Bei mir funktionierte das nicht, da wurde nur ein kurzer Tastenanschlag ausgegeben
unabhängig von der Zeitdifferenz zwischen down und up.
|
Auch wenn Moep sschon alles beantwortet hat kannst Du aber leicht testen ob die Taste wirklick runter gedrückt wurde mach es doch einfach so :
PHP Code:
send ("{f down}") sleep (5000) send ("{f up}") inputbox ("","")
|
|
|
07/13/2009, 15:11
|
#11
|
elite*gold: 0
Join Date: Aug 2008
Posts: 820
Received Thanks: 909
|
SCORNI deine kommentare sind total unangebracht.
was sagt eine leere inputbox darüber aus, ob die taste nun gedrückt wurde oder nicht?
die inputbox wird so oder so erscheinen!
|
|
|
07/13/2009, 15:39
|
#12
|
elite*gold: 26
Join Date: Jun 2009
Posts: 972
Received Thanks: 228
|
@felixli93
aber nicht nach der zeit die du zwischen down und up angegeben hast. Die inputbox könnte man auch durch ne msgbox oder traytip ersetzen. So kann man testen ob der Befehl so ausgeführt wurde wie man ihn angegeben hat. zb auf meinem altem linux rechner spinnen manche befehle wie sleep. er macht zwar einen sleep befehl aber immer nur 1 sekunde auch wenn ich 20 angebe.
|
|
|
07/13/2009, 15:46
|
#13
|
elite*gold: 0
Join Date: Aug 2008
Posts: 820
Received Thanks: 909
|
dann tut dein linux-rechner mir leid, das ist dann wohl der einzige, der spinnt.
auf jeden fall ist es sinnlos, mit einer msgbox oder sonstigem zu überprüfen, ob ein sleep-befehl lange genug pausiert hat, denn das sollte er immer tun.
tut er das nicht, ist dein computer schrott oder autoit fehlt was
|
|
|
07/13/2009, 17:12
|
#14
|
elite*gold: 26
Join Date: Jun 2009
Posts: 972
Received Thanks: 228
|
mein pc spinnt nicht ich habe 4 rechner in meinem haus 2 xp´s 1vista 1linux und alle laufen einwandfrei. Jeder von denen kann 2 monitore nehmen und auf jedem monitor einmal nfs undercover ausführen. Jeder rechner hat 8 gb ram
Hier mal einer von den beiden xp´s
[URL=http://img200.imageshack.us/i/307200910h44min19sec.png/]

[/URL
|
|
|
07/13/2009, 17:19
|
#15
|
elite*gold: 20
Join Date: Oct 2008
Posts: 1,835
Received Thanks: 1,638
|
Na und ich hab 26 PC's hier, alle mit 10 gb Ram und 1 Terrabyte Festplatten...
Können wir jetzt diesen Online-Schwanzvergleich, den eh keiner Nachweisen kann, seien lassen und kannst du , SCORNI, aufhören alte Threads, falsche Lösungen oder unaangebrachte Kommentare zu posten?!
|
|
|
Similar Threads
|
Alle 5 Sekunden eine Taste drücken
08/28/2010 - AutoIt - 4 Replies
Könnte mir das jemand mal reinstellen?
Einfach nur den Befehl, das alle 5sek die Taste F1 gedrückt wird.
Das wäre total lieb x3
-> Ich habe WIRKLICH schon die SuFu hier und Google benutzt aber leider nicht das gefunden was ich brauche.
|
Frage : was ist das für eine taste?
05/29/2010 - AutoIt - 3 Replies
Halo leute :D
ICh wollte mal Fragen, wie diese taste in AutoIT Ausgedrückt wird : ^
Und wie Tab(das 3. über STRG) ausgedrückt wird? Ich weiss nur folgende auswendig :
! = alt-knopf
^ = strg-knopf
{Enter} = Enter-knopf
|
makro prob - wie 2 skills auf eine taste
09/06/2006 - World of Warcraft - 10 Replies
hoi
kann mir jemand sagen wie ich berserkerwut und abfangen(rang 2) auf eine makro taste bekomm?
thx im vorraus
|
All times are GMT +1. The time now is 03:24.
|
|