Laden...

Fenster anderer Anwendung schließen

Erstellt von Fehler vor 2 Jahren Letzter Beitrag vor 2 Jahren 686 Views
F
Fehler Themenstarter:in
22 Beiträge seit 2022
vor 2 Jahren
Fenster anderer Anwendung schließen

Moin,

ich bin gerade dabei C# zu lernen und hänge an einem Problem wo ich nicht weiter komme.
Ist es Möglich das Fenster einer anderen Anwendung zu schließen? In meinem Fall geht es um die Software Touch von Roccat (für das Mic).
Diese startet immer mit Windows und sollte von meinem Tool automatisch geschlossen werden, allerdings bringt das beenden nichts, da die Software ja weiter laufen soll.

Viele Grüße Christian

Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.

2.078 Beiträge seit 2012
vor 2 Jahren

Du kannst ein Window-Handle suchen und dann mit der WinApi schließen.
Die Process-Klasse teilt dir meine ich den MainWindow-Handle mit. Alternativ bietet die WinApi natürlich auch passende Funktionen an.
Und zum Schließen gibt's in der WinApi die CloseWindow-Funktion.

Für einen Anfänger ist das aber vermutlich etwas to much 😉

4.931 Beiträge seit 2008
vor 2 Jahren

Wenn das aber das Hauptfenster ist, dann wird damit auch die Anwendung geschlossen - außer es befindet sich auch noch als TrayIcon (unten rechts in der Windows Taskleiste).
Das weitere Stichwort bzgl. WinAPI -Benutzung von C# aus ist "p/Invoke" - und als Seite dazu: PInvoke.net.

T
50 Beiträge seit 2014
vor 2 Jahren

Da er das Programm ja nicht schliessen will, ist doch hier eher ShowWindow gefragt??
Damit kann man das Fenster doch quasi "verstecken".

Zumindest hab ich das in meinen "Boss-Kommt-Rein"-Programm so 🙂

2.078 Beiträge seit 2012
vor 2 Jahren

Guter Gedanke, zumindest erlaubt der zweite Parameter das Verstecken.
Müsste man aber mal testen, ob bereits sichtbare Fenster auf diese Weise versteckt werden können, hab ich bisher nie versucht.

T
50 Beiträge seit 2014
vor 2 Jahren

Guter Gedanke, zumindest erlaubt der zweite Parameter das Verstecken.
Müsste man aber mal testen, ob bereits sichtbare Fenster auf diese Weise versteckt werden können, hab ich bisher nie versucht.

Ja geht,
hab ich ja wie gesagt in meinen kleinen Progrämmchen so... der versteckt mir sogar Diablo III beim "Arbeiten" 🙂

F
Fehler Themenstarter:in
22 Beiträge seit 2022
vor 2 Jahren

Moin zusammen,

ich habe es nun lösen können:


            System.Diagnostics.Process[] Prozesse = System.Diagnostics.Process.GetProcesses();
            foreach (System.Diagnostics.Process Prozess in Prozesse)
            {
                if (Prozess.MainWindowTitle != string.Empty)
                {
                    if (Prozess.MainWindowTitle.ToString().ToLower().Contains("TITEL".ToLower())) {
                        MessageBox.Show(Prozess.MainWindowTitle.ToLower());
                        Prozess.CloseMainWindow();
                    }
                }
            }

Vielen Dank für die Tipps.
Ich hoffe es hilft noch einigen anderen...

Viele Grüße
Christian

Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.

2.078 Beiträge seit 2012
vor 2 Jahren

Ach stimmt, die Methode gibt's ja auch 😁

Aber der Hinweis von Th69 gilt weiterhin.

F
Fehler Themenstarter:in
22 Beiträge seit 2022
vor 2 Jahren

Ich dachte das wäre gemeint 😂

Sarkasmus ist die Kunst, Menschen einen Spiegel vorzuhalten. Nur merken es viele nicht.