START > APPLESCRIPT > Praktische Handler

Praktische Handler

Hier liste ich AppleScript-Handler, die mir nützlich erscheinen. Die Liste wird, sobald es die Zeit erlaubt und Ideen da sind, laufend erweitert.

Die Handler stammen nicht immer aus eigener Feder, und es möge bitte niemand böse sein, wenn er seinen eigenen Handler, den er in irgendeinem Forum oder auf seiner eigenen Seite publiziert hat, hier wiederfindet. Sattdessen möge er/sie es bitte als Kompliment auffassen, daß ich (und hoffentlich auch andere) diesen Handler ebenfalls nützlich und erwähnenswert finden. Wenn mir die Quelle bzw. der Autor noch bekannt sind, so erwähne ich diesen selbstverständlich. Das Internet lebt ja schließlich vom «Weitersagen».

Wenn ihr einen Handler entwickelt oder gefunden habt, der ebenfalls für andere interessant sein könnte, dann immer her damit. Ich würde mich freuen, diese Sammlung nach und nach zu erweitern, und das wäre eine echte Bereicherung. Mal sehen, wie's angenommen wird (siehe unten).

Mitmachen & Gewinnen!

Unter den besten Einsendungen werde ich als Dank einen Einkaufsgutschein in Höhe von 5€ für das Online-Fachgeschäft «Der kleine Kolonialwarenladen» verlosen. Viel Erfolg und Spaß beim Shopping. Und einen fetten Dank für eure Mitarbeit im Voraus.

Hier kannst Du also einen Handler posten (oder über das Kontakt-Formular). Wenn er von allgemeinem Interesse ist, werde ich ihn (natürlich mit namentlicher Erwähnung des Autoren) ins Programm aufnehmen. Ich zähle auf euch!
 

Kommentar schreiben

Piefke |  13.06.2011, 21:49:38 |  77.181.201.83 = x4db5c953.dyn.telefonica.de
Zum Thema Gross-/Kleinschreibung brauchte ich etwas was mit Umlauten umgehen kann und habe eine reine AppleSkript Lösung gefunden. Es erkennt die groß zu schreibenden Buchstaben an den Zeichen unmittelbar vor dem behandelten Zeichen:set vText to "max-muster-allee 44 a, österreich"set vNewText to ""repeat with vCount from 1 to length of vText set vCID to id of character vCount of vText if ((vCID > 96 and vCID < 123) or vCID is in id of "äöü") and (vCount = 1 or character (vCount - 1) of vText is in {" ", "-", "/"}) then set vNewText to vNewText & character id (vCID - 32) else set vNewText to vNewText & character vCount of vText end ifend repeat--> Ergebnis: "Max-Muster-Allee 44 A, Österreich" 

Raimund Fried |  28.05.2011, 19:21:04 |  raimundfried@googlemail.com  62.226.44.37 = p3EE22C25.dip0.t-ipconnect.de
Hallo, ich habe keinen Handler anzubieten,nur eine Frage : Wo bekomme ich Hilfe, ich möchte ein Script schreiben, dass beim Ausschalten des Rechners ( OSX6.6 ) eine bestimmte Datei automatisch öffnet ( das dauert ca. 10 s ) , danach einen Screenshot anfertigt, diesen auf dem schreibtisch sichert ( immer der gleiche Name ) und danach die Datei schließt. Ich habe überhaupt keine Ahnung von AppleScript, Aufzeichnen klappt nicht, da der Screenshot entweder zu schnell ausgeführt wird oder gar nicht Falls das hier völlig unangebracht ist mit meiner Frage, bitte nicht ärgern : EntschuldigungFreundl. Gruß , R.Fried 

Jan Rüter |  13.07.2010, 18:56:52 |  mailbox@yian.de  79.197.144.194 = p4FC590C2.dip0.t-ipconnect.de
Mit diesem Script kann jedes gerade laufende und scriptfähige Programm im Skripteditor geöffnet werden ("Funktionsverzeichnis"). Das erspart das umständliche Öffnen via Finder oder Öffnen-Dialog. In den Scriptordner legen, starten und aus der Liste auswählen - ich nutze es jeden Tag: tell application "System Events" set the Procs to name of every process whose has scripting terminology is true set FrontProc to name of first process whose frontmost is true tell application "Script Editor" activate set TheProcess to (choose from list Procs with title "Open in Scripteditor" with prompt "Please choose a process:") as text end tell if TheProcess is not "false" then set TheProcess to application file of process TheProcess as alias tell application "Script Editor" activate try open TheProcess end try end tell end ifend tell 

