1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Alex083

Beiträge von Alex083

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 27. März 2014 um 21:00
    Zitat von NewVersionTester

    Du musst natürlich das Array $avOutput auch irgendwie auswerten, z.B. Array.au3 inkludieren und dann mit _ArrayDisplay die Werte anzeigen oder in der For-Schleife $avOutput[$i] in einer MsgBox o.ä. anzeigen lassen.

    Danke!
    Mit Arrays bin ich absolut überfordert, keinen blassen Schimmer. Muss ich mich erst einlesen ...

    Zitat von NewVersionTester

    Und bitte schreib AutoIt-Quellcodes das nächste Mal auch in AutoIt-Quellcode-"Tags".

    Sorry, mache ich!

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 27. März 2014 um 20:26

    Danke, klappt aber leider nicht. Zu den drei Schlüsseln in der ersten Messagebox sollen aus der ini-Datei (Sektion: [tabelle]) die dazu gehörigen Werte ausgelesen werden und zur Kontrolle in eine neue Messagebox geschrieben werden.

    Erstes Script:

    MsgBox(0, "Test", "nenne [A1] [B2] [C3] blabla", 0)


    Zweites Script:

    $sIniFile = "C:\Werte.ini"
    $sText = WinGetText("Test", "")
    $aMatch = StringRegExp($sText, "\[([^\]]+)", 3)

    Local $avOutput[UBound($aMatch)]

    For $i = 0 To UBound($aMatch) -1
    ConsoleWrite('Match Nr.' & $i+1 & ': ' & $aMatch[$i] & @LF)
    $avOutput[$i] = IniRead("C:\Werte.ini", "tabelle", $aMatch[$i], '__ERROR__')
    Next


    --> Ausgabe in der Konsole:

    >"C:\Programme\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "D:\LPR\script3-Klammern.au3"
    Match Nr.1: A1
    Match Nr.2: B2
    Match Nr.3: C3
    >Exit code: 0 Time: 0.307

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 25. März 2014 um 20:44

    BugFix :
    Wegen Zeitmangel erst gestern probiert, Dein Script gibt sogar ohne den genauen Wortlaut vor und nach den Klammern die drei Schlüssel richtig aus. :)

    Beispiel ist eine Messagebox mit dem Inhalt "nenne [A1] [B2] [C3] blabla":


    $sText = WinGetText("Test", "")
    $aMatch = StringRegExp($sText, "\[([^\]]+)", 3)


    For $i = 0 To UBound($aMatch) -1
    ConsoleWrite('Match Nr.' & $i+1 & ': ' & $aMatch[$i] & @LF)
    Next


    Ausgabe:

    Match Nr.1: A1
    Match Nr.2: B2
    Match Nr.3: C3


    Vielen Dank dafür, hätte ich nie geschafft!
    Wie muss ich jetzt aber nach "Next" weitermachen, um diese drei Werte weiter verarbeiten zu können?
    Der Schlüssel von Match Nr.1: (also in diesem Fall A1) soll durch die Ini-Datei "C.\Werte.ini"
    dem Wert A1 = W zugeordnet werden und somit ein "W" ausgeben.
    Das Gleiche dann für Match Nr.2 und Nr.3.

    Eigentlich bin ich dank Eurer Hilfe fast am Ziel, es fehlen wohl nur noch 2-3 Zeilen, aber ich kann das momentan einfach nicht alleine schaffen.
    Falls sich jemand erbarmen könnte, wäre ich echt unendlich dankbar! ;(

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 18. März 2014 um 19:29

    Sorry, wahrscheinlich schreibe ich das alles zu unverständlich, weil ich mich mit Programmieren nicht auskenne.
    Mit dem C64 habe ich damals noch etwas BASIC hinbekommen, aber das war's dann auch schon gewesen.

    $text = WinGetText("Fenstername", "")
    erfasst ja den Text aus dem angezeigten Fenster:
    Blabla blub [C2] [A4] [G1] blabla bla
    Mit

    MsgBox(0, "Textinhalt:", $text)
    wird der abgefragte Text korrekt in einer Box dargestellt.
    Das ist nicht mein eigentliches Ziel, sondern nur eine Kontrolle der richtigen Erfassung.

    Jetzt sollen aber nur die drei Schlüssel in den eckigen Klammern "abgefragt" werden (also C2, A4 und G1) und daraufhin die zugehörigen Werte aus der Ini-Datei erfasst und mit "Send" weggeschickt werden (z.B. RMZ).
    Die Schlüssel ändern sich ständig, es sind aber stets nur drei.

    In der Ini-Datei (C:\Werte.ini) sind die Schlüssel A1-A5, B1-B5, C1-C5 etc. mit den zugehörigen Werten abgelegt:
    A1 = W
    A2 = 1
    A3 = B
    A4 = M
    A5 = 4
    B1 = U
    B2 = Z
    B3 = K
    B4 = 3
    B5 = L
    etc.
    Diese Tabelle geht bis H5.

    Mit der Abfrage
    $sIniFile = "C:\Werte.ini"
    $sA1 = IniRead($sIniFile, "tabelle", "B1", "kein Wert vorhanden")
    bekomme ich dann in der Box bspw. den entsprechenden Wert zu dem Schlüssel B1 (also U).
    MsgBox(0, "Ergebnis", $sA1)
    Das klappt ja soweit.

    Statt "B1" (fixer Wert) sollen da aber jetzt die drei abgefragten Schlüssel stehen (z.B. C2 A4 G1) und die jeweiligen Werte (z.B. RMZ) aus der Ini per "Send" rausgehen.

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 17. März 2014 um 19:22

    Merci!!! Aber den Teil verstehe ich jetzt programmtechnisch überhaupt nicht mehr. ;(
    Wie kombiniere ich das dann mit der vorhergehenden Abfrage
    $text = WinGetText("Fenstername", "")
    und danach mit meiner *.ini-Datei, damit die entsprechenden Werte per "Send" eingetragen werden?
    Wie gesagt, bin absoluter Anfänger.
    Danke für die Geduld!

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 16. März 2014 um 15:24

    Vielen Dank! :)

    Ini-Datei ist erstellt, Auslesen und Ausgabe in Messagebox klappt auch mit einem Wert.
    Es sind jedoch drei Werte, die ausgelesen werden und direkt nebeneinander angezeigt/gesendet werden sollen (s.u.).
    Das bekomme ich einfach nicht hin.

    Das zweite Problem ist immer noch die Abfrage der drei Werte.
    Immerhin habe ich es hinbekommen, dass der Text aus dem angezeigten Fenster in eine Messagebox geschickt wird (mit ControlGetText hat es nicht funktioniert):

    $text = WinGetText("Fenstername", "")
    MsgBox(0, "Textinhalt:", $text)

    Damit ist der gesamte Fensterinhalt in der Box sichtbar:
    "Blabla blub [C2] [A4] [G1] blabla bla"; benötigt werden nur die drei Werte innerhalb der eckigen Klammern.

    Wie kann ich die nun auslesen und an die ini-Abfrage weitergeben?

    Tausend Dank!

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 2. März 2014 um 21:56

    Danke für jede Antwort! Ihr habt mir echt Mut gemacht, das auszuprobieren.
    Ehrlich gesagt hatte ich wirklich Schiss davor, das Thema "AutoIt" überhaupt anzugreifen, bin aber äußerst positiv überrascht! :)
    Das Mini-Script funktioniert jedenfalls:


    Run("C:\Programme\abc.exe")
    Sleep(10000)
    ControlClick("abc-1", "", "[ID:121]")
    Sleep(10000)
    Send("xxxxxxx")
    Sleep(10000)
    ControlClick("abc-123", "", "[ID:254]")

    Jetzt stehe ich aber wirklich auf dem Schlauch (FileRead etc.):
    1. "Datenbank" erstellen (A1=C, A2=3 etc.)
    2. Auslesen der angeforderten Werte
    3. Eintragen der Werte in das Feld

    Danke!

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 26. Februar 2014 um 20:17

    Danke für die schnellen Antworten und für das Dictionary-Beispiel! :)

    Heute hat sich leider alles durch ein neues Programm völlig geändert.
    Jetzt muss ich folgendes hinbekommen:

    1. das Fremdprogramm zur VPN-Verbindung "blabla.exe" soll automatisch starten
    2. in dem neuen Fenster soll jetzt automatisch die Schaltfläche "Connect" angeklickt werden (geht aber nicht mit Return/Enter)
    3. danach erscheint links daneben ein zusätzliches Fenster mit der Eingabemöglichkeit für das Passwort; soll automatisch eingetragen werden, Cursor blinkt schon an der richtigen Stelle, danach soll Return/Enter für "OK" erfolgen (ist schon markiert)
    4. ein weiteres Fenster hat dann eine Eingabezeile mit blinkendem Cursor; darunter steht "Enter [C3] [A2] [F5]" - diese Werte/Koordinaten habe ich in einer Textdatei abgespeichert.
    5. wenn diese Werte automatisch "gelesen" und eingetragen wurden, reicht ein Enter für "Continue" (ist schon markiert)

    Wie viel Zeit müsste ich ungefähr investieren, um das als absoluter Anfänger zu schaffen? Habe momentan quasi noch gar keine Ahnung von AutoIt.

  • Aufgabe mit AutoIt lösbar?

    • Alex083
    • 21. Februar 2014 um 21:06

    Hallo zusammen :)
    Als totaler Anfänger (und Neuling bei AutoIt) hätte ich eine Frage, ob ich mit AutoIt zur Lösung meines Problems kommen könnte und sich die Einarbeitung in das Programm überhaupt lohnen würde.

    Ich habe eine Text-Datei mit den Variablen A1, A2, A3, B1, B2, B3, etc.
    Neben den Variablen steht jeweils ein Buchstabe, sieht dann so aus:
    A1:P
    A2:M
    A3:B
    B1:C
    B2:L
    etc.
    Die Abtrennung könnte statt des Doppelpunkts auch durch andere Zeichen erfolgen oder ganz wegfallen.

    Kann ich mit AutoIt ein externes Programm starten lassen ("123.EXE"), welches ein neues Fenster öffnet, und mittels der Text-Datei darin zu den dort angeforderten Variablen die zugehörigen Buchstaben automatisch eintragen lassen?
    Die Abfrage des Programmes lautet: "Geben Sie die Werte (B1) (A3) ein"
    Ich möchte jetzt nicht unbedingt Stunden/Tage eventuell sinnlos damit verbringen, das Problem bewältigen zu versuchen, wenn das mit AutoIt gar nicht möglich ist.
    Danke :)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™