[GastForen Programmierung/Entwicklung AppleScript Ordner überwachen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Ordner überwachen

JeT
Beiträge gesamt: 40

13. Jan 2017, 13:19
Beitrag # 31 von 37
Beitrag ID: #554914
Bewertung:
(10162 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Hans

top!

Es ploppt aber irgendwie kurz wieder das "Neue Mail"-Fenster auf – vielleicht habe ich was kaputt gepfuscht (s. u)?

Wie kriege ich denn nur den Namen des überwachten Ordner aus dem Pfad?

Habe schonmal ein bisschen rumprobiert, daran scheiterts aber:

Code
on adding folder items to thisFolder after receiving fileList 
repeat with curFile in fileList
set filePath to (curFile as string)
set aName to name of (info for (file filePath))
sendMsg(aName, thisFolder)
end repeat
end adding folder items to

on sendMsg(msgSubject, thisFolder)
set folderPath to POSIX path of (thisFolder)
tell application "Mail"
set newMessage to make new outgoing message with properties ¬
{subject:msgSubject, content:msgBody & return & return & folderPath & return & return}
tell newMessage
set visible to false
set sender to msgSender
make new to recipient at end of to recipients with properties {name:msgName, address:msgAddress}
end tell
save newMessage
send newMessage
end tell
display notification msgSubject with title "Ordnerüberwachung // Neue Datei"



Dankeschön
Jens


als Antwort auf: [#554901]
X

Ordner überwachen

Hans Haesler
  
Beiträge gesamt: 5826

13. Jan 2017, 16:46
Beitrag # 32 von 37
Beitrag ID: #554922
Bewertung:
(10133 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jens,

das Aufploppen des neuen Mailfensters kann ich nicht nachvollziehen.

Um den Namen des überwachten Ordners zu bekommen, muss dessen Pfad nicht festgestellt werden. Denn dieser steckt in 'thisFolder'.

Es reicht, den "Finder" zu bitten, den Namen des Kerls herauszurücken. Am besten gleich zu Beginn des 'on adding folder items'-Abschnitts.

Code
on adding folder items to thisFolder after receiving fileList 
tell application "Finder"
set folderName to name of thisFolder
end tell
repeat with curFile in fileList
tell application "Finder"
set fileName to name of curFile
end tell
sendMsg(fileName, folderName)
end repeat
end adding folder items to

on sendMsg(msgSubject, folderName)
tell application "Mail"
set newMessage to make new outgoing message with properties ¬
{subject:msgSubject, content:msgBody & return & return & folderName & return & return}
tell newMessage
set visible to false
set sender to msgSender
make new to recipient at end of to recipients with properties {name:msgName, address:msgAddress}
end tell
save newMessage
send newMessage
end tell
display notification msgSubject with title "Ordnerüberwachung // Neue Datei"
end sendMsg

Das Speichern des Dateinamens geschieht jetzt auch mit dem "Finder". Das bisher verwendete 'info for' wird als deprecated bezeichnet (= veraltet).
Der zweite Beitrag dieses Themas ist von Ende März 2005. Und am Ende ist auch der Tipp zum Unsichtbarmachen: http://www.hilfdirselbst.ch/..._P419434.html#419434

Übrigens: In den Mail.app-Voreinstellungen kann definiert werden, dass bei eingehenden Mails ein Ton gespielt wird.
Alternative: Die Benachrichtigungs-Zeile ergänzen mit sound name "Xxx"

Code
  display notification msgSubject with title "Ordnerüberwachung // Neue Datei" sound name "Purr" 

Gruss, Hans


als Antwort auf: [#554914]

Ordner überwachen

Hans Haesler
  
Beiträge gesamt: 5826

13. Jan 2017, 22:53
Beitrag # 33 von 37
Beitrag ID: #554933
Bewertung:
(10089 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jens,

bei mir werden so die gesendeten Mitteilungen entfernt.
Einzufügen (wie gezeigt) zwischen end repeat und der Zeile end adding folder items to

Code
  end repeat 
delay 1
tell application "Mail"
delete every message of mailbox "Sent Messages" of account "Xyz"
end tell
end adding folder items to

Das "Xyz" durch den Namen Deines Accounts ersetzen. Die Pause mit delay 1 ist notwendig, damit es klappt.

Gruss, Hans


als Antwort auf: [#554914]

Ordner überwachen

JeT
Beiträge gesamt: 40

16. Jan 2017, 10:18
Beitrag # 34 von 37
Beitrag ID: #554964
Bewertung:
(9985 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Hans,


das mit dem Ordnername funktioniert, einen Sound möchte ich gar nicht, nur die eingeschobene Benachrichtigung, aber das funktioniert ja jetzt auch.

set visible to false habe ich ja... keine Ahnung warum man das Fenster dann noch sieht.

Deine Zeilen zum Mail löschen schauen mir danach aus, als ob er meinen Gesendet Ordner komplett leert – das möchte ich ja auf keinen Fall?


Grüße
Jens


als Antwort auf: [#554933]

Ordner überwachen

Hans Haesler
  
Beiträge gesamt: 5826

16. Jan 2017, 11:02
Beitrag # 35 von 37
Beitrag ID: #554967
Bewertung:
(9974 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jens,

dann versuchen wir es mal so:

Code
on adding folder items to thisFolder after receiving fileList 
tell application "Finder"
set folderName to name of thisFolder
end tell
repeat with curFile in fileList
tell application "Finder"
set fileName to name of curFile
end tell
sendMsg(fileName, folderName)
end repeat
end adding folder items to

on sendMsg(msgSubject, folderName)
tell application "Mail"
set newMessage to make new outgoing message with properties ¬
{subject:msgSubject, content:msgBody & return & return & folderName & return & return}
tell newMessage
set visible to false
set sender to msgSender
make new to recipient at end of to recipients with properties {name:msgName, address:msgAddress}
end tell
save newMessage
send newMessage
delay 1
set allMsg to messages of mailbox "Sent Messages" of account "Xyz"
delete item 1 of allMsg
end tell
display notification msgSubject with title "Ordnerüberwachung // Neue Datei" sound name "Purr"
end sendMsg

Wenn die aktuelle Mitteilung gesendet ist:
– Eine Pause von einer Sekunde einlegen;
– eine Liste der gesendeten Mitteilungen erzeugen;
– das erste Element dieser Liste entfernen.

Hier klappt es. Und bei Dir?

Gruss, Hans


als Antwort auf: [#554964]

Ordner überwachen

JeT
Beiträge gesamt: 40

16. Jan 2017, 11:40
Beitrag # 36 von 37
Beitrag ID: #554969
Bewertung:
(9962 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Hans,

klappt leider noch nicht ganz – der Name ist so wie er unter Beschreibung in der Account-Liste eingegeben ist, oder?

Das ganze ist ein IMAP-Account, liegts vielleicht daran?


Grüße
Jens


als Antwort auf: [#554967]

Ordner überwachen

Hans Haesler
  
Beiträge gesamt: 5826

16. Jan 2017, 12:24
Beitrag # 37 von 37
Beitrag ID: #554970
Bewertung:
(9945 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jens,

im Prinzip ja. Von wegen IMAP: keine Ahnung, ob das einen Unterschied macht. :-( Zudem bin ich gerade unterwegs und kann nicht nachforschen. Vielleicht heute Abend.

Gruss, Hans


als Antwort auf: [#554969]
X