greifenwald |  09.07.2010, 11:56:11 |  82.113.116.97 = pat-97.sg.de.o2.com
Hallo H =:o) L G I,habe eben Deinen Handler zum Programm-Check gesehen. Es geht noch viel einfacher:if application "Finder" is running then display dialog "Finder läuft"end ifSoweit mal von mir. Nette Seite hast Du hier.HG greifenwald 

Stefan Bucher |  25.05.2010, 11:42:48 |  stefan.bucher@condorfilms.com  213.173.163.98 = fw-condor.condor-communications.com
Der Grundsyntax für das verbinden eines Druckers wäre:if my checkNetworkC(CableC) then tell current application -- Drucker 1 verbinden: do shell script "/usr/sbin/lpadmin -p [Druckwarteschlange] -E -v lpd://[Ip vom Drucker]/[Warteschlangenname] -P /Library/Printers/PPDs/Contents/Resources/en.lproj/Dell\\ Color\\ Laser\\ 5110cn.gz -D \"[Druckername im Druckmenü""end tellend if 
213.173.163.98  [END OF RECORD]
 
Stefan Bucher |  25.05.2010, 11:26:08 |  stefan.bucher@condorfilms.com   =
So da wäre mal einen ersten Entwurf meines Script wie man Drucker aus zwei VLAN`s verbinden könnte.-- Funktionsweise des Script:-- Prüfen der Druckertreiber-- Einbetten der Benötigten Drucker am LPD Port (VLAN 1&2):-- Variable Systemdiskset Systemdisk to ""set systempath1 to ""-- Systemdisk abfragenboot volume of (system info)copy boot volume of (system info) to Systemdiskcopy Systemdisk & ":library:Printers:PPDs:Contents:Resources:GENERIC35C-4.gz" to systempath1-- Ab PPDs Contents müssen dir Drucker gem. benötigten Druckertreiber-- Treiber Validierung 1. Druckertypmy CheckExistence1(systempath1) -- Datei vorhanden?on CheckExistence1(FileOrFolderToCheckString) try alias FileOrFolderToCheckString return true activate on error activate display dialog "Keine Druckertreiber vorhanden! Bitte rufen Sie http://develop.de auf um die Treiber zu installieren." buttons {"Abbruch", "Kopierer Treiber herunterladen"} with icon stop set DlogResult to result if button returned of result = "Abbruch" then return false else if button returned of result = "Kopierer Treiber" then open location "http://download6.konicaminolta.eu/develop/servlet/KonMinMaster?path=../attachment.jsp&mode=load&id=C1256A10004FA74D0BCDFB8807A71864C125768F005DD17A&filename=35C-4Series_mac106_driver_v545_A4.zip" end if end tryend CheckExistence1-- Treiber Validierung 2. Druckertypset systempath2 to ""-- Systemdisk abfragenboot volume of (system info)copy boot volume of (system info) to Systemdiskcopy Systemdisk & ":library:Printers:PPDs:Contents:Resources:en.lproj:Dell Color Laser 5110cn.gz" to systempath2-- Treiber Validierung Dell Druckermy CheckExistence2(systempath2) -- Datei vorhanden?on CheckExistence2(FileOrFolderToCheckString) try alias FileOrFolderToCheckString return true activate on error activate display dialog "Keine Druckertreiber vorhanden! Bitte rufen Sie http://dell.ch auf um die Treiber zu installieren." buttons {"Abbruch", "Dell Treiber herunterladen"} with icon stop set DlogResult to result if button returned of result = "Abbruch" then return false else if button returned of result = "Dell Treiber" then open location "http://ftp.us.dell.com/printer/R130537.dmg" end if end tryend CheckExistence2set NetwC to {"WLAN1 IP Printer1", " WLAN1 IP Printer2", " WLAN1 IP Printer3"}set Netw2 to {"WLAN2 IP Printer1", " WLAN2 IP Printer2", " WLAN2 IP Printer3"}set CableC to ""set CableF to ""-- Script resetif CableC is true or false then set CableC to "" set CableF to ""end if-- Nach Netzwerüberprüffung beginne mit Drucker aus dem WLAN1 Netzwerk zu verbinden.if my checkNetworkC(CableC) then tell current application -- Drucker 1 WLAN1 verbinden: do shell script "/usr/sbin/lpadmin -p Color_Laser11 -E -v lpd://192.168.10.54/color_laser11 -P /Library/Printers/PPDs/Contents/Resources/en.lproj/Dell\\ Color\\ Laser\\ 5110cn.gz -D \"C_Mauritius_Dell (Gang Technik IT,Faro)\"" -- Drucker 2 WLAN1 verbinden: do shell script "/usr/sbin/lpadmin -p Color_Laser12 -E -v lpd://192.168.10.57/color_laser12 -P /Library/Printers/PPDs/Contents/Resources/en.lproj/Dell\\ Color\\ Laser\\ 5110cn.gz -D \"C_GRB_Dell (Grosraumbürro CC)\"" -- Drucker 3 WLAN1 verbinden: do shell script "/usr/sbin/lpadmin -p Color_Laser13 -E -v lpd://192.168.10.49/color_laser13 -P /Library/Printers/PPDs/Contents/Resources/GENERIC35C-4.gz -D \"C_GRB_Kopierer (Grosraumbürro CC)\"" end tellend if-- Nach Netzwerküberprüffung beginne mit Drucker aus dem WLAN2 Netzwerk zu verbinden.if my checkNetworkF(CableF) then tell current application -- Drucker 1 WLAN2 verbinden: do shell script "/usr/sbin/lpadmin -p Color_Laser21 -E -v lpd://192.168.7.54/color_laser21 -P /Library/Printers/PPDs/Contents/Resources/en.lproj/Dell\\ Color\\ Laser\\ 5110cn.gz -D \"F_Mauritius_Dell (Gang Technik IT,Faro)\"" -- Drucker 2 WLAN2 verbinden: do shell script "/usr/sbin/lpadmin -p Color_Laser22 -E -v lpd://192.168.7.57/color_laser22 -P /Library/Printers/PPDs/Contents/Resources/en.lproj/Dell\\ Color\\ Laser\\ 5110cn.gz -D \" 

H =:o) L G I |  06.05.2010, 22:46:01 |  91.35.8.17 = p5B230811.dip0.t-ipconnect.de
Hallo Stefan. Vielen Dank für das Lob! Ja, wenn Du nützlichen Code hast, der hier gut untergebracht wäre... her damit! Ich freue mich über alles, was anderen (und mir) hilft ...  

Stefan Bucher |  06.05.2010, 10:16:05 |  stefan.bucher@condorfilms.com  213.173.163.98 = fw-condor.condor-communications.com
Ich könnte noch ein Script beisteueren wie man Drucker aus dem netzwerk heraus verbindet. Das Script würde sogar die Netzwerkverbindung überprüffen und würde auch mit mehreren VLAN`s funktionieren. Eine Treiber Validierung mit UI-Scripting zur Installation der benötigten Treiber ist in Arbeit.Vielen Dank an die Tolle Script Sammlung, hat viele Interessante Scripts die man gut in seine eigenen einfliessen lassen kann.Gruss 

