AppleScript hat den Fokus auf das Terminalfenster gesetzt

Ich habe ein AppleScript, das die Position und die Größe des Anwendungsterminals ändert:

Wie hier:

tell application "Terminal"
   set position of front window to {1, 1}
   set size of front window to {1, 1}
end tell

Wenn ich die Größe des Fensters auf setze {1, 1}, wird es so klein, dass es nicht besser sichtbar ist.

Meine Frage ist, wie kann ich den Fokus des Fensters für eine bestimmte Zeit festlegen, sodass weder Benutzeraktivitäten noch Anwendungen den Fokus des Terminalfensters erfassen können?

Der beste Weg wäre mit AppleScript, aber jede programmgesteuerte Lösung mit Python wäre schön.

Könnten Sie präzisieren, was ein typischer Anwendungsfall für das wäre, wonach Sie fragen? Aus deiner Frage geht nicht hervor, was du erreichen willst.
Ich entwickle mit einem Teensy-Board, wo sich das Terminal öffnet und einige Befehle im Terminalfenster selbst eingibt. Ich möchte, dass KEINE Benutzeraktion möglich ist, während das Terminalfenster geöffnet ist, weder Tastatur noch Mausaktion.
Sie könnten den Benutzern einfach sagen, dass sie nichts eingeben/tun sollen.?
Das ist nicht möglich, jede Benutzeraktion sollte ignoriert werden, während das Terminal geöffnet und fokussiert ist.
Gibt es einen Grund, warum Sie kein Shell-Skript verwenden können, um dies zu erreichen? Es scheint unnötig, UI-Scripting zu verwenden, um Befehle über das Terminal auszuführen

Antworten (2)

activate application "Terminal"
tell application "Terminal"
   set position of front window to {1, 1}
   set size of front window to {1, 1}
end tell
tell application "System Events" to keystroke "your message here\rexit\r"

Zusätzlich können Sie Hilfe von AppleScript erhalten, um eine aktive Anwendung zu erhalten

um den Fokus wieder auf die ursprüngliche Anwendung zu richten

Ihre Antwort ist nicht richtig, aber Ihr Hinweis auf die Frage AppleScript Get Active Application hat mir sehr geholfen!
"Ihre Antwort ist nicht richtig", hilft der Community nicht weiter. Bitte teilen Sie Details mit, und wenn Sie der Meinung sind, dass es eine bessere Lösung gibt, teilen Sie dies auch mit.
Schau dir meine Antwort an

Mit Hilfe von javadevg und der Antwort von AppleScript get active Application habe ich folgende Lösung erstellt:

tell application "Terminal"
  activate
  set position of front window to {1, 1}
  set size of front window to {111, 111}
end tell

tell application "System Events"
  set frontmostProcess to first process where it is frontmost
  set visible of frontmostProcess to false
  repeat while (frontmostProcess is frontmost)
    delay 0.1
  end repeat
  set secondFrontmost to name of first process where it is frontmost
  set frontmost of frontmostProcess to true
end tell

tell application "System Events"
  set activeApp to name of first application process whose frontmost is true
  repeat while (get name of every application process) contains "Terminal"
    try
        activate application "Terminal"
    end try
  end repeat
end tell

Ich arbeite nicht viel mit AppleScript, entschuldigen Sie bitte meinen Programmierstil usw.

Mit diesem Skript wird ein Terminal geöffnet, und es verliert den Fokus nicht, bis das Terminal geschlossen wird.