• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Applescript Programm ausblenden

Nero_71

Salvatico di Campascio
Registriert
01.06.07
Beiträge
427
Ich will ein kleines Programm in Applescript schreiben, welches das Programm "Mail" öffnet. Dies würde dann mit "Awaken" aktiviert werden, immer um die gleiche Zeit.

Ich habe dies geschrieben:

tell application "Mail"

tell application "Finder"
activate
end tell

tell application "Finder"
set the visible of process "Mail" to false
end tell

end tell


Wenn ich es dann starte, kommt die Meldung "Can't set <<class prcs>> "Mail" of application "Finder" to false." Was bedeutet das? Hat das vielleicht etwas damit zu tun dass Mail mit "Dock Dodger" nicht als "geöffnet" im Dock angezeigt wird?

Danke
 
Wenn ich es dann starte, kommt die Meldung "Can't set <<class prcs>> "Mail" of application "Finder" to false." Was bedeutet das? Hat das vielleicht etwas damit zu tun dass Mail mit "Dock Dodger" nicht als "geöffnet" im Dock angezeigt wird?

Statt es dem Finder zu sagen, solltest du es mal so probieren:

Code:
tell application "System Events"
	-- your code goes here
end tell

Gruss von IceHouse
 
Ne, leider kommt die genau gleiche Meldung, einfach anstatt Finder steht jetzt "System Events"...

Oder meinst meinen ganzen Code in deinen einbetten?

EDIT: Nein, geht leider auch nicht...
 
Was bedeutet das? Hat das vielleicht etwas damit zu tun dass Mail mit "Dock Dodger" nicht als "geöffnet" im Dock angezeigt wird?

So ist es. Dock Dodger unterdrueckt scheinbar die Moeglichkeit es ausblenden zu koennen. Um die Fehlermeldung abfangen zu koennen muesste der AS Block wie folgt aussehen:

tell application "System Events"
try
ignoring application responses
set the visible of process "Mail" to false
end ignoring
end try
end tell

Diese Methode blendet Mail aus, ohne es aktiv setzen zu muessen. Ansonsten bleibt noch die Moeglich keit erst Mail zu aktivieren und es dann auszublenden. Um Zu ueberpruefen, ob AS den Prozess "Mail" ueberhaupt findet, einfach mal testen:
tell application "System Events"
get every process
if application process "Mail" exists then
beep
beep
beep
end if
try
ignoring application responses
set the visible of process "Mail" to false
end ignoring
end try
end tell


Gruss von Mike
 
Hmm ein Problem ist weg, jetzt kommt das andere: Mail wird nicht mehr geöffnet. Wie muss ich denn den Befehl Mail zu öffnen einbinden damit es das tut? Dafür kommt jetzt die Meldung "Cant set etc." nicht mehr.

Entschuldige falls die Fragen bisschen blöd tönen, hab mich eigentlich nie mit Applescript (oder allgemein mit Programmieren) auseinandergesetzt.
 
Hmm ein Problem ist weg, jetzt kommt das andere: Mail wird nicht mehr geöffnet. Wie muss ich denn den Befehl Mail zu öffnen einbinden damit es das tut? Dafür kommt jetzt die Meldung "Cant set etc." nicht mehr.

Quick & Dirty macht man das so:

tell application "System Events"
tell application "Mail" to activate
delay 3
try
ignoring application responses
set the visible of process "Mail" to false
end ignoring
end try
end tell

"tell application "Mail" to activate" aktiviert Mail bzw. falls es nicht als laufender Process existiert wird es gestartet. Das "delay 3" macht eine Pause von 3 Sekunden und gibt Mail die Chance zu starten um es dann auszublenden. Jetzt koennte man noch ne schoene If Schleife um das activate bauen damit das nur ausgefuehrt wird, wenn Mail wirklich nicht offen ist usw.

Gruss von IceHouse