Falls jemand ähnliches vorhat:
Ich habe mein Problem jetzt so gelöst:
1) Ein kurzes Programm geschrieben.
2) Eine Verknüpfung auf den Desktop gelegt.
3) Dieser einen Shortcut zugewiesen (Alt-Ctrl- .) (war erstaunt, dass " . " als Shortcut funktioniert.)
Wenn ich jetzt Alt-Ctrl-. drücke, wird
A) wenn das Musik.Programm geöffnet ist, diesem eine Message geschickt, die von dem Musik-Programm entsprechend verarbeitet wird.
B) wenn das Musik.Programm nicht geöffnet ist, wird es mit ShellExecute geöffnet.
Das funktioniert prächtig und gefällt mir noch besser als meine ursprüngliche Idee mit Rechtsklick auf die minimierte Caption in der TaskBar.
Was mir nicht gefällt: Das Programm "blitzt" kurz auf; hab noch keine Lösung gefunden, das zu verhindern.
Vielleicht weiß ja jemand auch dafür eine Lösung.
Delphi-Quellcode:
program ToggleMusic;
{$APPTYPE CONSOLE}
{$R *.res}
uses
WinApi.Windows,
WinApi.ShellApi,
System.SysUtils;
const MusicPath='
E:\Daten\Delphi XE2\Music\Win32\Debug\Music.exe';
var Win:HWND; StartUpInfo:TStartUpInfo; Dsn:
String;
begin
StartupInfo.cb:=SizeOf(StartUpInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=SW_HIDE;
Win:=FindWindow(
Nil,'
Music Player');
if Win<>0
then begin
PostMessage(Win,$7FFF,0,0);
end else begin
Dsn:=MusicPath;
if FileExists(Dsn)
then
ShellExecute(0,'
open',PWideChar(Dsn),
nil,
nil,SW_SHOWNORMAL);
end;
end.