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

Fax log

 
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
clae
•->
•->


Anmeldedatum: 09.05.2005
Beiträge: 8
Wohnort: Berlin

BeitragVerfasst am: 13.05.2005 - 01:38    Titel: Fax log Antworten mit Zitat

Ich hab mal wieder ein Problem. Irgendwie habe ich AS noch nicht so ganz verstanden.
Die Software FaxSTF kann ein Script starten nach dem es ein Fax geschickt hat. z.B. einen Sendebericht, der mir sehr wichtig währe.
Die Software liefert auch ein Script, welches einen Sendebericht erstellt mit nur leider speichert dieses Script den Bericht auf dem Desktop. nach ein paar Tagen wird der Desktop dann voll sein. nun dachte cih mir, es kann ja nicht so schwer sein diesen bericht in einem Ordner auf dem Schreibtisch speichern zu lassen. Das bekomme ich aber irgendwie nicht hin. Hier das orginal Script mit anmerkungen, was ich wo ändern wollte. Es ist leider sehr umfangreich.
(*
Sent Faxes Daily Log
Creates a log of faxes sent on the Desktop
11/15/99 v1.0
Chad K.
*)


global SendersSM
global ReceiversSM
global TransSpeed
global numberofPages
global EndTime
global theStartTime
global TransResult
global FullPath
global NewFileName
global TargetLocation


on «event STFCSENT» theCaller

set SendersSM to item 1 of theCaller
set ReceiversSM to item 2 of theCaller
set TransSpeed to item 3 of theCaller
set numberofPages to item 4 of theCaller
set EndTime to item 5 of theCaller
set theStartTime to item 6 of theCaller
set TransResult to item 7 of theCaller
set FullPath to item 8 of theCaller

CreateLog()

end «event STFCSENT»

on CreateLog()

set NewFileName to "Faxes Sent • " & (month of (current date) as string) & " " & (day of (current date) as string)
copy NewFileName as string to NewFileName

tell application "Finder"
activate

set TargetLocation to (path to desktop)

hier wollte ich eingreifen: mit hilfe meines neu erlangten wissen von vorhergegangenen Fragen an dieses Forum - Danke snow ! ich habe geschrieben:

set DeskPfad to (path to desktop as string)
set TargetLocation to (DeskPfad & "Fax Sendeberichte:") as alias

weiter das orginal script:

set TargetLocationFiles to every item of folder TargetLocation as string

if file NewFileName of folder TargetLocation exists then
set FileExists to "yes" as string
else
set FileExists to "no" as string
end if

end tell

if FileExists = "yes" then

WriteToLog()

else

tell application "Finder"
activate
set NewFile to make file at folder TargetLocation
set name of NewFile to NewFileName
end tell

WriteToLog()

end if

end CreateLog

on WriteToLog()

tell application "Finder"
activate

try
open for access file NewFileName with write permission

on error ErrMsg number ErrNum
beep 1
with timeout of 28800 seconds
display dialog "An error occured open log for access!" & return & return & ErrMsg & ErrNum with icon 0
end timeout
end try

-- Get eof, write new on next available line
set TheEnd to (get eof of file NewFileName of folder TargetLocation) as string
set NewLineWrite to (TheEnd + 1)

try

write "====================================================================" & return starting at NewLineWrite to file NewFileName of folder TargetLocation
write "Receivers Station Message: " & ReceiversSM & return to file NewFileName of folder TargetLocation
write "Transmission Speed: " & TransSpeed & return to file NewFileName of folder TargetLocation
write "Number of Pages: " & numberofPages & return to file NewFileName of folder TargetLocation
write "Start Time: " & theStartTime & return to file NewFileName of folder TargetLocation
write "End Time: " & EndTime & return to file NewFileName of folder TargetLocation
write "Result: " & TransResult & return to file NewFileName of folder TargetLocation
write "Path to fax sent: " & FullPath & return to file NewFileName of folder TargetLocation
write "====================================================================" & return & return to file NewFileName of folder TargetLocation

on error ErrMsg number ErrNum
beep 1
with timeout of 28800 seconds
display dialog "An error occured writing to log!" & return & return & ErrMsg & ErrNum with icon 0
end timeout
end try

close access file NewFileName of folder TargetLocation

end tell
end WriteToLog


