Thema: Delphi Taskleiste programmieren

Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Taskleiste programmieren

  Alt 10. Okt 2004, 20:59
Moin,

was hast du eigentlich vor?
Windows mal eben neuschreiben?

vielleicht hilft dir das hier ja weiter...

Delphi-Quellcode:
type
  PMyEnumParam = ^TMyEnumParam;
  TMyEnumParam = record
    lb: TListbox;
  end;

  :
  :

implementation
uses TlHelp32, ShellApi;

function GetWindows(const hWnd : Longword; Param: PMyEnumParam): LongBool; stdcall;
var
  Len : Longint;
  S : String;
begin
  Result := True;
  if not ( IsWindow(hWnd) and IsWindowVisible(hWnd) ) then Exit;
  Len := SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0);
  if Len > 0 then
  begin
    SetLength(S, Len);
    SendMessage(hWnd, WM_GETTEXT, Len + 1, Longint(Pchar(S)));
    Param.lb.Items.Add(s);
  end;
end;

procedure TForm.ButtonClick(Sender: TObject);
var Param: TMyEnumParam;
begin
  ListBox.Clear;
  Param.lb := Listbox;
  EnumWindows(@GetWindows, LPARAM(@Param));
end;
das ist zwar nicht 100% das was du gefragt hast.
Aber die Unit: TlHelp32 solltest du dir mal genauer anschauen, mit ihr kannst du vielleicht diese Dinge realisieren, die du vorhast.
Das ist ziemlich systemnah und deshalb nicht gerade das, was man ständig braucht.

Und zu deiner Frage mit den zuletzt gestarteten Programmen, das steht in der Registry. Leider ist das aber nicht ganz zu einfach, weil dort nur steht, was so alles aufgerufen wurde. Die statitische Auswertung darüber, was angezeigt wird musst du scheinbar selber übernehmen.
Na dann, viel Spass...

MfG
Thorsten
  Mit Zitat antworten Zitat