Unconditionally close apps

H

hanksinclair

Mitglied
Thread Starter
Dabei seit
09.07.2006
Beiträge
50
Reaktionspunkte
0
Kann man mittels AppleScript unter vertretbarem Aufwand Programme "abschießen", also das gewünschte Programm ohne "Verwerfen/Abbrechen/Speichern"-Dialog beenden?

Hank
 
Hallo,

do shell script + kill sollte ausreichen.

Viele Grüße
 
Code:
-- welche App?
set myAppName to "iTunes"

-- dann hole mal die ID
set theProcessID to do shell script "ps ax | grep " & (quoted form of myAppName) & " | grep -v grep | awk '{print $1}'"

-- schnipp, schnapp
set AppleScript's text item delimiters to return
set theProcessID to first text item of theProcessID

-- ...und kill
if (theProcessID is not equal to "") then do shell script ("kill -9 " & theProcessID)

Schau mal bei dem grep nach, dann kannst Du Dir das mit dem schnipp, schnapp sparen.
Aber so geht es schon mal...

Viele Grüße
 
Zuletzt bearbeitet:
an die process-ID kann man mittels der system events kommen.
die technik hierfür (sowie für die abfrage, ob ein programm läuft) steckt in diesem script, dass ich mir mal für einen komfortablen "abschuss" gebastelt hatte.
 
"kill " & (unix id of application process (item 1 of killprocess) as text

Schöne Sache! Das ist viel besser.

Ich verliere langsam den Anschluss in der AS-Welt. ;-)

Viele Grüße
 
...

Hallo hanksinclair,

...
ignoring application responses
-- hier wird der Beenden Dialog ignoriert
end ignoring
...

Gruß Andi
 
Hallo,

Hallo hanksinclair,

...
ignoring application responses
-- hier wird der Beenden Dialog ignoriert
end ignoring
...

Gruß Andi

Das bringt leider nichts.

Warum? "ignoring application responses" ist nur eine Anweisung für Dein eigenes Skript und sagt sinngemäß:

Schicke dem Programm eine Nachricht und erledige dies und das.
Das Ergebnis (ob es geklappt hat oder nicht) interessiert mich nicht und ich mache in meinem Ablauf ohne zu Warten weiter.

Das möchte der TE aber nicht.
Die Dialoge kommen trotzdem.

Viele Grüße
 
...

Hallo littel_pixel,

stimmt leider - der Beenden Dialog wird nicht ignoriert.

Der jetzt hoffentlich korrekte Befehl lautet.

quit without saving -- nicht sichern
quit with saving -- sichern

Gruß Andi
 
stimmt leider - der Beenden Dialog wird nicht ignoriert.

Der jetzt hoffentlich korrekte Befehl lautet.

quit without saving -- nicht sichern
quit with saving -- sichern

Gruß Andi

Leider muss ich wieder der Spielverderber sein. Entschuldige bitte (und nimm es nicht auf Dich bezogen).
Die Aussage ist so nicht generell gültig.

Warum? Höchstwahrscheinlich bieten nur ganz wenige Programme diesen Befehlssatz.
Aufschluss gibt nur die Bibliothek zu der gewünschten Applikation (ist uns leider vom TE nicht bekannt).
Somit ist das immer individuell zu betrachten.

Global gültig bleibt nur "kill".
Ist natürlich als solches verwerflich und unschön, da man der Applikation keine Chance gibt interne Daten zu sichern oder zu verarbeiten.
"Hank" möchte das aber scheinbar so.

"iScript"s Lösung ist meines Erachtens die zur Zeit trivialsten und beste Möglichkeit. (gemessen an dem Soll-Zustand)

Viele Grüße
 
...

Hallo little_pixel,

Höchstwahrscheinlich bieten nur ganz wenige Programme diesen Befehlssatz.

save gehört zur Standard Suite. Das verstehen normalerweise alle Programme. Sogar Vorschau welche gar nicht skriptfähig ist und somit gar kein Funktionsverzeichnis besitzt - versteht den Befehl...

Gruß Andi
 
save gehört zur Standard Suite.

quit without saving -- nicht sichern
quit with saving -- sichern

Wir verwenden aber "quit". Ja, das ist auch Teil der Standard Suite.

Das verstehen normalerweise alle Programme.
Aber nicht die Angabe der Parameter. Das gleiche ist auch gültig bzw. ungültig für "save".
Für alle Apfel-Applikationen mag das zutreffen, aber leider nicht für den Rest.

Vielleicht meldet sich noch der TE mit der Angabe der Applikation.
Somit wären zielgerichtete Aussagen möglich.

Viele Grüße
 
Du hast aber eine Interessante Frage aufgeworfen.

Code:
tell application XY / oder script obect

-- Hier eine Abfrage > object response to method

end

Gibt es eine Möglichkeit zu überprüfen, ob ein Objekt eine gewisse Methode unterstützt?
Das wäre sehr interessant.

Man bedenke die Möglichkeit, die sich bei "load script" damit auftun würde.
Vorab könnte überprüft werden, ob eine Methode dazu agiert und gegebenenfalls ausführen.

Viele Grüße
 
Zurück
Oben Unten