on «event STFCRECD» theCaller
tell application "Finder"
activate
with timeout of 28800 seconds
display dialog "The Sent Faxes Dialy Log AppleScript is for use after sending faxes only." buttons {"OK"} default button 1 with icon 0
end timeout
end tell
end «event STFCRECD»

on «event STFCCALD» theCaller
tell application "Finder"
activate
with timeout of 28800 seconds
display dialog "The Sent Faxes Dialy Log AppleScript is for use after sending faxes only. It can not be selected from the Caller ID FaxBrowser preferences" buttons {"OK"} default button 1 with icon 0
end timeout
end tell
end «event STFCCALD»

Die Fehlermeldung lautete:
Beim ausführen dieser Skriptdatei sende bericht log ist ein Fehler aufgetreten Fehlernummer: -1753
can't make every item of "OS 9:Desktop Folder:Fax Sendeberichte:"") of application "Finder" into a string.

Wat nu?
ich habe ein bischen ausprobiert mit alias weglassen, string weglassen etc. aber kein ergebnis erziehlt. Da ich jedesmal Faxen muss bin ich auf die Telefonrechnung gespannt. Es so zu schreiben, dass ich ohne Faxen es ausführen kann ist mir nämlich auch nicht gelungen.

Vielen Dank für Hilfe

clae
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


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

BeitragVerfasst am: 13.05.2005 - 08:31    Titel: Antworten mit Zitat

Damits uns etwas leichter fällt zu sehen was dann Snow daraus macht hab ich dein Skript etwas mit Formatieren smart-gesizet, hat abber immernoch (fast ganz) denselben Inhalt(-- 2x musste ich einfügen)

Zitat:
(*
Sent Faxes Daily Log
Creates a log of faxes sent on the Desktop
11/15/99 v1.0
Chad K.
*)
global SendersSM
global ReceiversSM
global TransSpeed
global numberofPages
global EndTime
global theStartTime
global TransResult
global FullPath
global NewFileName
global TargetLocation
on «event STFCSENT» theCaller
set SendersSM to item 1 of theCaller
set ReceiversSM to item 2 of theCaller
set TransSpeed to item 3 of theCaller
set numberofPages to item 4 of theCaller
set EndTime to item 5 of theCaller
set theStartTime to item 6 of theCaller
set TransResult to item 7 of theCaller
set FullPath to item 8 of theCaller
CreateLog()
end «event STFCSENT»
on CreateLog()
set NewFileName to "Faxes Sent o " & (month of (current date) as string) & " " & (day of (current date) as string)
copy NewFileName as string to NewFileName
tell application "Finder"
activate
set TargetLocation to (path to desktop)
--hier wollte ich eingreifen: mit hilfe meines neu erlangten wissen von vorhergegangenen Fragen an dieses Forum - Danke snow ! ich habe geschrieben:
set DeskPfad to (path to desktop as string)
set TargetLocation to (DeskPfad & "Fax Sendeberichte:") as alias
--weiter das orginal script:
set TargetLocationFiles to every item of folder TargetLocation as string
if file NewFileName of folder TargetLocation exists then
set FileExists to "yes" as string
else
set FileExists to "no" as string
end if
end tell
if FileExists = "yes" then
WriteToLog()
else
tell application "Finder"
activate
set NewFile to make file at folder TargetLocation
set name of NewFile to NewFileName
end tell
WriteToLog()
end if
end CreateLog
on WriteToLog()
tell application "Finder"
activate
try
open for access file NewFileName with write permission
on error ErrMsg number ErrNum
beep 1
with timeout of 28800 seconds
display dialog "An error occured open log for access!" & return & return & ErrMsg & ErrNum with icon 0
end timeout
end try
-- Get eof, write new on next available line
set theEnd to (get eof of file NewFileName of folder TargetLocation) as string
set NewLineWrite to (theEnd + 1)
try
write "====================================================================" & return starting at NewLineWrite to file NewFileName of folder TargetLocation
write "Receivers Station Message: " & ReceiversSM & return to file NewFileName of folder TargetLocation
write "Transmission Speed: " & TransSpeed & return to file NewFileName of folder TargetLocation
write "Number of Pages: " & numberofPages & return to file NewFileName of folder TargetLocation
write "Start Time: " & theStartTime & return to file NewFileName of folder TargetLocation
write "End Time: " & EndTime & return to file NewFileName of folder TargetLocation
write "Result: " & TransResult & return to file NewFileName of folder TargetLocation
write "Path to fax sent: " & FullPath & return to file NewFileName of folder TargetLocation
write "====================================================================" & return & return to file NewFileName of folder TargetLocation
on error ErrMsg number ErrNum
beep 1
with timeout of 28800 seconds
display dialog "An error occured writing to log!" & return & return & ErrMsg & ErrNum with icon 0
end timeout
end try
close access file NewFileName of folder TargetLocation
end tell
end WriteToLog
on «event STFCRECD» theCaller
tell application "Finder"
activate
with timeout of 28800 seconds
display dialog "The Sent Faxes Dialy Log AppleScript is for use after sending faxes only." buttons {"OK"} default button 1 with icon 0
end timeout
end tell
end «event STFCRECD»
on «event STFCCALD» theCaller
tell application "Finder"
activate
with timeout of 28800 seconds
display dialog "The Sent Faxes Dialy Log AppleScript is for use after sending faxes only. It can not be selected from the Caller ID FaxBrowser preferences" buttons {"OK"} default button 1 with icon 0
end timeout
end tell
end «event STFCCALD»


