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

VBA: Fernbedienung einer Anwendung

VBA: Fernbedienung einer Anwendung
Peter/Berlin
Hallo VBA-Fans,
eine externe Anwendung (nicht Office) starte ich mit der Shell-Funktion in einem Makro.
Ich möchte die Anwendung, die mehrere Buttons hat, von VBA aus fernbedienen.
Dazu habe ich 2 Fragen:
1)
Ich muss zuerst manuell mit dem Maus-Cursor einen beliebigen Button drücken, damit er den Focus hat.
Wie kann ich das ohne manuellen Eingriff von VBA aus machen?
2)
Anschliessend gelange ich mit n-mal SendKeys “{TAB}“, True zum richtigen Button.
Wie kann ich den Button -von VBA aus- drücken?
Wie lautet der Code, der den Klick der linken Maustaste sendet?
Wer hat damit schon Erfahrungen und kann mir weiterhelfen?
Gruß aus Berlin und morgen schöne Feier zum Vatertag
Peter

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

Betreff
Benutzer
Anzeige
AW: VBA: Fernbedienung einer Anwendung
01.06.2011 13:46:39
oberschlumpf
Hi Peter
zu 1:
hast du dir die Hilfe in Excel zur Shell-Funktion schon mal durchgelesen?
Die Funktion erwartet unter anderem einen optionalen Parameter, mit dem du steuern kannst, ob Fremdanwendung minimiert, normal oder maximiert gestartet werden soll. Und all das mit oder ohne Focus.
Hilfts?
Ciao
Thorsten
AW: VBA: Fernbedienung einer Anwendung
01.06.2011 13:54:35
Peter/Berlin
Hi Thorsten,
das ist schon klar. Nach dem Öffnen mit Shell in Normalgröße hat das Anwendungsfenster als
ganzes den focus. Mit SendKeys “{TAB}“ kann ich so nichts ausrichten. Erst nach Anklicken irgendeines
Buttons kann ich mit SendKeys “{TAB}“ zum gewünschten Button weiterspringen. Und den will ich dann
mit VBA drücken.
Gruß
Peter
Anzeige
AW: VBA: Fernbedienung einer Anwendung
02.06.2011 09:00:12
Martin
Hallo Peter,
die Maus kann vollständig über VBA gesteuert werden (Klick linke/mittlere/rechts Maustaste und Positionsfestlegung). Ein Linksklick geht so:
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy  _
As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Sub Mausklick_Links()
'Rechte Maustaste drücken
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
'Rechte Maustaste loslassen
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
End Sub
Viele Grüße
Martin
Anzeige
AW: VBA: Fernbedienung einer Anwendung
02.06.2011 09:14:03
Martin
Hallo Peter,
ich habe Frage 2 vergessen zu beantworten: Maximiere das Fenster der externen Anwendung per VBA, damit sich der zu klickende Button immer an der selben Position des Bildschirms befindet. Setze die Maus an die richtige Stelle, wechsle mit "Alt+TAB" nach Excel (ACHTUNG, nicht die Maus bewegen!!!) und starte zur Ermittlung der Maus-Koordinaten mit "Alt+F8" das Makro "MausPosAbfragen":
Private Type POINTAPI
x As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Dim pos As POINTAPI ' Declare variable
Sub MausPosAbfragen()
GetCursorPos pos
MsgBox "Mausposition auf:" & vbNewLine _
& "x:=" & pos.x & vbNewLine _
& "y:=" & pos.Y
End Sub
Die hier ermittelten Bildschirm-Koordinaten der Maus setzt du in folgendes Makro (anstelle von "200, 200") ein, welches die Maus dann immer an die Stelle des Buttons setzt:
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal Y As Long) As Long
Sub MausPosotion_Setzen()
'MausPosition setzen
SetCursorPos 200, 200
End Sub
Anschließend führst du das von mir bereits gepostete Makro "Mausklick_Links" aus.
Viele Grüße
Martin
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige