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

Skript-Aend. script aus script AUFRUF + variablen SPEICHERN

 
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 -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
spirigwi
•----->
•----->


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

BeitragVerfasst am: 14.01.2006 - 10:24    Titel: Skript-Aend. script aus script AUFRUF + variablen SPEICHERN Antworten mit Zitat

re-EDIT 5.3.06: Objekt-Beschreibung für die Skript-Aenderung :
hier kann man ev einen SKRIPTE-Sammlers oder SKRIPTE-Bibliothek durchdiskutieren basierend auf Snows Vorschlägen zu iScripts Skripte-Sammler-projekt:


@iScript ad :
iScript hat Folgendes geschrieben:
Verfasst am: 11.01.2006 - 11:16 Titel: script aus script aufrufen + variablen übergeben:

ich meinte ich herauszulesen dass du nach property-Konstruktion suchen würdest unter NUTZUNG der SPEICHERUNGS-Fähigkeit von propertys:
Zuerst Dein Skript @iScript :
oooooooooooooooooooooooooooooooooDamitDieScriptZeilenNichtUmbrochenWerdenooooderpfad
iScript hat Folgendes geschrieben:
on open Gedroppt
tell application "Finder"
set derpfad to ((item 1 of Gedroppt) as text)
set dername to ((name of folder derpfad) as text)
--
Bedingung, welches SubScript startet
if dername contains "a" then run script SubScriptA of me with parameters {dername, derpfad}
if dername contains "b" then run script SubScriptB of me with parameters {dername, derpfad}
end tell
end open

--
Und hier die "Unter-Scripts"
script SubScriptA
on run {dername, derpfad}
display dialog "Der a-Ordner heißt" & dername & return & "Pfad: " & derpfad
end run
end script

script SubScriptB
on run {dername, derpfad}
display dialog "Der b-Ordner heißt" & dername & return & "Pfad: " & derpfad
end run
end script

Hier sehe ich zumindest 2 augenfällig ungelöste Fragen:
Zitat:
1) dieses als Skripte-Sammler konzipierte Skript hat keine Vorrichtung zu SPEICHERUNG von Variablen-Daten, welche auch von EXTERN generiert/ und abgelesen werden können

2) So wie der DIALOG hier ausformuliert ist wird er zwangsläufig früher oder später im Hintergrund blinken was in etwa einer ERROR-Meldung gleichkäme, die überigens ebenfalls ungewollt auftreten wird nach user-Druck auf "Abbrechen" resp. "Abbruch" und den ganzen Skritp-Ablauf durcheinander hauen wird (="verwirren").



nun: Bau-gleiches Skript, aber:
1) mit global/handlern gelöst
2) Zusatzfunktion mit einer property:
Zitat:
global dername, derpfad
--
neu:
property VorDrop : "Intern belegter Variablen-Wert"
on open Gedroppt
tell application "Finder"
set derpfad to ((item 1 of Gedroppt) as text)
set dername to ((name of folder derpfad) as text)
--
Bedingung, welches SubScript startet
if dername contains "a" then my SubScriptA()
if dername contains "b" then my SubScriptB()
--
VorDrop lesen:
my PropertyLeser()
end tell
end open

--
Und hier die "Unter-Scripts"
on SubScriptA()
display dialog "Der a-Ordner heißt" & dername & return & "Pfad: " & derpfad
end SubScriptA

on SubScriptB()
display dialog "Der b-Ordner heißt" & dername & return & "Pfad: " & derpfad
end SubScriptB

(*
neu: handler, welcher ZB von extern(!) aufgerufen würde, vorgängig der "Drop-Aktion" um die Property mit einem Variablen-Wert zu belegen, welcher durch die "Drop-Aktion" wieder aufgerufen werden soll, um den Variablen-Wert zu lesen.*)
on PropertyLeser()
display dialog "Hat sich der Variablen-Wert verändert durch vorgängige Belegung durch externes Skript, welches diesen handler aufgerufen hat ?
Ergebnis:
" & VorDrop
end PropertyLeser

end


leider ist der Variablen-Wert für VorDrop trotz property nicht speicherbar weil ich schlicht nicht mehr weiss wie man das macht, was ja ein Manko bedeutet in Bezug auf deine Frage:

iScript hat Folgendes geschrieben:
Aufruf von Scripten aus Scripten heraus, und die Übergabe/Speicherung von properties von einem Script zum anderen

_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 06.03.2006 - 01:27, insgesamt 14-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 14.01.2006 - 13:34    Titel: Antworten mit Zitat

@ Willy
Ich habe deinen Beitrag vom ursprünglichen Thema abgetrennt, weil du damit schon wieder in eine ganz andere Richtung davon ziehst.

iScript hatte ja geschrieben, dass es nicht in Frage kommt, seine Einzelskripte in verschiedene Handler zu verpacken, da die Einzelskripte ebenfalls Handler enthalten. - Und Handler innerhalb von Handlern geht eben nicht.

Zu deinem Problem mit der Speicherung der Property:
Du wunderst dich, dass sich der Wert nicht ändert? - Du gibst im ganzen Skript auch nirgends eine Anweisung zur Änderung der Property.