H =:o) L G I |  02.04.2010, 22:04:47 |  91.35.13.27 = p5B230D1B.dip0.t-ipconnect.de
Vollkommen richtig. Ist geändert. Sollte nur ein Test sein... ,-) 

Norbert Lindenthal |  02.04.2010, 15:40:47 |  norbert@lindenthal.com  217.225.64.21 = pD9E14015.dip0.t-ipconnect.de
http://hohabadu.de/?APPLESCRIPT/Praktische-Handler/Mail-SucheIn zweiter Zeile heißt es falsch: my openMail(eingabe)Es muß aber heißen: my openMails(eingabe) = Mails mit s… dann läuft der Script :-) 

H =:o) L G I |  25.09.2008, 22:40:03 |  89.53.54.8 = 89.53.54.8
Hallo Frank. Vielen Dank für den Hinweis. Diese Handler waren mir auch schon mal unter die Maus gekommen. Hatte sie nur wieder aus den Augen verloren. Habe jetzt beim Autoren des Scripts mal nach einer Genehmigung zur Veröffentlichung seiner Handler gefragt. Er hat zugestimmt :-) Werd's demnächst hier mit reinstellen. Von solchen Tipps bitte mehr! Dankeschön. 

Frank Pietschmann |  24.09.2008, 12:53:03 |  frank.pietschmann@eu.takata.com  62.159.242.114 = 62.159.242.114
wer hat es nicht schonmal gebrauchen koennen:die kalenderwoche (KW) von einem x-beliebigen Datum.hier in AS 

