Traymenü

  • hallo,

    da cmd-befehle für normale-user zu schwer sind, wollte ich ein traymenü in mein programm integrieren.
    das menü muss auch erst ab einem gewissen punkt erreichbar sein. um das komplette script liegt eine IF-schleife ... wenn ini existiert oder wenn sie nicht existiert.

    doch leider läuft es nicht richtig. über das traymenü hat man die möglichkeit das script zu beenden oder es zu "editieren" ... was bedeutet, dass man sich das GUI anzeigen lassen kann.

    kann mir jmd helfen?

    Zeile 234 & 748

    Spoiler anzeigen
    [autoit]


    script entfernt

    [/autoit]
  • beim ersten start des scriptes kommt ein GUI. hier kann man verschiedene einstellungen treffen, die beim nächsten boot ausgeführt werden (sind aber nicht relevant).

    dann kann man eine einstellungen treffen, die besagt, dass das script bis zum shutdown weiterlaufen soll (ohne was zu machen, es wartet nur darauf, beendet zu werden). wenn man ok klickt und die einstellungen in die ini übernommen werden, läuft das scirpt weiter (sofern die oben genannte option ausgewählt wurde). während dieser zeit soll man über das traymenü die einstellungen editieren können. also rechtsklick und "edit" und es soll wieder das GUI erscheinen, wo man dann seine einstellungen wieder ändern kann.
    hier wäre im grunde ja nur @sw_show/hide einzusetzen (zeile 811/842).
    das klappt aber irgendwie nicht =/

    das wäre Nr. 1 ... Nr.2 ist, wenn das script sich nach dem nächsten boot selber startet. dann natürlich ohne GUI (da ja alle einstellungen getroffen wurden). also führt es die gewünschen aktionen aus, und wartet dann wieder darauf, dass es beendet wird. auch hier soll man, mit einem klick auf "edit" seine einstellungen editieren können, also müsste wieder das GUI angezeigt werden.

    das gleiche kann ich auch über die cmd (-edit) machen, was schon integriert ist und auch funktioniert. aber das gleiche über ein traymenü anzuwenden, schlägt bei mir fehl.

    "Exit" über das traymenü funzt einwandfrei, aber sobald ich "edit" auswähle, hat das script eine auslastung von 90%. dazu soll es natürlich zu jederzeit möglich sein, "edit" auszuführen (bei einem test könnte ich "edit" 1 mal aufrufen, danach nicht mehr ... sofern "edit" jetzt aufgerufen wird, geht "exit" auch nicht mehr) ... also alles noch bissel verbuggt *g*

    hoffe das jetzt einiges klarer ist =)

  • so, der teufel lag im detail und war hier versteckt

    [autoit]

    ;alte ini existiert
    Func _OldIniExist()

    ;schließe laufendes altes script
    If _Singleton(@ScriptName, 1) = 0 Then
    Do
    $PID = ProcessExists(@ScriptName)
    If $PID = @AutoItPID Then ContinueLoop
    ProcessClose($PID)
    Until ($PID <> 0)
    EndIf

    [/autoit]

    traymenu hat funktioniert, aber hier ist er hängengeblieben. funktion war übersprünglich für die cmd-befehle, da dort eine 2te instanz gestartet wurde, was beim traymenu nicht der fall war =)