Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1140to1144
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

Anwendung minimieren

Anwendung minimieren
Beverly
Hi Helfer,
mit folgendem Code lässt sich ein definiertes Fenster schließen:
Option Explicit
Private Declare Function WaitForSingleObject Lib "kernel32" _
(ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" _
Alias "PostMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" _
(ByVal hWnd As Long, _
lpdwProcessId As Long) As Long
'Konstanten zum Schließen
Private Const WM_CLOSE = &H10
Private Const INFINITE = &HFFFFFFFF
Private Const SYNCHRONIZE = &H100000
Sub Schliessen()
Dim hWindow As Long
Dim hThread As Long
Dim hProcess As Long
Dim lProcessId As Long
Dim lngResult As Long
Dim lngReturnValue As Long
hWindow = FindWindow(vbNullString, "Test")
hThread = GetWindowThreadProcessId(hWindow, lProcessId)
lngReturnValue = PostMessage(hWindow, WM_CLOSE, 0&, 0&)
lngResult = WaitForSingleObject(hProcess, INFINITE)
DoEvents
End Sub

Wie müssten die Variablen belegt werden, damit das Fenster nicht geschlossen sondern nur in die Taskleiste minimiert wird? Oder sähe der Code dafür vollkommen anders aus?


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Anwendung minimieren
23.02.2010 17:17:52
Tino
Hallo,
versuch mal es mal hiermit.
Private Declare Function FindWindow Lib "user32" _
   Alias "FindWindowA" _
   (ByVal lpClassName As String, _
   ByVal lpWindowName As String) As Long

Private Declare Function ShowWindow Lib "user32" ( _
  ByVal hwnd As Long, _
  ByVal nCmdShow As Long) As Long
  
Const LNormal& = 1
Const LMinimized& = 2
Const LMaximized& = 3

Sub Schliessen()
Dim hWindow As Long

hWindow = FindWindow(vbNullString, "Test")
If hWindow > 0 Then _
    ShowWindow hWindow, LMinimized
End Sub
Gruß Tino
Anzeige
AW: Anwendung minimieren
23.02.2010 19:48:01
Andre´
Hallo Tino,
habe den Code probiert und er funktioniert prima.
Gibt es auch eine Möglichkeit, dass Fenster in den Hintergrund zu bringen, so dass quasi es nicht in der Taskleiste angezeigt wird.
MFG Andre
AW: Anwendung minimieren
23.02.2010 20:16:13
Nepumuk
Hallo,
klar geht das, du kommst aber ohne Routine nicht mehr ran !!!
Option Explicit

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal nCmdShow As Long) As Long

Private Const SW_HIDE As Long = 0
Private Const SW_SHOW As Long = 5

Public Sub Hide_Window()
    Dim lngWindow As Long
    lngWindow = FindWindow(vbNullString, "Unbenannt - Editor")
    If lngWindow > 0 Then _
        Call ShowWindow(lngWindow, SW_HIDE)
End Sub

Public Sub Show_Window()
    Dim lngWindow As Long
    lngWindow = FindWindow(vbNullString, "Unbenannt - Editor")
    If lngWindow > 0 Then _
        Call ShowWindow(lngWindow, SW_SHOW)
End Sub

Gruß
Nepumuk
Anzeige
AW: Anwendung minimieren
23.02.2010 22:24:23
Beverly
Hi Tino,
leider kann ich dir erst jetzt antworten - habe keine Mailbenachrichtigung bekommen. :((((
Vielen Dank für den Code, funktioniert so wie ich es mir gewünscht habe.


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige