none
UI Automation Programm wurde gestartet RRS feed

  • Frage

  • Hallo an das Forum,

    ich möchte ein Programm starten und eine CheckBox aktivieren. Der Start des Programms dauert ca. 10 Sekunden.  Wie kann ich überprüfen, dass das Programm bereit für die Eingabe ist?

    Die Abfrage mit

    Process.GetProcessesByName("MyProg").Length == 0;

    wird schon mit Start des Programms true.

    Vielen Dank für die Unterstützung!


    Gräf

    Mittwoch, 25. Januar 2023 17:22

Antworten

Alle Antworten

  • Hi,

    ohne dass das Drittprogramm dir irgeneinen Hinweis auf "Bin bereit für die Eingabe" gibt, kannst Du das gar nicht ermitteln. Wie auch? Von außen siehst Du nur den Prozess.

    Wenn es eine .NET Anwendung wäre, könnte man die ggfs. auch auf anderem Weg automatisieren aber dafür fehlen noch sehr viele Infos.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Mittwoch, 25. Januar 2023 22:42
    Moderator
  • Hallo Stefan,

    vielen Dank für Deinen Hinweis.

    Ich wollte auch nur klären, ob ein c# Programm ein "ready to go event" sendet. Das scheint nicht der Fall zu sein. Dann werde ich das Problem über das geöffnete Fenster lösen.



    Gräf

    Donnerstag, 26. Januar 2023 08:00
  • Ich wollte auch nur klären, ob ein c# Programm ein "ready to go event" sendet.

    Wenn man sowas in das Programm einbaut, geht das. Ansonsten natürlich nicht, denn es gibt kein universelles "ready to go". Jede Anwendung ist zu einem anderen Zeitpunkt bereit für Eingaben/Übermittlung von Daten.

    Wenn es ein C# Programm ist, kann man sich evtl. noch irgendwo einhaken und Events abfangen. Aber wie gesagt, dafür müsste man zuerst mal wissen, wie die andere Anwendung aufgebaut ist, ob sie überhaupt hilfreiche Events sendet und falls ja, ob man diese von extern abfangen kann, usw.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Donnerstag, 26. Januar 2023 08:20
    Moderator
  • Hallo,

    eventuell hilft WaitForInputIdle() oder WaitForInputIdle() mit NET 7 .

    Gruß 

    Heiko

    • Bearbeitet Heiko65456465 Donnerstag, 26. Januar 2023 19:11
    • Als Antwort markiert user10101994 Freitag, 27. Januar 2023 09:22
    Donnerstag, 26. Januar 2023 19:04