| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Outlaw
Anmeldedatum: 14.10.2006 Beiträge: 463
|
Verfasst am: Do Mai 29, 2008 5:09 pm Titel: f3 taste an/aus |
|
|
Hallo,
wie kann ich bei der F3 taste das laufende script bei wiederbetätigen der taste stoppen?
| Code: |
f3::
f3start:
send, 1
send, 2
send, 3
gosub, f3start
return |
edit: ahh ich habs schon trotzdem vielen dank!
| Code: | f3::
loop,
{
Send 1
Send 2
Send 3
Sleep, 50
if GetKeyState("f3")
Break
}
Return |
_________________ MfG,
Outlaw |
|
| Nach oben |
|
 |
Bentschi
Anmeldedatum: 03.05.2008 Beiträge: 25
|
Verfasst am: Fr Mai 30, 2008 4:52 am Titel: |
|
|
Was hältst du hiervon?
_________________ Mein Name ist Hase
und ich weis von NIX. |
|
| Nach oben |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1232 Wohnort: 127.0.0.1
|
Verfasst am: Fr Mai 30, 2008 3:23 pm Titel: |
|
|
ich würde das so lösen
| Code: | f3::SetTimer, 123Senden, % (x:=!x) ? 50: "OFF"
123Senden:
Send 123
Return
|
grüße
derRaphael
edit 2x typo korrigiert _________________
Zuletzt bearbeitet von DerRaphael am Sa Mai 31, 2008 2:31 am, insgesamt 2-mal bearbeitet |
|
| Nach oben |
|
 |
fredchf
Anmeldedatum: 18.09.2006 Beiträge: 716 Wohnort: Deutschland
|
Verfasst am: Fr Mai 30, 2008 8:45 pm Titel: |
|
|
hallo DerRaphael,
interessant! ich glaube zwar irgendwie das du dieses kontrukt schon einmal vorgestellt hast,aber vielleicht wärst du dennoch bereit es hier näher zu erläutern!?
was wird denn hier genau abgefragt?
_________________ Mit freundlichen Grüßen
fredchf |
|
| Nach oben |
|
 |
DerRaphael
Anmeldedatum: 09.01.2008 Beiträge: 1232 Wohnort: 127.0.0.1
|
Verfasst am: Sa Mai 31, 2008 2:52 am Titel: |
|
|
| Code: | | (x:=!x) ? "ausdruck ist wahr" : "ausdruck ist nicht wahr" |
in dem ternary ausdruck wird nicht nur die variable X definiert, sondern auch ihr zustand abgefragt (das mit dem definieren vor abfrage ist eine besonderheit von ausdrücken in ahk)
im wesentlichen wird die variable x immer in ihr gegenteil verkehrt. man spricht dabei von einem boolschen NOT (nicht) Operand. Dieser wird durch das Ausrufezeichen deklariert. Der NOT operand invertiert bit zustände. (aus 0 macht 1 und umgedreht)
man könnte auch schreiben
X ist nicht das X
also ist X bei der prüfung immer das gegenteil von seinem vorherigen zustand.
da X zu anfang nicht definiert ist (quasi gleich NULL) wird bei NICHT das X demselbigen der Wert 1 zugewiesen. Bei wiederholtem Aufruf wandelt es in das Gegenteil und prüft danach dessen Zustand.
Da das X erst zugewiesen wird, dann geprüft wird, trifft es beim ersten aufruf zu (weil aus null ein wurde) beim nächsten hingegen nicht mehr.
Nebenbei:
| Code: |
msgbox % (!(c:=0) && (++c)) ? "Wahr" : "Falsch"
msgbox % (!(d:=0) && (d++)) ? "Wahr" : "Falsch"
|
wenn du diesen code ausführst, stellst du fest, dass nur durch die unterschiedliche plazierung der pluszeichen jeweils ein unterschiedliches ergebnis erzielt wird. die erste klammer mit vorangestelltem ausrufezeichen prüft, ob auch c bzw d mit null initialisiert wurde. alternativ könnte man varsetcapacity(c,0) in klammern ohne ausrufezeichen verwenden.
im ersten fall wird zuerst c um eins erhöht, dann geprüft
im zweiten fall zuerst geprüft, dann d erhöht
grüße
derRaphael _________________
|
|
| Nach oben |
|
 |
fredchf
Anmeldedatum: 18.09.2006 Beiträge: 716 Wohnort: Deutschland
|
Verfasst am: Sa Mai 31, 2008 7:08 am Titel: |
|
|
hallo derRaphael,
danke!
ich glaube,jetzt hab ich's!  _________________ Mit freundlichen Grüßen
fredchf |
|
| Nach oben |
|
 |
|