H =:o) L G I |  08.02.2008, 23:34:31 |  89.53.36.77 = 89.53.36.77
manpages als PDF - Sorry, dass ich erst jetzt antworte. Hatte dein Posting einfach aus den Augen verloren. Die Lösung ist auch nicht schlecht. Ich hatte da auch schon was unter "Gebrauchsfertige Scripts" liegen. Was mich bei deiner Lösung etwas stört: Man muss das PDF noch sichern, und es trägt einen etwas eigenwilligen Namen ,-) Trotzdem ein cooler Ansatz. Kann es ja mal als Alternative dort anbieten. Dankeschön. Gruss, H =:o) L G I 

pi |  05.02.2008, 12:54:05 |  frank.pietschmann@eu.takata.com  62.159.242.114 = 62.159.242.114
-- die UNIX-man-page als pdf ausgeben:do shell script "man -t " & ¬ text returned of (display dialog "Enter Name of Shell Function Man Page" default answer "cut" buttons {"Go Get It"} default button 1) & ¬ " | open -f -a /Applications/Preview.app" 

H =:o) L G I |  07.12.2007, 09:04:30 |  89.53.39.63 = 89.53.39.63
Ich stimme dir voll zu. Scripts am besten per Mail an mich. Diese Kommentar-Funktion ist nicht so der Bringer. Suche noch nach Ersatz, bin aber bis jetzt nicht fündig geworden. 

Skeeve |  20.11.2007, 22:42:40 |  80.138.108.7 = p508A6C07.dip0.t-ipconnect.de
Was ist das hier für ein beschi...eidener Editor, der Zeilenumbrüche schluckt? 

Skeeve |  20.11.2007, 22:41:57 |  80.138.108.7 = p508A6C07.dip0.t-ipconnect.de
Hiermit kann man alle Buchstaben eines Textes großschreiben (AllCaps), kleinschreiben (NoCaps) oder nur die ersten großschreiben lassen:Aufrufbeispiel set ac to AllCaps for "thisisatest text"Und hier die Handler:on InitialCaps for a_text do shell script "perl -ne 'print ucfirst foreach split /\\b/'<<'" & (ASCII character 3) & "'" & (ASCII character 10) & a_textend InitialCapson AllCaps for a_text do shell script "perl -ne 'print uc' <<'" & (ASCII character 3) & "'" & (ASCII character 10) & a_textend AllCapson NoCaps for a_text do shell script "perl -ne 'print lc' <<'" & (ASCII character 3) & "'" & (ASCII character 10) & a_textend NoCaps  
84.175.99.228  [END OF RECORD]
 
