Zuflliger "Neue Mail" Infosound

7. September 2009 Posted by Michael Siegrist

Beim Erhalt einer neuen Mail wird von IBM Lotus Notes immer wieder der gleiche Infosound verwendet. Die hier beschriebene Code-Erweitung  ndert jedesmal, wenn die Maildatenbank neu geffnet wird, per Zufall auf einen anderen Infosound. Hierzu wird ein Verzeichnis mit vorhandenen WAV Dateien verwendet, welches vorher natrlich konfiguriert werden muss, wozu der hier beschriebene Agent unter 3. dient.
Wir legen bei uns die Mailtunes in ein hndisch erzeugtes Unterverzeichnis des Lotus Notes Programmverzeichnisses. Das Verzeichnis kann jedoch auch beliebig auf der lokalen Platte liegen.

Nun zum Code :

1. Im Datenbankscript der Maildatenbank/Schablone folgende Sub hinzufgen:

 
Sub CMT
     REM \"for setup the local mail tune\"
     
     Set Session=New NotesSession
     Dim tAgent As NotesAgent
     Dim availTunes List As String
     Dim i, count As Integer
     Dim filename As String
     Dim ver As Integer
     Dim wavfiledir As String
     Dim tune As String
     Dim inivar  As String
             
     wavfiledir=session.Getenvironmentstring(\"MailTuneDir\")
     If (wavfiledir=\"\") Then
             If session.Getenvironmentstring(\"MailTuneStatus\") = \"True\" Then
                     Print \"No User Specific Tunes Found, starting Config ..\"
                     Set tAgent= session.currentdatabase.getAgent(\"SetUpTunes\")
                     Call tAgent.Run
             End If
             wavfiledir=session.Getenvironmentstring(\"MailTuneDir\")
     End If
     ver=Mid$(Session.notesversion,9,1)           \'This will return a 4 or a 5
     availTunes(0)=\"Please copy some WAV files into \" & wavfiledir   \'This handles the \"I don\'t have any .wav files\" issue
     If (ver<5) Then
             inivar=\"NewMailTune\"   \' For Release 4 Notes.ini Files
     Else
             inivar=\"Incoming Mail Sound\"   \' For Release 5 and higher
     End If
             
\' get correct path format due to client incompatibilites        
     If Right(wavfiledir,1) <> \"\" Then
             wavfiledir = wavfiledir & \"\"
     End If
             
     fileName = Dir$(wavfiledir & \"*.wav\", 0)
     If filename<>\"\" Then        
             Do While fileName <> \"\"                     \'This builds an array of .wavs
                     availTunes(count+1) = fileName
                     fileName = Dir$()
                     count=count+1
             Loop                                                          
             Randomize                                    \'Initialize random # generator
             i=Cint(Rnd()*count)
             tune=availTunes(i)                           \'pick a tune, any tune
             Call Session.SetEnvironmentVar (inivar, wavfiledir &  tune,True)    
             Print \"Changed NewMailTune to: \" & tune  \'gimme some feedback
     Else
             Print \"No Files in MailTune Directory found !\"
     End If
     End
\' just some error handling if the mailtune dir isnt there
PathNotFound:
     Print \"MailTune Dir  which is configured in the Notes.ini not Found on this System ! Try to create a new one !\"
     End
     
End Sub

2. Am Ende des Postopen events der Maildatenbank/Schablone einfach nur den Call CMT hinzufgen:

 
Sub Postopen(Source As Notesuidatabase)
     \'*********************************************
     \'Begin Quota Checking Code
     \'*********************************************
     
     Dim quotaCheck As New CheckQuota
     
     If quotaCheck.isEnabled Then
             If Not(quotaCheck.IsQuotaMailFileOwner) Then
                     Call quotaCheck.SetCalMgrINI
             End If
     End If
     
     \'*********************************************
     \'End Quota Checking Code
     \'*********************************************
     Call FollowUpMigration(source)
     \' Custom expiration feature code
     Dim s As New NotesSession
     
     If s.GetEnvironmentString(\"CustomExpirationEnabled\") = \"1\" Then        
             Call  DBOpenExtendedForCustomExp(source)
     End If
     Call SetupCalendarViewNotices
     \'*********************************************

     \'        for mailtune changes

     \'*********************************************

     Call CMT
       
End Sub

3. Zum Aktivieren/Deaktivieren kann z.B. dieser Agent dienen, wobei dieser als Alias den Namen \”SetUpTunes\” haben sollte, da dieser aus der Sub CMT referenziert wird:

 
Sub Initialize
     Dim uiws As New notesuiworkspace
     Dim session As New notessession
     Dim FilePath As String
     Dim Info As Integer
     FilePath =session.GetEnvironmentString(\"MailTuneDir\")
     If (FilePath =\"\") Then
             FilePath=\"C:\"
     End If
     
     
     Info = uiws.Prompt (PROMPT_YESNO,\"MailTunes\", \"Enable MailTunes ?\")
     If Info = 1 Then
             session.Setenvironmentvar \"MailTuneStatus\", \"True\"
             mailtunedir = uiws.OpenFileDialog( False, \"Bitte das Verzeichniss mit den WAV Files auswhlen !\",\"WAV Daten|*.wav\", FilePath)
             If Isarray(mailtunedir) Then        
                     If ( mailtunedir(0) <>\"\") Then
                             FilePath=Strleftback(Cstr(mailtunedir(0)),\"\")
                             session.Setenvironmentvar \"MailTuneDir\", FilePath
                     End If
             End If
     Else
             Info = uiws.Prompt (PROMPT_YESNO,\"MailTunes\", \"Disable MailTunes ?\")
             If Info =1 Then
                     session.Setenvironmentvar \"MailTuneStatus\", \"False\"
             End If
     End If
     
End Sub

4. Hier noch ein paar Wav files mailtunes.rar.
Allerdings gibt es im Internet viele Web-Sites, welche sich nur mit solchen WAV files beschftigen.

Comments are closed.

What's hot