// Hiermit kann man herausfinden, wann ein Termin (innerhalb
// eines bestimmten Zeitraumes)
in Outlook
// eingetragen bzw. geändert wurde.


// Getestet mit D4 unter XP und Office 2003

uses ComObj; 
 
function TerminAbfrage(von, bis: TDate; gef: TStrings): Boolean; 
var 
  z: Integer; 
  Space, Outlook, Alles, Termin, Items: OleVariant; 
  s, sv, sb: string; 
begin 
  result := false; 
  gef.clear; 
  try 
    Outlook := CreateOleObject('Outlook.Application'); 
  except 
    exit; 
  end; 
  try 
    Space := Outlook.GetNamespace('MAPI'); 
    Space.Logon(EmptyParam, EmptyParam, False, True); 
    Alles := Space.GetDefaultFolder($9); 
    Items := Alles.Items; 
    for z := 1 to Items.count do 
    begin 
      Termin := Items.Item(z); 
      if (Termin.Start >= von) and (Termin.End <= bis) then begin 
        if Termin.CreationTime = Termin.LastModificationTime 
          then s := '   (nicht geändert)' else 
          s := '   geändert: ' + DateTimeToStr(Termin.LastModificationTime); 
        sv := DateTimeToStr(Termin.start); 
        sb := DateTimeToStr(Termin.End); 
        gef.add(sv + '   -   ' + sb + 
          '    ' + Termin.Subject + '   ' + Termin.Body + 
          '  eingetragen: ' + DateTimeToStr(Termin.CreationTime) + s); 
      end; 
    end; 
    Result := True; 
  except 
  end; 
  Space.Logoff; 
  Termin := Unassigned; 
  Alles := Unassigned; 
  Outlook := Unassigned; 
end; 


// Beispielaufruf 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  von, bis: string; 
begin 
  screen.cursor := crhourglass; 
  von := '1.1.2012'; 
  bis := '31.12.2012'; 
  if not 
    TerminAbfrage(strtodate(von), strtodate(bis), Memo1.lines) 
    then Memo1.text := 'FEHLER' else 
    if Memo1.text = '' then 
      Memo1.text := 'Nichts gefunden!'; 
  screen.cursor := crdefault; 
end;

 


 

Zugriffe seit 6.9.2001 auf Delphi-Ecke