Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

System Events als Finder-Ersatz (bzw. info for)

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 26.05.2007 - 19:39    Titel: System Events als Finder-Ersatz (bzw. info for) Antworten mit Zitat

Als nicht gerade großer Fan von "Finders" AppleScript-Künsten (jaja, wer seit 1995 AppleScriptet hat so manche leidvolle Erfahrung, angefangen bei der Geschichte mit dem Programm Scriptable Finder [hieß das so?], der zu AppleScripts Anfangszeiten nämlich noch kein AppleScript verstand, bis hin zu manchen Bugs [manch' Befehl konnte den Finder für Sekunden in Winterstarre befördern]) suche ich natürlich immer Wege den guten alten Finder zumindest beim AppleScripten zu umgehen. Auch der Befehl info for kommt mir seit einiger Zeit als Auslaufmodell vor - obwohl ich diesen immer gerne benutzt habe. So habe ich zuletzt mal ein bisschen mit den System Events herumgepröbelt. Im Folgenden einige Ergebnisse dieser Bemühungen, wobei ich natürlich auch nicht weiß, ob es mit der nächsten Version von AS noch funktioniert! (version "1.10.7")

--existiert ein item schon am Zielort?
set theItem to ((path to documents folder from user domain) as text) & "Testdatei.txt"
check_Name(theItem)
-- true or false

on check_Name(theItem)
   tell application "System Events"
      return (item theItem exists)
   end tell
end check_Name

(*
get_ItemClass trifft es nicht so ganz - hier wird nur abgefragt, ob das Zielobjekt
ein Ordner ist (true), alle anderen Items, auch packages, werden mit false zurückgegeben
*)

set theItem to choose file
--set theItem to choose folder
get_ItemClass(theItem)

on get_ItemClass(theItem)
   tell application "System Events"
      return (class of item (theItem as text) is folder)
   end tell
end get_ItemClass

-- eine Art list folder mit System Events realisiert
-- es werden nur sichtbare Objekte zurückgegeben!

set theItem to choose folder
get_ItemList(theItem, {})
-- liste mit Dateiverweisen in Pfadform

on get_ItemList(theItem, TheL)
   tell application "System Events"
      set temp to every item of theItem
      repeat with i in temp
         if (visible of i) then set end of TheL to (path of i) as alias
      end repeat
      return TheL
   end tell
end get_ItemList

-- Gibt den Namen einer Datei (mit Extension) und die Extension separat zurück
set theItem to choose file
get_Name(theItem)
-- {"vollständiger Name", "Extension"}

on get_Name(theItem)
   tell application "System Events"
      return {name of theItem, name extension of theItem}
   end tell
end get_Name

--Das geht natürlich auch für den kompletten Dateipfad
set theItem to choose file
get_FilePath(theItem)
-- {"vollständiger Dateipfad"}

on get_FilePath(theItem)
   tell application "System Events"
      return {path of theItem}
   end tell
end get_FilePath

-- Naja, über Sinn und Unsinn des folgenden 'Path zum Item' lässt sich diskutieren
-- ist aber ganz praktisch handzuhaben

set theItem to choose file
set theItem to choose folder
get_Path(theItem)

on get_Path(theItem)
   tell application "System Events"
      set thePath to path of theItem
      if (package folder of theItem) or (class of item (theItem as text) is folder) then
         set x to -3
      else
         set x to -2
      end if
   end tell
   set {oldDelims, AppleScript's text item delimiters} to {AppleScript's text item delimiters, {":"}}
   set thePath to (text items 1 thru x of (theItem as text)) as text
   set AppleScript's text item delimiters to oldDelims
   return thePath
end get_Path


---Das Umbennen habe ich ganz vergessen anzuhängen:
on set_Name(theItem, theNewName)
   tell application "System Events"
      set name of theItem to theNewName
      return {theItem, name of theItem}
   end tell
end set_Name


Allerdings erzeugt der Befehl set name keinen error bei vorhanden sein eines Objekts gleichen Namens im gleichen Ordner - der Befehl wird schlicht ignoriert - daher lasse ich gleich den neuen Namen mit zurückgeben und kann daraufhin überprüfen, ob er identisch mit dem beabsichtigten neuen Namen ist - sonst error "Blah" number 31960

Edit: In Bunt zur besseren Lesbarkeit ( hallo winke cool man Mr. Green)
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 14.07.2007 - 10:11    Titel: Antworten mit Zitat

tell application "Finder" to set Sel to selection as alias as text
return Sel -->ZB "[Startup-Disk]:Users:[der user]:Desktop:test.txt"

weil dies so blitzschnell herrliche Ergebnisse über komplizierteste Pfade liefert,
Frage: gibst sowas auch in deinen "System Events"? (und fürchte dabei etwas verwechselt zu haben...)
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 15.07.2007 - 13:20    Titel: Antworten mit Zitat

Hast du schon mal "System Events" als aktives Programm gesehen? Also ich nicht. - System Events arbeitet immer unsichtbar und somit kannst du in diesem Programm auch nichts selektieren.

Desweiteren hilft ein kleiner Blick ins Funktionsverzeichnis. Beim Finder wirst du den Befehl "select" in der Standard Suite finden, bei System Events jedoch nicht.

Außerdem lässt sich so etwas ja durch einen einfachen Test feststellen:

tell application "System Events" to set Sel to selection
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 16.07.2007 - 08:01    Titel: Antworten mit Zitat

Hallo Willy,

Snow hat die Antwort ja schon gegeben - das geht nicht! Die Auswahl eines (Finder-)Items ist ja auch eher eine programmspezifische Funktion des Finders, welcher ja nichts anderes als ein Programm darstellt. Ebenso wenig können Dir die System Events einen Datensatz im FileMaker auswählen.

Gruß, Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
spirigwi
•----->
•----->


Anmeldedatum: 10.07.2003
Beiträge: 1517
Wohnort: Olten-CH

BeitragVerfasst am: 30.07.2007 - 03:17    Titel: Antworten mit Zitat

als Ergänzung, wenn jemand das choose umgehen will (dieses muss spezifiziert werden auf: files oder Ordner oder Alias)
Man hat also einen String des Pfades vor sich und sucht nun den Namen:

set TESTERPfadString to "HD:Users:UserOrdner:Documents:TESTER.doc"
set theItem to alias TESTERPfadString --<nur Variablen, sonst sucht beim Kompiliervorgang

get_Name(theItem)

on get_Name(theItem)
   tell application "System Events"
      return {name of theItem, name extension of theItem}
   end tell
end get_Name

_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
sdenjuopl148
•---->
•---->


Anmeldedatum: 17.12.2022
Beiträge: 725
Wohnort: New York city

BeitragVerfasst am: 01.03.2023 - 16:00    Titel: Antworten mit Zitat

Jordan Shoes For Men
New Jordan
Nike Free Run
Nike Store
Nike Air Force
Air Force 1
Christian Louboutin Heels
Nike Shoes For Men
Nike Hyperadap
Air Jordan 8
Pandora Ring
New Nike Air Max 2019
Nike Running Shoes For Men
Jordan 11 Bred
Jordan Retro 9
Nike Black Friday
Nike Cortez
Jordan 13 Retro
Kevin Durant Shoes
Nike Outlet Online
Nike Outlet
Nike Presto
Jordan Retro 10
Nike Outlet Store Online
Jordan 32
Nike Shoes
Pandora
Jordan Retro 4
Adidas Yeezys
Jordan 1
Pandora Rings
Lebrons Shoes
Kyrie Basketball Shoes
Adidas Yeezy Shoes
Cheap Nike Shoes
Nike Air Zoom Pegasus 36
Nike Clearance
Nike Air Max 95
Asics Outlet
Ferragamo Belts
Yeezy Shoes
Jordan 12s
New Nike Shoes 2019
Nike Running Shoes For Men
Fjallraven Kanken
Christian Louboutin Outlet
Nike Free
Nike Cortez Men
Pandora Necklace For Women
Nike Sneaker
Nike Outlet
Yeezy 500 Black
Nike Sneakers
Nike Air Max 720
Kids Jordan Shoes
Nike Outlet
Jordan 13 Retro
Air Jordan Shoes
Nike Outlet Store Online Shopping
Jordan AJ 1 Mid
Kyrie Irving Basketball Shoes
Nike Shoes
Lebron 16
Nike Air Max 98
Pandora Earrings
Nike Shoes
New Nike Shoes 2019
Adidas Ultra Boost Men
Jordan 11
Pandora Charms
Air Max 720
Nike Factory Store
Air Force Ones
Nike Outlet
Nike Outlet Store Online Shopping
Jordan 4s
Nike Shoes For Men Basketball
Louboutin Shoes
Christian Louboutin Heels
Nike Outlet
Pandora Jewelry Official site
Pandora Sale
Nike Running Shoes
Nike Factory
Vans Shoes
Air Jordan 3
Pandora Jewelry
Air Jordans
Jordan Retro 11
Red Bottoms
Pandora Canada
Adidas Sneakers For Women
Jordans
Lebron 16
Nike Factory Store
Golden Goose Shoes
Jordan 7
Nike React
Nike Store
Jordan 1 High
Nike Outlet Store Online Shopping
Nike Air Max 270 Men
Michael Jordan Shoes
Red Bottom Shoes For Women
Jordan 1 Mid
Moncler Outlet
Jordans Retro
Fjallraven Kanken
Lebron James Shoes
Louboutin Shoes
Pandora Bracelets
Adidas NMD
Jordan 1
Pandora Bracelet
Pandora Charms Sale Clearance
Jordans 1
Christian Louboutin Outlet
Nike Air Max 95
Nike Air Huarache
Nike Sneakers For Men
Pandora Jewelry Official Site
Nike Clearance
Pandora Charms
Christian Louboutin Shoes
Jordan retro 14
Christian Louboutin Outlet
Pandora
Nike Zoom Fly
Air Max 720
Yeezys Shoes
Jordan Sneakers
Mens Nike Shoes
Ferragamo Shoes
Valentino
Nike Air Force 1
Ultra Boost
Nike Factory Store
Christian Louboutin
Pandora Charm Bracelet
Nike Sneakers
Yeezy Boost 350
Pandora
Adidas NMD
Nike Clearance
Pandora Jewelry
Basketball Shoes
Yeezy Boost 350 V2
Nike Air Jordans
Nike Store
Kids Nike Shoes
Air Max 98 Gundam
Jordan Shoes
Yeezy 700
Jordan Retro 11
Red Bottom
Nike Shoes
Christian Louboutin
New Nike Shoes
Nike Jordan 1
_________________
sdenjuopl148
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
sdenjuopl148
•---->
•---->


Anmeldedatum: 17.12.2022
Beiträge: 725
Wohnort: New York city

BeitragVerfasst am: 04.03.2023 - 23:24    Titel: Antworten mit Zitat

Ultra Boost Adidas
Pandora
Adidas
Nike Canada
Nike Factory Store
Adidas Ultra Boost
Adidas Shoes Women
Nike Shoes
Yeezy
Yeezy 350
Adidas Originals Superstar
Nike Outlet
Adidas Online
Adidas NMD
Adidas Shoes
Nike Canada
Pandora Rings
Pandora UK
Nike Sneakers Women
Nike Outlet
Nike Clearance Outlet
Nike Shoes Canada
Nike Air Force 1 Mid
Adidas UK
Nike Store
Pandora Jewelry
Adidas Outlet
Nike Clearance Store
Yeezy Boost 350 V2
Pandora
Adidas Superstar
Pandora Charms
Adidas Yeezy Official Website
Nike Air Force 1
Adidas Yeezy
Adidas Trainers UK
Nike Outlet
Adidas Superstar
Yeezy
Yeezy
Adidas Ultra Boost UK
Yeezys Official Site
Nike Roshe
Nike Factory
Adidas UK
Nike Outlet
Adidas NMD
Yeezy Boost 350
Adidas Shoes
Off White
Adidas Yeezy
Yeezy Boost 500
Pandora Bracelets
Nike Outlet Store
Adidas Running Shoes
Nike Snkrs
Adidas Outlet
Nike Air Presto
Nike Running Shoes
Adidas
Pandora Charms
Nike Canada
Adidas Yeezy
Pandora Charms UK
_________________
sdenjuopl148
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
anthonyscotte23
•->
•->


Anmeldedatum: 06.03.2023
Beiträge: 4

BeitragVerfasst am: 06.03.2023 - 16:08    Titel: Antworten mit Zitat

Thanks to sharing this informative article. mt vernon washer repair
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> OS X-Snippets Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter