Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Programm Starten und in Systemtray tun! (https://www.delphipraxis.net/66003-programm-starten-und-systemtray-tun.html)

roth 23. Mär 2006 12:01


Programm Starten und in Systemtray tun!
 
Guten Tag!
Ich möchte gerne ein beliebiges Programm starten...bzw in meinem fall ist es ein Audio Player von Creative!
Nun möchte ich nicht das wenn ich Musik laufen lasse, dass der Player die ganze Zeit unten in der Taskleiste ist!

Ist es mit delphi irgendwie möglich das ich die exe vom player includen kann und dann den player aus der Taskleiste verschwinden zu lassen und in den Systemtray tun?

Wie sonst ein programm in Systemtray tun weis ich schon...nun seit ihr gefragt? :bouncing4: :bounce1: :bouncing4:

Vielen Dank!

ManuMF 23. Mär 2006 16:18

Re: Programm Starten und in Systemtray tun!
 
Hallo,

du könntest eine Anwendung schreiben, die ein Tray-Icon hat. Das Icon (als Symbol) könntest du aus dem Player bekommen. Dann müsstest du mit
Delphi-Quellcode:
ShellExecute(Application.handle, nil, CreativePlayer, nil, CreativePlayerPfad, SW_HIDE);
das Programm minimiert starten, am Besten ein wenig warten (Hier im Forum suchenDelay oder Timer) und diesen Code ausführen (ungetestet):

Delphi-Quellcode:
procedure CreativePlayerVerstecken(Zeigen: Boolean);
var
  CPHandle: hWnd;
begin
  CPHandle := FindWindow(nil, 'Titelzeile des Creative-Players');
  if (CPHandle = 0) then
    exit;

  case Zeigen of
    false:
      SetWindowLong(CPHandle, GWL_EXSTYLE, GetWindowLong(CPHandle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
    true:
      SetWindowLong(CPHandle, GWL_EXSTYLE, GetWindowLong(CPHandle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and WS_EX_APPWINDOW);  
  end;
end;
Den Player-Eintrag zeigen / verstecken und entsprechend das Tray-Icon anzeigen / verstecken.
Ich habe das nicht getestet, auch bei der Zeile fürs Anzeigen bin ich mir nicht sicher. Mit
Delphi-Quellcode:
ShowWindow(CPHandle, SW_SHOW);
kannst du auch das Fenster zeigen / verstecken. Aber wie gesagt - ungetestet und mehr eine Anregung ;-)

Gruß,
ManuMF

tr909 23. Mär 2006 16:26

Re: Programm Starten und in Systemtray tun!
 
Ich benutze hierfür nun immer die comp. JvTrayIcon
vorher hatte ich nen etwas komplexeren code, den ich noch mal zusammen suchen müste.

Gruß
tr909


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.

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