Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fenster in den Vordergrund

Fenster in den Vordergrund
26.03.2020 08:30:43
Sebastian
Hallo Leute,
gibt es noch eine andere Möglichkeit ein Windows Fenster (Programm) in den Vordergrund zu holen außer die "SetForegroundWindow" Methode?
Speziell geht es um ein ein Programm von Cisco - welches ich gern mit Knopfdruck in den Vordergrund bringen möchte.
Vielen Dank und viele Grüße
Sebastian

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Reicht nicht Alt+Tab …
26.03.2020 08:50:55
RPP63
… oder das Verschieben des Programms auf einen virtuellen Desktop (Win+Tab, Aktivierung mit Strg+Win+Pfeil)?
Fragt sich Ralf
AW: Reicht nicht Alt+Tab …
26.03.2020 08:54:33
Sebastian
Nein das geht leider nicht - da es ja viele Programme sind. und ich nur dieses Eine Fenster brauche :-(
AW: Reicht nicht Alt+Tab …
26.03.2020 09:33:49
Sebastian
Hat jemand noch eine andere Idee?
AW: Reicht nicht Alt+Tab …
26.03.2020 10:07:47
volti
Hallo Sebastian,
es gibt noch
Declare PtrSafe Function BringWindowToTop Lib "user32" Alias "BringWindowToTop" (ByVal hwnd As LongPtr) As Long
Habe ich aber noch nie verwendet.
Und das Setzen als Top-Window:

Option Explicit
#If VBA7 Then
 Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
 Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hwnd As LongPtr, ByVal hWndInsertAfter As LongPtr, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
 Dim hwnd As LongPtr
#Else
 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 Private Declare Function SetWindowPos Lib "user32" (ByVal Hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
 Dim hwnd As Long
#End If
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const cFLAGS = &H3
Sub Test()
 ' SetWindowPos FindWindow(vbNullString, "Captiontext"), HWND_TOPMOST, 0, 0, 0, 0, cFLAGS
  hwnd = 1234567
  SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, cFLAGS
End Sub
viele Grüße
Karl-Heinz

Anzeige
AW: Reicht nicht Alt+Tab …
26.03.2020 10:55:20
Sebastian
hi Super das Fenster wird zumindest mal Gefunden nur wie bekomme ich es in den Vordergrund?
Sub Test()
SetWindowPos FindWindow(vbNullString, "NamedesFensters"), HWND_TOPMOST, 0, 0, 0, 0,  _
cFLAGS
hwnd = 1234567
SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, cFLAGS
End Sub

AW: Reicht nicht Alt+Tab …
26.03.2020 11:37:13
volti
Hallo,
deine Aussage kann ich so nicht nachvollziehen.
Die SetWindowPos-Funktion, wie auch SetForegroundWindow setzen das übergebene Fenster in den Vordergrund.
Zumindest, wenn es nicht minimiert ist.
HWND_TOPMOST sorgt dafür, dass es immer als oberstes steht. SetForeGroundwindow könnte später von anderen Programmen wieder zunichte gemacht werden.
Für die Funktionen brauchst Du das Handle des gewünschten Fensters.
Aus Deiner Anfrage geht nicht hervor, ob Du es hast. Ansonsten könnte es, wie in meinem Beispiel beschrieben über den Fenstertext ermittelt werden.
In meinem Beispiel gilt natürlich nur ein Aufruf, entweder der erste mit dem Fenstertext oder der zweite mit dem vorhandenen Handle.
Das Handle ist weder 1234567 und der Fenstertext "NamedesFensters" scheint mir auch unwahrscheinlich.
Hier noch ein abgewandeltes Beispiel:
Sub Test()
 hwnd = FindWindow(vbNullString, "Captiontext")
 If hwnd > 0 Then SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, cFLAGS
End Sub

viele Grüße
Karl-Heinz
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige