letshenne
Goto Top

Programm automatisch zum System-Tray minimieren

Hallo,

ich würde hätte gerne ein Programm/Script, dass eine App automatisch zum System tray minimiert, wenn diese sich öffnet (Am Anfang ist das Programm im tray, wird geöffnet und soll dann wieder automatisch minimiert werden).
Die App soll in irgendeiner Art hinterlegt werden können, damit das Minimieren nur auf festgelegte Apps angewendet wird.

Wofür brauch ich das ganze?
[a] Programm das minimiert werden soll
[b] Hauptprogramm, bei dessen Start [a] angezeigt wird

Ich habe Programme [a] auf meinem Rechner, die laufen müssen und nicht deinstalliert werden können. Diese [a] kann ich standardmäßig auf das Tray minimieren, jedoch werden die Programme [a] beim Start eines bestimmten Programmes [b] ([a] ist eine Erweiterung des Programmes [b]) geöffnet und [a] müssen manuell wieder minimiert werden.

Meine Frage:

Kennt hier jemand zufällig ein Weg das ohne größeren Aufwand Umzusetzen?


Mein System:

Windows 10 Pro

Content-Key: 1393917125

Url: https://administrator.de/contentid/1393917125

Printed on: April 18, 2024 at 19:04 o'clock

Member: l3xx3r
l3xx3r Oct 15, 2021 updated at 21:13:45 (UTC)
Goto Top
Hi,

wenn du dich mit eine der beiden Sprachen auskennst, kann man sich das sicherlich erweitern.

C/C++
https://github.com/fcFn/traymond
alternativ
https://github.com/benbuck/rbtray

AutoIt
https://github.com/sandwichdoge/MinimizeToTray

Wäre jetzt mein Ansatz, schon was bestehendes einfach anzupassen.

Vielleicht hilft das ja weiter

Grüße
Member: LetsHenne
LetsHenne Oct 15, 2021 at 21:29:02 (UTC)
Goto Top
Hallo, vielen Dank für die Hilfe.

Ich kann zwar leider beide Sprachen nicht (ich kann nur c#), aber ich versuch mich mal rein zu finden und das ganze hinzubekommen. Wenn ich eine Lösung hinbekomme, werde ich das hier posten.

MFG
Member: LetsHenne
Solution LetsHenne Oct 23, 2021 updated at 17:38:31 (UTC)
Goto Top
Update: Ich habe nun einen Weg gefunden das ganze zu realisieren.

Ich habe das ganze über eine C# App realisiert, in der ich den Status über System.Diagnostics.Process abfrage und ihn über user32 ändere.

                foreach (Process p in from Process p in Process.GetProcesses()
                                      where p.ProcessName.ToLower().Contains("app name") && p.MainWindowHandle != IntPtr.Zero && (p.MainWindowTitle.ToLower().Contains("window name"))  
                                      select p)
                {
                    ShowWindowAsync(p.MainWindowHandle, (int)WindowShowStyle.Hide);
                }

        [DllImport("user32.dll")]  
        public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);

Ich werde das ganze als Anwendung ausarbeiten, in der man Dynamisch selber Prozesse hinzufügen und bearbeiten kann. Sobald die App veröffentlicht ist, werde ich den Link hier dazu schreiben.

MFG
Member: l3xx3r
l3xx3r Oct 24, 2021 at 13:13:41 (UTC)
Goto Top
Zitat von @LetsHenne:

Update: Ich habe nun einen Weg gefunden das ganze zu realisieren.

Ich habe das ganze über eine C# App realisiert, in der ich den Status über System.Diagnostics.Process abfrage und ihn über user32 ändere.

>                 foreach (Process p in from Process p in Process.GetProcesses()
>                                       where p.ProcessName.ToLower().Contains("app name") && p.MainWindowHandle != IntPtr.Zero && (p.MainWindowTitle.ToLower().Contains("window name"))  
>                                       select p)
>                 {
>                     ShowWindowAsync(p.MainWindowHandle, (int)WindowShowStyle.Hide);
>                 }

        [DllImport("user32.dll")]  
>         public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);

Ich werde das ganze als Anwendung ausarbeiten, in der man Dynamisch selber Prozesse hinzufügen und bearbeiten kann. Sobald die App veröffentlicht ist, werde ich den Link hier dazu schreiben.

MFG

Wenn du das ganze auf git hast - würd ich mich gern beteiligen wenn ich kann face-smile

Grüße und einen schönen Sonntag noch