Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Taskleiste programmieren (https://www.delphipraxis.net/31525-taskleiste-programmieren.html)

Zacherl 10. Okt 2004 19:33


Taskleiste programmieren
 
Hi,
ich bin gerade dabei eine Taskleiste im neuen Design zu programmieren.
Ich hab hier im Forum schon mal gefragt, aber ein paar Sachen bringen mich nicht weiter ...

Weis jemand, wie ich ...

... die geöffneten/minimierten Fenster (wie in der Taskleiste) auflisten lassen kann?

... die Symbole von in der Tray bifindlichen Programmen anzeigen lassen kann, so dass man auch dessen Kontextmenü aufrufen kann?

... Die LISTE der heufig benutzten Programme unter XP (linke Seite im Startmenü) auslesen kann (mit den Symbolen) ?

:-D :-D :-D

omata 10. Okt 2004 19:59

Re: Taskleiste programmieren
 
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

Zacherl 11. Okt 2004 11:38

Re: Taskleiste programmieren
 
Ist zwar nicht ganz das, was ich suche aber vorerst kann ich es gut gebrauchen, und benutze es auch bis ich was besseres finde.

Danke!

scp 11. Okt 2004 11:51

Re: Taskleiste programmieren
 
Guck doch mal bei Projekten wie geoShell vorbei. Da dürfte das meisste schon gelöst sein, der Quellcode ist aber in C++.

Zacherl 11. Okt 2004 15:16

Re: Taskleiste programmieren
 
Mit C++ kenn ich mich leider gar nicht aus. Trotzdem Danke!

Zacherl 11. Okt 2004 15:43

Re: Taskleiste programmieren
 
Falsche Taste!

Zacherl 11. Okt 2004 18:33

Re: Taskleiste programmieren
 
Ich brauche DRINGEND tips!!!!!!!
:|

alcaeus 11. Okt 2004 18:39

Re: Taskleiste programmieren
 
Hi Florian,

erstens darf hier erst nach 24 Stunden gepusht werden,
und zweitens hast du das Problem auch in anderen Themen (wenn auch geteilt) angesprochen:
http://www.delphipraxis.net/internal...ct.php?t=36429
http://www.delphipraxis.net/internal...ct.php?t=36432
http://www.delphipraxis.net/internal...ct.php?t=36430

Greetz
alcaeus

Zacherl 11. Okt 2004 18:42

Re: Taskleiste programmieren
 
Tut mir leid, wusste ich nicht (das mit den 24 Stunden).

Bei den anderen Threads konnte man das Projekt nicht als Ganzes sehen und somit nicht gezielt Antworten.
Und leider kann man ja keine Threads löschen ...

Christian Seehase 11. Okt 2004 20:42

Re: Taskleiste programmieren
 
Moin Florian,

Zitat:

Zitat von Florian Bernd
Und leider kann man ja keine Threads löschen ...

stimmt, aber jeder Moderator kann es (oder auch sperren).
Am einfachsten, indem Du den Beitrag mit "Beitrag melden" markierst, und einen entsprechenden Kommentar reinschreibst.

Übrigens kannst Du auch Deine Beiträge editieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz