Forum: PC-Programmierung Fremde Delphi Anwendung mit VB.net steuern -> API?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von KErs (Gast)


Angehängte Dateien:

Lesenswert?

Hey Leute,

Ich will eine fremde Delphi Anwendung mit VB.net steuern.
Es soll ein TabSheet ausgewählt und mit der Maustaste angewählt werden.
Generell habe ich sowas ähnliches schon gemacht.
Damals wars aber ein Button.

NUR:
Es soll ein TabSheet eines TapControls angewählt werden.
Den Aufbau habe ich schon mit Spay++ herausgefunden.
Das Tabsheet was ausgewählt werden soll heisst "Bestellungen".

Nun mein Problem:
Welche API Function nehme ich dafür her?
Mit FindWindowEx das Handle ergattern?  (FindWindowEx(MyAppEinHandle, 
vbnull, "TTabSheet",  "Bestellungen")) ?
Und danach mit SendMessage BM_CLICK das TabSheet auswählen?

Oder gibt es eine einfachere Variante?

von Dirk K. (merciless)


Lesenswert?

KErs schrieb:
> Oder gibt es eine einfachere Variante?
Du wirst keine andere Möglichkeit haben,
als mit dem Windows-API Benutzereingaben
nachzuahmen.

merciless

von georg (Gast)


Lesenswert?

KErs schrieb:
> Und danach mit SendMessage BM_CLICK das TabSheet auswählen?

Dazu brauchst du die Mauskoordinaten relativ zum Tabsheet. Vielleicht 
gibt es eine einfachere Auswahlmöglichkeit, z.B. Angabe der Zeilennr. 
o.ä.

Georg

von c-hater (Gast)


Lesenswert?

KErs schrieb:

> Oder gibt es eine einfachere Variante?

Nicht wirklich. Wie Dirk K. schrieb, ist die einzige Möglichkeit das 
Nachahmen von möglichen Benutzereingaben.

Allerdings sind Delphi-Anwendungen üblicherweise voll 
Tastatur-steuerbar. Das vereinfacht vieles. Insbesondere kann man so um 
das Aufdröseln der Fensterhandles herumkommen.

Blöderweise ist es aber auch so, dass man dann ein deutlich verstärktes 
Problem durch mögliche gleichzeitige Benutzeraktivitäten hat. Ich würde 
also definitiv den Weg über die Enumeration der Handles empfehlen. Nur 
für den Fall, dass gleichzeitige Benutzeraktivitäten vollkommen 
ausgeschlossen werden können, würde ich den Weg über die 
Tastatureingaben wählen.

von von KErs (Gast)


Lesenswert?

Aber gibt es eine Tastenkombination, welches gezielt das 3e oder 4e 
TabSheet anspringt?
Mit STRG + TAB kann ich nur die einzelnen TabSheets durchnavigieren.

von c-hater (Gast)


Lesenswert?

von KErs schrieb:

> Aber gibt es eine Tastenkombination, welches gezielt das 3e oder 4e
> TabSheet anspringt?

Nein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.