// In der Regel tragen sich gestartete Programme in der Taskbar ein.
// Wenn man programmseitig ermitteln will, wieviele Einträge vorhanden
// sind, kann man das folgendermaßen machen:

// Getestet mit D4 unter WinME
uses commctrl; 
 
function TaskbarTabZahl(var Zahl: integer): boolean; 
var 
  h1, h2: THandle; 
begin 
  result := false; 
  h1 := FindWindow('Shell_TrayWnd', nil); 
  if (h1 <> 0) then begin 
    h2 := FindWindowEx(h1, 0, 'ReBarWindow32', nil); 
    if (h2 <> 0) then begin 
      h1 := FindWindowEx(h2, 0, 'MSTaskSwWClass', nil); 
      if (h1 <> 0) then begin 
        h2 := FindWindowEx(h1, 0, 'SysTabControl32', nil); 
        if (h2 <> 0) then begin 
          Zahl := SendMessage(h2, TCM_GETITEMCOUNT, 0, 0); 
          result := true; 
        end; 
      end; 
    end; 
  end; 
end; 
 
 
// Beispielaufruf 
procedure TForm1.Button1Click(Sender: TObject); 
var i: integer; 
begin 
  if TaskbarTabZahl(i) then 
    showmessage(inttostr(i)) 
  else showmessage('Fehler'); 
end;



Zugriffe seit 6.9.2001 auf Delphi-Ecke