AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) OK-Button einer Message Box in fremden Programm drücken

OK-Button einer Message Box in fremden Programm drücken

Ein Thema von Jumpy · begonnen am 25. Jun 2020 · letzter Beitrag vom 25. Jun 2020
Antwort Antwort
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#1

OK-Button einer Message Box in fremden Programm drücken

  Alt 25. Jun 2020, 09:49
Hallo,

ich muss ein fremdes Importprogramm aus meinem Programm heraus starten mit ein paar Parametern, damit es weis was es machen muss. Dieses Programm kann aber neben dem Namen der zu importierenden Datei nur einen weiteren Parameter verarbeiten. Theoretisch kennt es einen Parameter Batch aber den kann ich ihm nicht mitgeben, da ein anderen Parameter, der das Importverhalten steuert wichtiger ist und mitgegeben werden muss.

Das Programm hat ein sichtbares Fenster, wo im Prinzip nur eine Fortschrittsanzeige und ein Abbruch-Button drauf ist. Wenn das Programm fertig ist, poppt (ohne den Parameter Batch) eine Message-Box auf "123 Datensätze wurden importiert" mit OK-Button. Dieser muss betätigt werden, dann schließt sich die Message-Box und das Programm.

Könnt ihr mir ein paar Stichpunkt/Links geben, wie ich da vorgehen muss?
- Fenster des Programms finden
- warten und irgendwann erkennen, das es jetzt eine Message Box des Programms gibt (ist das ein weiteres Fenster?)
- Wenn die Message-Box offen ist, könnte ich das Programm mit Task-Kill abschießen, deswegen ist das folgende nur "Kür":
- Buttton finden und betätigen

Nachtrag: Das Programm schreibt auch nach und nach in eine Log-Datei. Ich könnte auch alle paar Sekunden gucken, ob diese nicht mehr wächst und das Programm dann abschießen. Dies schein mir aber unsicherer, da der Import auch schon mal ein paar Sekunden hängen kann und dann aber weiter läuft und ich könnte dies fälschlicherweise schon als "ich bin fertig" interpretieren.
Ralph

Geändert von Jumpy (25. Jun 2020 um 09:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: OK-Button einer Message Box in fremden Programm drücken

  Alt 25. Jun 2020, 11:44
Könnt ihr mir ein paar Stichpunkt/Links geben, wie ich da vorgehen muss?
- Fenster des Programms finden
- warten und irgendwann erkennen, das es jetzt eine Message Box des Programms gibt (ist das ein weiteres Fenster?)
- Wenn die Message-Box offen ist, könnte ich das Programm mit Task-Kill abschießen, deswegen ist das folgende nur "Kür":
- Buttton finden und betätigen
Meine Vorgehensweise ist immer die selbe, alles per WinApi lösen.

zu fenster des programms finden = FindWindowW
zu warten = delay/sleep oÄ.
zu Buttton finden = per WinSpy oÄ. die ID des gewünschten Elements auslesen

Codeseitig würde ich mir dann über die FindWindow methode das Handle abholen und im Kontext des Handles auf die ID des Buttons warten um ein Click event oÄ. auszuführen.
Einschlägige Codebeispiele findest Du hier wenn man nach "Fernsteuern" sucht.

Für eine eindeutige Anleitung würde man das fernzusteuernde Programm benötigen um ein Beispiel zu erstellen.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz