[AutoIt] HOTKEY BRAUCHE HILFE

07/01/2010 13:44 nonsev#1
mein problem ist:
Ich hab gelesen das wenn man ein hotkeyset einstellt immer
while 1 drin sein muss
doch ich möchte, das wenn man z.B. "n" drückt, dann wird das "n" gelöscht mit backspace, und dann mit send ("Günter")

nur wenn ich den script starte dann passiert folgendes-->
"n" wird gelöscht und die ganze zeit Günter geschrieben!!!!

mein code
Code:
HotKeySet ("n","name")
while 1
sleep ("100")
wend

func name()
send ("{BACKSPACE}")
send ("Günter")
EndFunc
07/01/2010 13:54 ddl#2
Hey du hast ein Manko in au3 gefunden, wo ich noch nicht kannte^^

Richtiger Code:
Code:
HotKeySet("n","name")
while 1
	sleep ("100")
wend

func name()
	HotKeySet("n")
	send("Günter")
	HotKeySet("n","name")
EndFunc
Erklärung:
Hotkeyset scheint eine Art Low Level Keyboard hook zu erstellen und dort dann den jeweiligen Buchstaben abzufangen.
Da in Günter ein "n" ist, wird die Funktion ständig neu aufgerufen.
07/01/2010 13:56 bladerofdarknes#3
machs doch einfach so:

Quote:
HotKeySet("n", "name")

Func name()
HotKeySet("n")
Send("Günter")
HotKeySet("n", "name")
EndFunc ;==>name

While 1
Sleep("100")
WEnd
mist zu langsam :D
07/01/2010 15:01 nonsev#4
DANKEE
07/01/2010 15:46 nonsev#5
noch ein Problem -.-
ich möchte auch noch "v" als hotkey benutzen (als nachnamen).
hat der name aber ein v im wort schreib gleich den nachnamen ôô?
HILFEE
mfg nonsev
07/01/2010 18:17 bladerofdarknes#6
Quote:
HotKeySet("n", "name")
HotKeySet("v", "nachname")

Func name()
HotKeySet("n")
Send("Günter")
HotKeySet("n", "name")
EndFunc ;==>name

Func nachname()
HotKeySet("v")
Send("NACHNAME")
HotKeySet("v", "name")
EndFunc
While 1
Sleep("100")
WEnd
kannst auch mal brain benutzen wenn du willst!
07/01/2010 20:06 nonsev#7
brain benutzen???
wie wärs wenn du dein brain benutzen ??
da "NACHNAME" ein "n" im wort hat
wird automatisch der hotkey "n" gedrückt----->statt "NACHNAME" wird Günter geschrieben
07/01/2010 20:09 bladerofdarknes#8
sagmal bist du clown paranoid?
du sollst bei nachname deinen nachnamen eintragen
aber ne komm geh sterben, kack leecher noob
07/01/2010 20:24 huberhans#9
Quote:
Originally Posted by bladerofdarknes View Post
sagmal bist du clown paranoid?
du sollst bei nachname deinen nachnamen eintragen
aber ne komm geh sterben, kack leecher noob
Wenn aber jetzt sein Nachname ebenfalls ein "N" beinhaltet (z.B. Hund), wird durch das Senden des Nachnamens eben die Funktion aktiviert, die den Vornamen schreibt.

Ich persönlich würde dazu raten, nicht nur mit den Buchstaben zu arbeiten, sondern eine Tastenkombination zu verwenden. So zum Beispiel STRG+N oder STRG+V

Lösung für die "Nur-Buchstaben-Variante":

PHP Code:
HotKeySet("n""name")
HotKeySet("v""nachname")

Func name()
HotKeySet("n")
HotKeySet("v")
Send("Günter")
HotKeySet("n""name")
HotKeySet("v""nachname")
EndFunc ;==>name

Func nachname
()
HotKeySet("v")
HotKeySet("n")
Send("NACHNAME"); <== Hier kommt dein Nachname rein
HotKeySet
("v""nachname")
HotKeySet("n""name")
EndFunc

While 1
Sleep
("100")
WEnd 
07/01/2010 20:41 nonsev#10
danke
*klick auf thanks button*
07/01/2010 22:03 PenGuin :O#11
Wenn man schon solch ein Konstrukt wählt, kann man auch gleich mit _IsPressed arbeiten:

Code:
#include <Misc.au3>

HotKeySet("{ESC}", "_Exit")

While 1
	Sleep(100)
    If _IsPressed('4E') Then
        _Vorname("Günter")
	ElseIf _IsPressed('56') Then
		_Nachname("Nachname") ;<-- Hier einfach in die Klammer den Nachnamen, aber "" nicht vergessen!
    EndIf
WEnd

Func _Exit()
	Exit
EndFunc

Func _Vorname($SName)
	Send("{BACKSPACE}")
	Send($sName)
EndFunc

Func _Nachname($sName)
	Send("{BACKSPACE}")
	Send($sName)
EndFunc