werkwelt |  29.09.2007, 17:37:23 |  allesÄDwerkwelt.de   =
Ja, diesen hier weiß ich noch:-- Springe im PDF.scpt-- springt innerhalb eines Vorschau-PDFs nach Seitenzahlen oder nach Suchtext (jeweils markierte Textstelle)-- Norbert Lindental (werkwelt.de)-- 29.9.2007---- Anleitung:-- aufzusuchende Textstelle markieren und dieses Skript starten.-- Dank:-- Skriptteile von -- snow (fischer-bayern.de) und -- iScript (hohabadu.de)---- siehe auch unten »Anmerkungen«tell application "Preview" activate tell application "System Events" keystroke "c" using command down end tell end telltell application "Preview" -- deutsch: "Vorschau" activate -- ohne »activate« würde die zwischenAblage erst beim zweitenmal aktualisiert werden set speiCher to the clipboard -- Speicher -- folgendes soll durch Doppelklick markierte Textstellen von Satzzeichen säubern, damit Seitenzahlen stehenbleiben my zeichenAustausch(speiCher, "(|)|!|.| x", "||||", "|") -- set zwischenAblage to speiCher if class of zwischenAblage is not in {string, text, Unicode text} then display dialog "In der Zwischenablage befindet sich kein Text oder keine Zahl, die zur Suche verwendet werden könnten." buttons {"Aha"} default button 1 with icon stop return end if set the clipboard to speiCher my istInteger(zwischenAblage) -- ruft das zwischenprogramm istInteger (Unterscheidung Ganzzahl/Text) auf if my istInteger(zwischenAblage) then tell application "System Events" -- Ganzzahl blättert eine PDF-Seite auf keystroke "g" using {command down, option down} keystroke "v" using command down keystroke return keystroke "f" using command down key code 51 -- soll das Suchfeld löschen keystroke return end tell else tell application "System Events" -- Nicht Ganzzahl (also Text) sucht nach Textstellen und listet die auf keystroke "f" using command down keystroke "v" using command down keystroke return keystroke "f" using command down key code 48 -- Tab soll das Inhaltsverzeichnis aktivieren, um dort mit den Pfeiltasten weiterzuschalten end tell end if end tellreturn my istInteger(zwischenAblage)-- Zwischenprogramm zur Unterscheidung Zahl/Texton istInteger(keTTe) -- prüft, ob Ganzzahl (= as integer) try set keTTe to keTTe as integer return true on error return false end tryend istInteger-- Zwischenprogramm Zeichenaustauschon zeichenAustausch(eingabe, suchListe, austauschListe, trenner) if class of suchListe is string then set AppleScript's text item delimiters to trenner set suchListe to every text item of suchListe set austauschListe to every text item of austauschListe else set AppleScript's text item delimiters to "" end if repeat with i from 1 to (count of suchListe) set such to item i of suchListe set austausch to item i of austauschListe set AppleScript's text item delimiters to such set the temp to every text item of eingabe set AppleScript's text item delimiters to austausch set eingabe to temp as string end repeat return eingabeend zeichenAustausch-- Anmerkungen-- 1.-- selbstgemachte PDFs von längeren Büchern können mehrteilig sein. Und dafür fehlt noch eine Auflistung der Teile mit den Seitenzahlabzügen. Beispiel: Seite 449 ist im teil 5, der auf Seite 1 Buchseite 449 zeigt. Also muß bei 449 geschaltet werden in Teil 5 und Seite 449 - 448 = 1. Diese Mimik fehlt hier noch.-- 2.-- Wie kann dieses Skript als Programm auf das Kontextmenü geschaltet werden oder auf eine Funktionstaste? Oder auf ein eigenes Kürzel?-- 3.-- Vorschau markiert Textstellen durch Doppelklick mitsamt dann störender Sonderzeichen (,:-!.)„“). Die müssen dann für Zahlenerkennung abgeschnitten werden. Das funktioniert oben noch nicht gut.-- 4.-- Getrennte Wörter werden von Vorschau nicht mehr als zusammengehörende Wörter erkannt und entsprechend nicht mehr gefunden. Da kann dieses Skript auch nicht helfen. Man muß es nur wissen.-- 5.-- Vorschau müßte nahe liegende Wörter finden können. Suche nach »kann ich« findet auch »ich kann«. Das kann Vorschau aber bisher nicht. Oder Wörter innerhalb Absatz finden. Hier kann sich noch ein Programmierer an Vorschau austoben. Die Fu 

H =:o) L G I |  14.06.2007, 09:01:45 |  89.53.51.136 = 89.53.51.136
Ihr seid am Zug! Ich freue mich auf eure Beiträge! Gruss H =:o) L G I 



Untermenü

Powered By CMSimple Design By NMuD Top