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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.