clae hat Folgendes geschrieben:

Die Fehlermeldung lautete:
Beim ausführen dieser Skriptdatei sende bericht log ist ein Fehler aufgetreten Fehlernummer: -1753
can't make every item of "OS 9:Desktop Folder:Fax Sendeberichte:"") of application "Finder" into a string.

Wat nu?
ich habe ein bischen ausprobiert mit alias weglassen, string weglassen etc. aber kein ergebnis erziehlt. Da ich jedesmal Faxen muss bin ich auf die Telefonrechnung gespannt. Es so zu schreiben, dass ich ohne Faxen es ausführen kann ist mir nämlich auch nicht gelungen.

Vielen Dank für Hilfe

clae

viel Glück clae! ich bin natürlich viel zu wenig ausgebildet darauf eine vernünftige antwort zu geben, bin aber sehr gespannt darauf
_________________
 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: 13.05.2005 - 15:33    Titel: Antworten mit Zitat

Man braucht eine Referenz, um ein Objekt ansprechen zu können.

Möglichkeiten

file "xyz" of folder "abc" of application "Finder"

Dies ist eine sog. Finder-Referenz, die auch nur vom Finder interpretiert werden kann.

file "Macintosh HD:Dokumente:Unterordner:Datei"
folder "Macintosh HD:Dokumente:Unterordner:"

alias "Macintosh HD:Dokumente:Unterordner:Datei"

Am flexibelsten ist man mit der letzen Version. Sie kann auf Dateien, Programme oder Ordner hin deuten.