Zitat:
PS: weisst du, @iScript, wie man den Dialog so ausformulieren und aufrufen muss, sodass er auch auf OSX ausnahmslos ohne Zutun des users automatisch in den Vordergrund rückt? (und nicht einfach wie jetzt ZB im Dock herumblinkt ) ?


Hierfür gibt's 'activate'!
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
spirigwi
•----->
•----->


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

BeitragVerfasst am: 14.01.2006 - 15:06    Titel: Antworten mit Zitat

Zitat:
run script SubScriptA of me --so läuft der inside-handler schon, aber das ganze Skript SubScriptA ebenfalls dazu
--
ich weiss nicht wie man so einen einzelnen handler vom Skript her aufrufen kann, so ist sicher falsch :
EinHandlER() of me-- was hier schreiben? of script SubScriptA? Wie hiesse die Adresse für Aufruf von extern( mit load script )

script SubScriptA
   
property InSubScriptAProperty : "Mit property des SubScriptA"
   
my EinHandlER()
   
on EinHandlER()
      
display dialog "bin ein handler im script: " & InSubScriptAProperty
   
end EinHandlER
end script

Das war aber nur eine Nebenfrage, die sich entwickelt hat und die ich sicherlich aus dem "AppleSkript für absolute Anfänger" oder in deinem Workshop herauslernen kann, hab nur noch nicht nachgeschaut dort, werde ich tun.

re-edit da nicht mehr nötig
Auch die noch offen Frage des activate lässt sich doch im jetzigen Stadium besser plazieren, dachte ich:
Snow hat Folgendes geschrieben:
Hierfür gibt's 'activate'!
an welcher Stelle soll ich es setzen ?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 06.03.2006 - 00:47, insgesamt 7-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 14.01.2006 - 15:23    Titel: Antworten mit Zitat

Properties durch externes Skript ändern, steht in fogendem Thema:

http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=502
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
spirigwi
•----->
•----->


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

BeitragVerfasst am: 14.01.2006 - 16:38    Titel: Antworten mit Zitat

Danke für den link Sad
Und jetzt, wie machen?
_________________
 Skript-Fan => ein � -Fan =>Scr¿¿-KongFuSius_Kurpfusius


Zuletzt bearbeitet von spirigwi am 06.03.2006 - 00:48, insgesamt 4-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 14.01.2006 - 17:38    Titel: Antworten mit Zitat

spirigwi hat Folgendes geschrieben:
Danke für den link Sad
Und jetzt, wie machen?


Was wie machen?
Ich habe dir den Link gegeben, weil ich dort beschrieben hatte, wie man Properties eines externen Scripts ändert. - Inkl. Beispielen.

Warum machst du immer alles komplizierter als es ist?

Um eine Property zu lesen, braucht es keinen Handler.

log PropertyName

So hast du's im Eventprotokoll.

display dialog PropertyName

Und so in einem Dialog.

Die Unterscripts von iScript braucht man nicht - ist anderes Thema.
Wer hier liest wird wohl herumrätseln, welchen Zweck sie beim Ändern einer Property von außen erfüllen.

end -- für OSX ?

Das braucht's gar nicht, das hast du in deinem Beispiel eingeschleppt.

Wozu einen Handler PropertyAenderER innerhalb eines Scripts, bei dem du Properties von außen ändern möchtest?

Wenn du das Prinzip bzw. die Funktionsweise mal verstanden hast, kannst du eine Technik beliebig in anderen Skripten anwenden.

Zum Verständnis braucht man aber nicht mehr als

Skript 1 -- mal eben auf dem Desktop gespeichert
property Extern : "noch nichts"

und Skript 2, das die Property Extern im soeben gespeicherten Skript 1 liest und ändert.

set ScriptOrt to (path to desktop as string) & "ExtProp.scpt"
set myInternScript to load script ScriptOrt
--
Property lesen:
display dialog myInternScript's Extern
--
Variable ändern
set myInternScript's Extern to "Jetzt is was"
--
und im externen Script wieder speichern
store script myInternScript in file ScriptOrt with replacing


Das sind nun ein paar wenige Zeilen, die ausreichend sind, um die Funktionsweise zu verstehen. Alles was darüber hinaus geht, stiftet nur Verwirrung. Also versuche bitte erst einmal, das Grundprinzip zu verstehen, anstatt viele aufgeschnappte Schnipsel in einem Scriptmonster unter zu bringen und somit jeden hier zu zwingen, völlig überfrachtete Scripte zu analysieren.

Wenn dir das obige Beispiel noch nicht anschaulich genug ist, kannst du das Skript 2 auch so schreiben:

property Zaehler : 0
set Zaehler to Zaehler + 1
set ScriptOrt to (path to desktop as string) & "ExtProp.scpt"
set myInternScript to load script ScriptOrt
--
Property lesen:
display dialog "Externer Propertywert: " & return & myInternScript's Extern
--
Variable ändern
set myInternScript's Extern to "Das Skript wurde " & Zaehler & " mal ausgeführt."
--
und im externen Script wieder speichern
store script myInternScript in file ScriptOrt with replacing


Ich hoffe, das Thema ist hiermit abgehakt.
Gruß
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
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 -> AppleScript-Forum 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