Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1060to1064
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

Fenstergröße anderer Anwendung maximieren

Fenstergröße anderer Anwendung maximieren
25.03.2009 07:54:29
Martin
Hallo,
mit folgendem Code setze ich den Focus auf eine andere Anwendung:
AppActivate ("TT")
Wie kann ich das Fenster dieser Anwendung maximieren?
Meine Ansätze wären:
TTApp.WindowState = wdWindowStateMaximize
oder:
TTApp.DoCmd.RunCommand 10
Aber wie lege ich zuvor die Anwendung als Objekt fest?
Für Ideen wäre ich sehr dankbar.
Viele Grüße
Martin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fenstergröße anderer Anwendung maximieren
25.03.2009 08:21:24
Nepumuk
Hallo Martin,
Maximieren, so (Beispiel für das Notepad):
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

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 GC_CLASSNAMENOTEPAD = "Notepad"
Private Const SW_MAXIMIZE As Long = 3

Public Sub Beispiel()
    Dim hWnd As Long
    hWnd = FindWindow(GC_CLASSNAMENOTEPAD, vbNullString)
    If hWnd <> 0 Then _
        Call ShowWindow(hWnd, SW_MAXIMIZE)
End Sub

Gruß
Nepumuk
Anzeige
AW: Fenstergröße anderer Anwendung maximieren
25.03.2009 11:46:09
Martin
Hallo Nepumuk,
vielen Dank für Deine Hilfe. Ich würde gerne Deine Code verwenden, da dieser schön kurz ist. Aber leider ist es mir nicht gelungen Dein Beispiel von Notepad auf TT zu übertragen. Beim Notepad funktioniert Dein Code einwandfrei.
Viele Grüße
Martin
AW: Fenstergröße anderer Anwendung maximieren
25.03.2009 08:28:42
Tino
Hallo,
ist Dir nur der Fenstertitel bekannt, kannst Du es mal hiermit versuchen.
Option Explicit

Private Declare Function GetDesktopWindow Lib "user32" () As Long

Private Declare Function GetWindowTextLength Lib "user32" _
        Alias "GetWindowTextLengthA" (ByVal hWnd As Long) _
        As Long
        
Private Declare Function GetWindowText Lib "user32" _
        Alias "GetWindowTextA" _
        (ByVal hWnd As Long, ByVal lpString As String, _
        ByVal cch As Long) As Long

Private Declare Function GetWindowLong Lib "user32" Alias _
        "GetWindowLongA" (ByVal hWnd As Long, ByVal wIndx As _
        Long) As Long
        
Private Declare Function ShowWindow Lib "user32" ( _
  ByVal hWnd As Long, _
  ByVal nCmdShow As Long) As Long
  
Private Declare Function GetWindow Lib "user32" _
       (ByVal hWnd As Long, ByVal wCmd As Long) As Long

Const GWL_STYLE& = (-16)
Const WS_VISIBLE = &H10000000
Const WS_BORDER = &H800000
Const GW_HWNDNEXT& = 2
Const GW_CHILD& = 5

Const iNormal& = 1
Const iMinimized& = 2
Const iMaximized& = 3

Private Function GetWindowInfo(ByVal hWnd&, sTitel$, Optional booVisible As Boolean = True) As Long
Dim Result&, Style&, Title$
  
    'Darstellung des Fensters 
    Style = GetWindowLong(hWnd, GWL_STYLE)
    Style = Style And (WS_VISIBLE Or WS_BORDER)
    
    'Fensetrtitel ermitteln 
    Result = GetWindowTextLength(hWnd) + 1
    Title = Space$(Result)
    Result = GetWindowText(hWnd, Title, Result)
    Title = Left$(Title, Len(Title) - 1)
    
'prüfen ob Fenster Sichtbar 
If (Style = (WS_VISIBLE Or WS_BORDER)) Or booVisible = False Then
      If Title Like "*" & sTitel & "*" Then
       GetWindowInfo = hWnd
       Exit Function
      End If
End If
GetWindowInfo = 0
End Function

'diese Sub minimiert den Internet Explorer 
Sub Minimize_Internet_Explorer()
Dim hWnd As Long
Dim Fenstertitel As String

Fenstertitel = "Internet Explorer" 'Hier Fenstertitel anpassen 

  hWnd = GetDesktopWindow()
  hWnd = GetWindow(hWnd, GW_CHILD)
  
  '2. Param. Fenstertitel (nur ein Teil erforderlich) 
  '3. Param. optional True nur Sichtbare, False alle 
  
  GetWindowInfo hWnd, Fenstertitel, True

Do While hWnd <> 0
    hWnd = GetWindow(hWnd, GW_HWNDNEXT)
   If GetWindowInfo(hWnd, Fenstertitel, True) = hWnd Then
    ShowWindow hWnd, iMaximized
   End If
Loop

End Sub


Gruß Tino

Anzeige
AW: Fenstergröße anderer Anwendung maximieren
25.03.2009 11:49:30
Martin
Hallo Tino,
vielen Dank, Dein Code klappt super. Du hast (leider) Recht, mir ist nur der Fenstertitel bekannt.
Viele Grüße
Martin

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige