Hallo Leute,
wie kann ich eine Funktion bzw. eine MSGBOX aufrufen, die dann offen bleibt und aber das script weiterarbeitet.
mit dieser MSGBOX soll dann, wenn es notwendig ist, das script abgebrochen werden.
lg
TOM
Hallo Leute,
wie kann ich eine Funktion bzw. eine MSGBOX aufrufen, die dann offen bleibt und aber das script weiterarbeitet.
mit dieser MSGBOX soll dann, wenn es notwendig ist, das script abgebrochen werden.
lg
TOM
Gute Frage, ich habe oft nachsowas gesucht. Ich meine, dass es nicht möglich ist.
Ich bete auf andere positive Nachrichten für uns beide.
Weis keiner was ?
oder wie kann man das umgehen ?
mit einer eigenen GUI ??
lg
TOM
Ich hab das noch nie versucht, aber es dürfte eigentlich am leichtesten über eine GUI gehen. Eine MessageBox ist ja nur für eine Nachricht da. Dort muss man ja bestätigen...
Benutzt Koda, dann geht das sehr schnell
Ich habe es versucht mit einer GUI.
Aber gerade dort, oder gerade in meinem Script war es nicht möglich. Das einzige "Abbrechen" war, das Script selber abzubrechen, aber kein "Button" oder so.
Mein Wissensstand.
Ich hab das noch nie versucht, aber es dürfte eigentlich am leichtesten über eine GUI gehen. Eine MessageBox ist ja nur für eine Nachricht da. Dort muss man ja bestätigen...
Benutzt Koda, dann geht das sehr schnell
Ganz so einfach geht das nicht
Echtes Multitasking ist nicht möglich. Du kannst was mit AdlibEnable basteln um kontinuierlich zu ermitteln, ob abgebrochen werden soll. Die Standard-MessageBox kannst du da aber nicht verwenden.
Ganz so einfach geht das nicht
Echtes Multitasking ist nicht möglich. Du kannst was mit AdlibEnable basteln um kontinuierlich zu ermitteln, ob abgebrochen werden soll. Die Standard-MessageBox kannst du da aber nicht verwenden.
BugFix . Hab da mal ne Frage . Hab auch ein paar Scripte die ziemlich hängen wenn ich gerade mal was berechne .Des kommt warscheinlich daher , weil das Prog dann grade nicht in der Messageabrage unterwegs ist . Kann man die Prog lags mit dem OnEventMode umgehen oder bringt des keine Vorteile ? Die Andere möglichkeit wäre eine GuiMsg Abrage ohne eine While Wend Schleife innnerhal einer Funktion . Diese müßte dann mit AdlibEnable kontinuierlich abgefragt werden wenn ich deine Post rinchtig verstanden habe . Oder ? Sorry wegen dem umständlichen umschreiben mir fällt gerade nichts einfacheres ein .
Raupi : Ich bin zwar nicht BugFix ( ), aber ich würde auf jedem Fall den OnEventMode nehmen. Der ist erstens viel übersichtlicher und zweitens ruft er ja immer die Funktion auf in der dann Exit steht. Oder du kannst Esc drücken, um zu beenden, wenn du nichts anderes festgelegt hast...
BugFix : Wieso ist das nicht so einfach?? Über den OnEventMode geht das doch, oder
BugFix : Wieso ist das nicht so einfach?? Über den OnEventMode geht das doch, oder
Wenn du z.B. gerade in einer Schleife etwas abarbeitest, kann kein Ereignis des Buttons wirksam werden. Der Klick auf den Button wird dann im Tastaturpuffer aufgefangen und erst, wenn die Schleife beendet ist, kann das Ereignis verarbeitet werden. Da ist es völlig egal, ob OnEventMode oder GUIGetMsg.
Achso. Danke! Kann ich da trotzdem irgendwas machen?? ODer muss ich in dei Schleife dann immer Abfragen reinbauen. Heißt das auch, dass Hot-Keys nicht funktionieren?
Du könntest auch mit mehreren exe Dateien arbeiten, die du über dein Hauptprogramm ausführst.
Ansonsten (wie BugFix schon geschrieben hat) gibt es da nur umständliche Möglichkeiten das zu umgehen.
Ansätze für den Hotkey habe ich hier gelöst.
Den Tipp hatte ich doch schon gegeben AdlibEnable(). Schau dir das mal an. Da kannst du intervallmäßig eine Funktion ausführen lassen - auch wenn das Skript läuft.
Stimmt schon...AdlibEnable kannte ich da noch nicht.
Man kann einiges erreichen wenn man nur will, aber ich frage mich, wieso nicht einfach mit Hotkey und z.B. Tooltip anzeigen, dass abgebrochen werden kann?
Hier ein Beispiel mit MsgBox und simulierter Installation (natürlich geht's so einfach weil ich die $Abbruch-Variable sonst praktisch nach jeder Zeile uterbringen müsste oder ich mache einfach einen Exit in der Funktion Abbruch, wie man eben will.
[autoit]Global $Abbruch = 0
Local $str = "Local $x = MsgBox(48, 'Beepen abbrechen?', 'Klicken um die Installation abzubrechen')"
Run('"' & @AutoItExe & '" /AutoIt3ExecuteLine "' & $str & '"')
AdlibEnable("Abbruch", 250)
[/autoit][autoit][/autoit][autoit]#Region Installation Start
$beep = 0
While $beep < 10 And $Abbruch = 0
Beep(500, 500)
Sleep(500)
$beep +=1
WEnd
#Region Installation Ende
ControlClick("Beepen abbrechen?","","Button1")
[/autoit][autoit][/autoit][autoit][/autoit][autoit]Func Abbruch()
If Not WinExists('Beepen abbrechen?') Then
$Abbruch = 1
AdlibDisable()
EndIf
EndFunc
Danke! Das ist spitze!