AppleScript Doku: welches Prog kann was?

weinford

weinford

Aktives Mitglied
Thread Starter
Dabei seit
24.01.2004
Beiträge
398
Reaktionspunkte
0
Hallo allerseits,
entschuldigt, ich bin ein absoluter Appleskript Novize, aber ich finde die richtige Dokumentation nicht. Ich suche nach einer Liste von Befehlen, die die unterschiedlichen Programme verstehen. Also, "Finder" kann z.B. empty trash, "Mail" kann "compose new" usw... aber wo finde ich eine Liste davon, nach Applikationen sortiert?

Meine derzeitigen Wünsche sind: ich will ein Skript schreiben, welches meine Netzwerkumgebung ändert (bin schon froh den CLI-Befehl scselect gefunden zu haben, auch nur durch Zufall... vielleicht schreibe ich auch ein bash script...), dann Mail aufruft und nach neuer Mail guckt, sich zu bestimmten SMB- und NFS-Servern verbindet und eventuell noch Programme startet oder beendet (mlnet :p).

Und, hat einer ne Idee, wie man Scripte an Tastaturkürzel binden kann, oder zumindest "Applikationen" draus macht, so daß man sie mit QuickSilver oder ähnlichem starten kann?

Vielen Dank!
Toby
 
Ach so, und superglücklich wäre ich noch mit einem Skript, das die Einstellung "Kennwort verlangen bei Beenden des Bildschirmschoners oder Ruhezustands" ändern kann, das soll bei mir nämlich auch abhängig von der Netzwerkumgebung sein. Zuhause brauch ich keinen Kennwortschutz.
 
Original geschrieben von weinford
Hallo allerseits,
entschuldigt, ich bin ein absoluter Appleskript Novize, aber ich finde die richtige Dokumentation nicht. Ich suche nach einer Liste von Befehlen, die die unterschiedlichen Programme verstehen. Also, "Finder" kann z.B. empty trash, "Mail" kann "compose new" usw... aber wo finde ich eine Liste davon, nach Applikationen sortiert?
Toby
 

Hi Toby,

um die Liste von Befehlen zu erhalten, die eine Anwendung unterstützt, ziehe einfach die Anwendung aus dem Finder auf das Icon des Scripteditors im Dock. Ich habe leider noch nicht herausgefunden, wie das beim FInder funktionieren soll.

Gruß,
- Bjoern
 
Wow, danke Björn nud Andi! Da hab ich jetzt erstmal ne Menge zu durchforsten =)

Cheers,
Toby
 
Ich habs geschafft. Glücklich bin ich mit der Lösung nicht wirklich, aber es funktioniert erstmal:

#!/bin/bash
scselect Hansenet

startIfNotRunning /Users/baier/cvs/mldonkey/mlnet
startIfNotRunning /Applications/Internet/Adium.app/Contents/MacOS/Adium

osascript<<EOF
tell application "System Preferences"
activate
set current pane to pane 24
end tell

tell application "System Events"
tell window "Sicherheit" of process "System Preferences"
if value of checkbox "Beim Beenden des Ruhezustandes oder Bildschirmschoners
ein Kennwort verlangen" is 1 then
click checkbox "Beim Beenden des Ruhezustandes oder Bildschirmschoners
ein Kennwort verlangen"
end if
end tell
end tell
tell application "System Preferences"
quit
end tell

tell application "Mail"
activate
check for new mail
end tell
EOF


Doof ist, daß ich das panel mit der Nummer anspreche: die panels der Systemsteuerung sind alphabetisch durchnummeriert, so daß ich also die Nummer ändern muß, wenn ich ein Panel hinzufüge, daß alphabetisch vor "Sicherheit" kommt...
Doof ist auch, daß ich beim Button-Click auf den zeilenumbruch achten mußte... hat echt gedauert, bis ich das gefunden habe. Der UIInspector von Apple hat mir dabei geholfen.

Ach ja, startIfNotRunning ist eine kleine bash-Funktion, die ich geschrieben habe (poste ich mal hier im passenden Applescript Forum ;)


function startIfNotRunning() {
len=`echo $1 | wc -c`
start=`expr $len - 2`
end=`expr $len - 1`
search=`echo $1 | cut -c 1-$start`[`echo $1 | cut -c $end`]
if ! ps x|grep "$search" >/dev/null 2>&1
then echo l?uft nicht!
"$1"&
fi
}


Also vielen Dank nochmal für Eure Hilfe!
Toby
 
Ich bin Novize in diesem Forum, aber in AppleScript habe ich schon einiges gemacht.

Im Ablage-Menü "Verzeichnis öffnen" wählen; es erscheinte eine alphabetische Auswahlliste mit allen Programmen, die AppleScript unterstützen, und den sogenannten StandardAdditions.

Gruß
Stephan
 
Original geschrieben von weinford
Doof ist, daß ich das panel mit der Nummer anspreche: die panels der Systemsteuerung sind alphabetisch durchnummeriert, so daß ich also die Nummer ändern muß, wenn ich ein Panel hinzufüge, daß alphabetisch vor "Sicherheit" kommt...
&nbsp;

Du kannst die Panels auch mit Namen ansprechen - allerdings sehen die Namen etwas anders aus, als man erwarten würde:

tell application "System Preferences"
set current pane to pane "com.apple.preference.security"
end tell
 
Ah, viel besser! ich war mir eigentlich sicher, daß ich genau den namen schon mal probiert hatte, aber da gings nicht. Nu gehts, vielen Dank!

Toby
 
gruess dich weinford,

Zu deinem startIfNotRunning Skript:

Du solltest m.E. ein 'ps ax' verwenden, sonst zeigt dir ps nur Prozesse an, die keine Terminals kontrollieren.

Aber wieso machst du nicht einfach ein
function startIfNotRunning() {
if ! ps ax | grep $1 | grep -v grep >/dev/null 2>&1; then
echo Laeuft nicht!
$1 &
else
echo Laeuft!
fi
}
?

gruesse,
sbx

edit: ich hab' jetzt mal die ganze function hingeschrieben, weil deutlicher
 
Zuletzt bearbeitet:
Ah, auf das grep -v grep war ich nicht gekommen, das ist natürlich noch eleganter. Ja, und warum das a nicht mit drinsteht, weiß ich auch gerade nicht. Ich weiß nicht, irgendwie arbeite ich immer gerne mit cut und sed und so, ist immer irgendwie lustig... Deine Lösung ist aber bestimmt schneller.
 
Zurück
Oben Unten