
Ich habe dieBox SimpleShareApp wird beim Login gestartet, aber die App startet ihren Einstellungsbereich direkt nachdem sie ihr Symbol in der Menüleiste geladen hat. Wenn Sie sie so einstellen, dass sie im „versteckten“ Modus startet, Systemeinstellungen > Benutzer und Gruppen > Anmeldeobjekteändert dieses Verhalten nicht.
Ich habe versucht, ein AppleScript zu erstellen und als App zu speichern, um dasBox SimpleShareApp beim Anmelden und Ausblenden des Einstellungsbereichs, aber es funktioniert nicht wie erwartet.
set tApp to "Box SimpleShare"
tell application tApp to launch
tell application "System Events"
set visible of process "Box SimpleShare" to false
end tell
Dadurch wird die App gestartet, aber dieBox SimpleShareEinstellungsbereich. Was wäre der richtige Code dafür?
Antwort1
Das Einstellungsfenster von Box ist besonders hartnäckig – es wird nicht nur bei jedem Start der Anwendung angezeigt, sondern öffnet sich auch erneut, wenn es geschlossen wird, bevor die App ihre Initialisierungssequenz abgeschlossen hat! Mit etwas GUI-Scripting kann es jedochIstmöglich, es loszuwerden. Der folgende Code startet die Anwendung, wartet, bis das Einstellungsfenster erscheint, und schließt es nach einer kurzen Verzögerung (damit es seine Initialisierungssequenz abschließen kann):
property timeOutMax : 5
property timeOutStep : 1
property boxLoadDelay : 2
set boxApp to "Box SimpleShare"
tell application boxApp to launch
set timeOutCounter to 0
tell application "System Events"
tell process boxApp
repeat while (window 1 of it exists) is false and timeOutCounter is less than timeOutMax
delay timeOutStep
set timeOutCounter to timeOutCounter + timeOutStep
end repeat
if window 1 of it exists then
delay boxLoadDelay
click (button 1 of window 1 of it)
end if
end tell
end tell
Wenn das Fenster auf Ihrem System erneut geöffnet wird, legen Sie einen höheren Wert für fest boxLoadDelay
. Wenn das Skript vor dem Laden der Anwendung eine Zeitüberschreitung erfährt, passen Sie den Wert für an timeOutMax
(und möglicherweise für timeOutStep
, wenn Sie einen viel höheren Timeout-Schwellenwert auswählen müssen).