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 hCHIP-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:\DATENBIRTHDAY.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 = objFileSys tem.OpenTextFile (szConfigFile) æ ... und zeilenweise abarbeiten Do until objFile.atEndOf Stream æ 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(szComparison Date)) æ Falls der nΣchste Ge burtstag 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 ä & szCom parisonDate & ä - 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, vbInfor mation, ä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.