Suchergebnisse

Suchergebnisse 1-16 von insgesamt 16.

  • Benutzer-Avatarbild

    Ich bin mal so dreist und mach mal wieder Eigenwerbung: externe .Net-Programme auslesen und manipulieren

  • Benutzer-Avatarbild

    Hallo Voyager Intrepidklasse. Zitat von intrepidklasse: „wird wohl für c# sein“Nee, ich arbeite in VB.Net. Zitat von intrepidklasse: „womöglich in dieser art?“Ohje, nein, das wär ja nahe an VB6 dran. In VS2019CE kann man das quasi automatisch hinzufügen lassen. Einfach auf das unbekannte (rotgekringelt-unterstrichene) Element klicken und dann links auf die Gegenvorschläge: vb-paradise.de/index.php/Attac…48fc751c44f1d6c89ddc07466

  • Benutzer-Avatarbild

    Na, so geht das aber nicht. Du fütterst die ListBox mit allen laufenden Programmen. Und es ergibt sich eine Auflistung von AutomationElements. Das sind hochkomplexe Objekte. Woher soll da die ListBox wissen, was von den vielen Eigenschaften, die tw. auch verschachtelt sind, angezeigt werden soll? Die Frage ist daher, was Du tatsächlich in der ListBox aufgelistet haben willst.

  • Benutzer-Avatarbild

    Zitat von intrepidklasse: „den letztendlich muss ich ja mit dem gefundenen Handle weiter machen“Nein. Das Handle (oder Pointer/Zeiger) der Anwendung ist ein UI-Automation-Detail, dass man verwenden kann, aber nicht muss. Das liegt daran, dass das Handle eine sehr variable Sache ist, nach der Du nicht fix suchen kannst. Du kannst also nicht in Deinen Code schreiben: »Wenn ich auf den [Suchen]-Button klicke, soll mir mein Programm die App mit dem Handle &H98765432 suchen.« Der Anfang war schon ric…

  • Benutzer-Avatarbild

    Ich wiederhole mich: Handles, ProcessID, ... sind alles Details. Diese weiter zu nutzen, um das Programm auszulesen, ergibt keinen Sinn. Lies bitte mein Tutorial. Sobald Du die richtige App am Haken hast, machst Du damit weiter. Denn diese App ist dann vom Typ AutomationElement. Und damit geht's dann auch weiter. Also mit DeineApp.FindFirst(...) oder DeineApp.FindAll(...). Machen wir es mal etwas konkreter: Was genau willst Du aus Deiner Zielapp herholen, auslesen, ändern?

  • Benutzer-Avatarbild

    Zitat von intrepidklasse: „ich geb nicht auf ..“Ich auch nicht. Also: Brauchst Du zwangsläufig alle passenden Apps in einer ListBox oder ist ein vorheriges Filtern möglich? Brauchst Du eine App-Auswahlmöglichkeit auf Deinem Form oder willst Du die passenden Apps alle nur irgendwo zwischenspeichern? Das Auflisten in einer ListBox ist möglich, aber nur über einen Umweg sinnvoll (den ich erst erkläre, wenn er wirklich nötig ist, da das eher selten der Fall ist)

  • Benutzer-Avatarbild

    Also gut. Schieb Dir ne ListBox auf Dein Form und klicke oben rechts auf den [>]-SmartTag, setze den Haken und klick in der DatenquellencomboBox auf |Projektdatenquelle hinzufügen|. Dann auf [Objekt] -> UIAutomationClient -> System.Windows.Automation -> AutomationElement -> AutomationElementInformation anhaken -> [Fertig stellen] Dadurch wird eine BindingSource erstellt und Du teilst BindingSource und ListBox mit, dass in der Liste nun alle möglichen Infos über ein AutomationElement drinstehen w…

  • Benutzer-Avatarbild

    Nein, der Wertemember ist für andere Zwecke gedacht. Bei einer ListBox kannst Du da eine Eigenschaft von Current einstellen, die dann zur Auswahl hergenommen wird, wenn Du noch zusätzlich was bei [Ausgewählter Wert] einstellst. Dann kannst Du quasi 2 Datenquellen miteinander koppeln. Das willst Du hier erstmal nicht. Von daher lass ValueMember leer bzw. auf (keine) eingestellt. Aber sag doch mal, was Du Dir davon versprochen hast, HandleID bei ValueMember einzustellen.

  • Benutzer-Avatarbild

    Wenn die Daten, die AutomationElementInformation beinhaltet, für Dich relevant sind, dann ist alles gut. Dann kommst Du mit folgendem Vorgehen an die Infos als Auflistung: Pack Dir eine weitere BindingSource (BS2) auf Dein Form und setze als Datenquelle diesmal nicht als Objekt AutomationElementInformation, sondern AutomationElement. Danach nimmst Du Deine erste BindingSource (BS1) und änderst die Datenquelle auf BS2, bei DataMember schreibst Du rein: Current. Zusätzlich änderst Du den Code zu: …

  • Benutzer-Avatarbild

    Zitat von intrepidklasse: „Fehlereigenschaften“ Ich verstehe nicht. Versuchst Du eine Fehlermeldung auszulesen? Zitat von intrepidklasse: „aber beinhaltete Informationen lassen sich hiermit noch nicht finden“versteh ich noch weniger. Setz mal bitte einen Haltepunkt bei ListBox2.Items.Add(AllFittingApps), warte, bis der Debugger in der Laufzeit des Programms dort vorbeikommt und anhält. Dann gehe mit der Maus über AllFittingApps und versichere Dich, dass da was drinsteht, was Du brauchst. Und dan…

  • Benutzer-Avatarbild

    Ich kom mit den gegebenen Infos wohl nicht klar. Ich fasse zusammen, was ich verstanden habe:- Du hast 16 Programminstanzen oder -fenster laufen, die alle (wahrscheinlich) mehr oder weniger den gleichen Inhalt haben, aber auf jeden Fall mal den selben Aufbau. - Aus einem dieser Fenster willst Du Info rausziehen. - Du hast jetzt das Fenster selektiert und willst ... von dem Unterbereich (?) ID_PANEL3 jetzt die Inhalte haben. Von welchem Typ ist ID_Panel3 (Klassentyp)?

  • Benutzer-Avatarbild

    Ich gehe mal davon aus, dass es sich dabei nicht um ein kostenloses Programm handelt, welches ich mir runterladen kann, damit ich es selbst ausprobieren kann, oder? Mit den jetzt genannten Informationen komm ich insofern nicht klar, weil ich mir einfach nichts darunter vorstellen kann, was sie bedeuten. Quellcode (3 Zeilen)Häh? Na egal. Probier doch erstmal den schon längst genannten Klassiker: VB.NET-Quellcode (3 Zeilen) Bei dem Stop hält ja der Debugger an. Dann kannst Du auch in AllCEs reinsc…

  • Benutzer-Avatarbild

    Zitat von intrepidklasse: „frei ist es in der tat nicht“Zitat von intrepidklasse: „auch ohne bezahlen“Moment mal. Wie bekommt man es? Ist es kostenlos frei herunterladbar oder braucht es da n Freischaltcode oder muss man sich vorher irgendwo registrieren, um es zu bekommen. Denn wenn da Download-Hürden sind, ist ein Anbieten durch Dich illegal. Meines Erachtens ist das Anbieten von Fremdsoftware hier illegal. Ich bin daher so frei und lösch den Anhang, bevor jemand das Forum dafür haftbar macht.…

  • Benutzer-Avatarbild

    Es ist alles wie schon mehrfach geschrieben. VB.NET-Quellcode (4 Zeilen) Die AutomationID für die BotServerStatusBar hättest Du mit den beschriebenen Verfahren aus Post#25 und #29 selber herausfinden können. Für die restlichen Statusbars bitte ich um Eigeninitiative.

  • Benutzer-Avatarbild

    Bevor der Vorschlag kommt, mit Parallel.For und Multithreading (also Erstellung von einzelnen Threads) geht es auch nicht viel schneller.

  • Benutzer-Avatarbild

    Laut stackoverflow ist diese Art der UIAutomation langsam. Die Alternative IUIAutomation COM soll schnell sein. Ist aber WinAPI-C++ Es gibt über nuget einen Wrapper, aber da muss ich mich selber erstmal reinfitzeln und testen, wieviel schneller und besser das ist.