 |
Keinen Geburtstag mehr vergessen
Immer wieder vergessen Sie den Geburtstag eines Verwandten oder Freundes. Windows kann Sie auf Wunsch automatisch daran erinnern.
Viele Programme können die Aufgabe übernehmen, Sie an diverse Termine wie Geburtstage zu erinnern: Outlook ist nur ein Beispiel. Wenn Sie allerdings Outlook oder die diversen Alternativen nicht nutzen, kann sich auch der Windows Scripting Host (WSH) dieser Aufgabe widmen. Sie benötigen nur eine einfache Textdatei, in der Sie die Geburtstage vermerken, und ein kleines Programm in VBScript.
Die einzelnen Zeilen der Textdatei müssen einem bestimmten Aufbau folgen, wobei in jeder einzelnen Zeile genau ein Geburtstag steht. Gleich am Anfang der Zeile tragen Sie Tag und Monat des Geburtstages ein, jeweils gefolgt von einem Punkt. Diesen Angaben folgt der Name des Geburtstagskindes. Ein korrekter Eintrag wäre beispielsweise: »22.04. Peter Arnold«.
Speichern Sie die Datei unter dem Namen BIRTHDAY.INI im Ordner C:\DATEN. Das VBScript-Programm BIRTHDAY.VBS finden Sie im Kasten abgedruckt und auf der Heft-CD unter CHIP-Code BIRTHDAY. Sie können es mit jedem beliebigen Editor verfassen, zum Beispiel dem Windows Notepad.
Dim objFileSystem Dim objFile Dim objTextStream Dim szConfigFile Dim szBirthday, szName, szThisYear, szNextYear, szComparisonDate Dim szMessage Dim iTime Dim iDifference
æ Standardwerte für einige Variablen szConfigFile = äC:\DATEN\BIRTHDAY.INIô iTime = 5 szMessage = äô szThisYear = CStr(Year(date)) szNextYear = CStr(Year(date)+1)
Set objFileSystem = CreateObject(äScripting.FileSystemObjectô)
æ Config-Datei ermitteln, ... If objFileSystem.FileExists(szConfigFile) Then
æ ... öffnen... Set objFile = objFileSystem.OpenTextFile(szConfigFile)
æ ... und zeilenweise abarbeiten Do until objFile.atEndOfStream æ Geburtstag und Name des Geburtstagskindes lesen szBirthday = objFile.read(6) szName = objFile.readLine
æ Wieviele Tage sind es noch bis zum nächsten Geburtstag? szComparisonDate = szBirthday & szThisYear iDifference = DateDiff(äyô, date, DateValue(szComparisonDate))
æ Falls der nächste Geburtstag im nächsten Jahr liegt if (CInt(iDifference) < 0) then szComparisonDate = szBirthday & szNextYear iDifference = DateDiff(äyô, date, DateValue(szComparisonDate)) end if æ Wenn die Anzahl der Tage innerhalb der Frist liegt if (CInt(iDifference) <= iTime) then szMessage = szMessage & szName & ä am ä & szComparisonDate & ä - noch ä & iDifference & äTageô & Chr(10) end if Loop objFile.close else MsgBox äDie Config-Datei ä & szConfigFile & ä ist nicht vorhanden!ô, vbCritical, äFehlerô end if
æ Falls vorhaben, Liste der nächsten Geburtstage ausgeben If szMessage<>ôä Then MsgBox szMessage, vbInformation, äDie nächsten Geburtstageô End If
Von besonderem Interesse sind hier die beiden Variablen »szConfigFile« und »iTime«, über die Sie das Programm konfigurieren. Die Variable »szConfigFile« enthält den Pfad sowie den Namen der Textdatei, in der Sie die Liste der Geburtstage verwalten. Bei der Variable »iTime« handelt es sich um die Anzahl der Tage, die Sie vor einem anstehenden Geburtstag erinnert werden möchten. Damit Windows das Programm bei jedem Systemstart ausführt, müssen Sie zuletzt im Ordner »Autostart« eine Verknüpfung auf die Datei BIRTHDAY.VBS erzeugen. Sollte dann ein Bekannter Geburtstag haben, meldet sich Windows mit einer Meldung und dem Namen des Geburtstagskindes.
|
 |