Verwirrenderweise interpretieren einige Programme auch einfache Pfadangaben wie "Macintosh HD:Dokumente:Datei" als Referenz (es wird also programmintern so behandelt, als würde vor der Pfadangabe 'alias', 'file' oder 'folder' stehen. - Dies ist aber nicht der Regelfall.

Dein Problem kommt nun daher:

tell application "Finder"
    -- ...
    
set DeskPfad to (path to desktop as string)
    
set TargetLocation to (DeskPfad & "Fax Sendeberichte:") as alias
    --
weiter das orginal script:
    
set TargetLocationFiles to every item of folder TargetLocation as string
    --
...
end tell


Der Fehler liegt in diesem Fall in der Zeile des Originalskripts.
Die Abarbeitung sieht nämlich so aus:

every item of TargetFolder -- Ergebnis ist eine Liste mit Referenzen
Der Bösewicht lautet nun 'as string'. Hier wird nun versucht, die soeben erzeugte Liste zu einem Text zu konvertieren. Dies schlägt allerdings fehl und somit sind wir bei der Fehlermeldung, die du bekommen hast.

Meiner Meinung nach müsste es genügen, die Zeile so zu schreiben:

set TargetLocationFiles to every item of TargetLocation

Die Variable TargetLocation beinhaltet eine gültige Referenz zum Zielordner. Mehr sollte nicht nötig sein. Ich konnte allerdings auch nichts finden, wo die neue Variable TargetLocationfiles - also diese Liste mit Referenzen - weiter benutzt wird. Außerdem ist mir völlig unklar, warum hier versucht wird, einen Textwert aus dieser Liste zu generieren. Ich könnte mir vorstellen, dass man eine Liste der Dateien im Zielordner erstellt, um feststellen zu können, ob eine Datei mit bestimmtem Namen bereits existiert. Dann benötigt man aber die Referenzen und keine Textwerte. In dem Skriptteil, den du gepostet hast, wird die Variable TargetFolderFiles gar nicht verwendet - somit ist eigentlich die ganze Zeile überflüssig.

Nachtrag: Jetzt glaube ich zu wissen, warum dort 'as string' steht. Die Variable TargetLocation enthält eine Referenz in Form von 'alias "Macintosh HD:Desktop Folder:".
Vor dieser Variablen steht nun aber das Wort 'folder', was aus einem Textwert ebenfalls eine Referenz machen könnte. Nun ist das aber doppelt gemoppelt also wird die Referenz innerhalb der Variablen durch 'as string' wieder rückgängig gemacht - es wird ein Textwert daraus. Und durch 'folder' wird daraus dann wieder eine Referenz.
Es ist möglich, dass das Beispiel unter einer älteren AppleScript-Version noch richtig funktionierte. Die aktuelle Version würde hier aber eine Klammerung benötigen.

set TargetLocationFiles to every item of folder (TargetLocation as string)

Aber wie bereits gesagt: Doppelt gemoppelt. Und außerdem wird die Zeile ja anscheinend überhaupt nicht benötigt.
_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
clae
•->
•->


Anmeldedatum: 09.05.2005
Beiträge: 8
Wohnort: Berlin

BeitragVerfasst am: 20.05.2005 - 22:12    Titel: mal funktionierts mal nicht Antworten mit Zitat

Ich habe resigniert. Irgendwie funktionierts mal und dann wieder nicht. Ich habe den Rechner umgestellt auf OS X. Da kann ich wenigstens problemlos Drucken, ohne einen Ordner überwachen zu müssen. Ich kann einfach und von allen Rechnern des Netzwerks faxen und bekomme eingehende Faxe per Mail, ohne dass ich umständliche Scripte schreiben muss die ich nicht verstehe.
Mir sind natürlich noch diverse Dinge unter OSX eingefallen, die man verscripten kann. Ich steige nun um auf OSX-Forum. Vielen Dank besonders an Snow für die Hilfe.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
spirigwi
•----->
•----->


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

BeitragVerfasst am: 20.05.2005 - 23:15    Titel: Re: mal funktionierts mal nicht Antworten mit Zitat

clae hat Folgendes geschrieben:
Ich habe resigniert.
hab ich dann ein bisschen Lizenz zum tötelen, he, 007?

also, spass beiseite: auf OSX machts spielts bei mir so, bei euch offensichtlich nicht:

set TargetLocation to (path to desktop) --zum zeigen dass es geht ausserhalb "finder"
--Originalskript des faxers
tell application "Finder"
   activate
   set TargetLocation to (path to desktop)
end tell


Dann das event-protokoll:

tell current application
   path to desktop
      alias "McServer:Users:DesktopServer:Desktop:"
end tell
tell application "Finder"
   activate
   path to desktop
      "„Finder“ hat einen Fehler erhalten: „desktop“ kann nicht in item umgewandelt werden."


Gibt es eine Installations-modus wo man nur den "Finder" neuinstallen könnte? Preferences löschen könnte? Das Dienstprogramm-Festplatte von Snow in ähnlicher Situation empfohlen macht auch nichts nützliches
..ratlos
_________________
 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: 23.05.2005 - 20:39    Titel: Antworten mit Zitat

'desktop' ist unter OS X ein referenzierbares Objekt des Finders. Hier merkt AppleScript nicht, dass es ein zusammenhängender Befehl ist und versucht etwas mit dem Objekt 'desktop' zu machen.

Verwendet man 'path to desktop' innerhalb eines Finder-Tell-Blocks, kommt eine Fehlermeldung. Deshalb habe ich des öfteren 'path to "desk"' verwendet. Das funktioniert unter OS 9 und OS X. Eine weitere Möglichkeit wäre 'path to desktop folder' - das funktioniert auch. In einem Finder-Tell-Block oder auch ohne.

Aber wie ich bereits einmal erwähnt hatte: Warum den 'path to'-Befehl in einen Tell-Block setzen? Er muss ja dann extra an die Scripting Additions umgeleitet werden.
_________________
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