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

Fremdes Programmfenster maximieren

Fremdes Programmfenster maximieren
Martin
Hallo liebe Excel-Freunde,
wie kann man per VBA das Programmfenster einer anderen unter Windows aktiven Anwendung maximieren?
Grund meiner Frage: Mit AppActivate setze ich den Focus auf ein anderes Programm und steuere dieses mit Application.Sendkeys an. Meistens klappt das auch sehr gut. Aber wenn das Programmfenster der betreffenden Anwendung nicht maximiert ist, dann werden die mit Application.Sendkeys gesendeten Tasten leider auf Excel selbst angewandt. (Ich habe es mit dem Senden der Tastenkombination "Alt+Space+x" bereits probiert, aber auch das klappt nicht so recht.)
Zusatzfrage: Ist es auch möglich per VBA abzufragen ob das betreffende Anwengungsfenster maximiert ist?
Ich wäre Euch für Vorschläge sehr dankbar.
Viele Grüße
Martin

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

Betreff
Benutzer
Anzeige
AW: Fremdes Programmfenster maximieren
18.04.2011 20:39:02
Martin
Hallo Thorsten,
vielen lieben Dank für deinen Vorschlag. Leider funktioniert es nicht wie gehofft, was aber sicherlich nicht an dem Code liegt. Es wird tatsächlich ein Fenster maximiert, welches aber (warum auch immer) leer oder besser gesagt transparent ist (denn der Desktop ist darin zu sehen). Das ganze ist so merkwürdig und nicht manuell zu erzeugen, dass ich es einfach nicht nachvollziehen kann. Schließe ich dieses leere Fenster, dann schließe ich die gesamte betreffende Anwendung. Also scheint das Makro prinzipiell zu funktionieren, nur das Programm verhält sich merkwürdig. Ich glaube, dass ich es jetzt aufgeben muss :(
Wenn es hilft, dann lade ich von dem "Phänomen" mal einen Screenshot hoch.
Viele Grüße
Martin
Anzeige
AW: Fremdes Programmfenster maximieren
18.04.2011 23:34:36
Oberschlumpf
Hi Martin,
diesen Code vollständig in ein allgemeines Modul:

Option Explicit
' benötigte API-Deklaration
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
' benötigte API-Deklaration
Private Declare Function ShowWindow Lib "user32" ( _
ByVal hWnd As Long, _
ByVal nCmdShow As Long) As Long
Sub sbTest()
Dim lhWnd As Long
Dim sTitle As String, t
'als Bsp öffnete ich ein Texteditorfenster mit dem EXAKTEN Namen aus der Titelzeile: "Neu  _
Textdokument.txt - Editor"
sTitle = "Neu Textdokument.txt - Editor"
'hier wird das Handle des Texteditor-Fensters ermittelt
lhWnd = FindWindow(vbNullString, sTitle)
'und hier wird das Texteditorfenster mit Normalgröße (nicht minimiert oder maximiert) in den  _
Vordergrund geholt
ShowWindow lhWnd, vbNormalFocus
End Sub

Starte in Excel (nich im VBE) die Sub sbTest.
Bei mir funktioniert es.
Ciao
Thorsten
Anzeige
AW: Fremdes Programmfenster maximieren
19.04.2011 13:40:01
Martin
Hallo Thorsten,
super, jetzt klappt es tatsächlich! Nun habe ich auch eine Erklärung für den Fehler mit dem von mir beschrieben Phänomen: In meiner Software steht in der Titelleiste "TT" und diese arbeitet mit zwei Fenstern. Das Hauptfenster kann "eigentlich" nicht maximiert werden (das Maximieren-Symbol ist abgeblendet), aber das Makro hat es scheinbar trotzdem hinbekommen. Das in der Software geöffnete Projekt ist in einem eigenen Fenster ("TT - Projektname"), was natürlich ärgerlich ist.
Eine letzte Frage: Da sich der Projektname natürlich immer mal ändert, ist mir der Fenstername nicht unbedingt bekannt. Kann ich auch sagen, dass das Fenster mit dem ersten vier Buchsteben ("TT -") maximiert werden soll?
Viele Grüße
Martin
Anzeige
AW: Fremdes Programmfenster maximieren
19.04.2011 17:10:39
Oberschlumpf
Hi Martin
Im Originalcode den ich dir zuerst schickte, steht ja sinngemäß, dass der KORREKTE, und ich denke, somit auch der vollständige Fenstername übergeben werden muss.
Ich hab jetzt keine Idee, ob es auch anders möglich ist.
Weiter viel Erfolg.
Ciao
Thorsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige