Text lesen lassen und einbinden

  • Hallo ihr lieben,
    ich möchte gerne ein script schreiben. das script soll folgendes können:
    es soll ein wort, dass sich immer wieder ändert (in einem programm)
    lesen können und mit dem ergebnis möchte ich dann weiter arbeiten.
    also ""if finereader reads the word X, than do ..."" ich hoffe dass das mit dem finereader oder ähnlichem realisierbar ist. könnt ihr mir da helfen? Vielen dank im vorraus. Gruß Danny

  • ich benötige es für statitiken. das heißt: ich habe ein bestimmtes feld in einem programm. an dieser stelle steht entweder "Win" or "Loose". wenn dort win steht, so soll das script später dies notieren. uhrzeit... das ist alles kein problem. ich möchte nur wissen wie ich den finereader sozusagen einbaue. sdas script soll den finreader öffnen(fileintsall?), der soll das feld lesen und dann Win oder Loose an autoit schicken. autoit macht dann weiter;: so nach dem schema: """if finreader reads Win than...""" danke

    Einmal editiert, zuletzt von Dönn3y (15. November 2007 um 11:35)

  • finereader List doch Wörter von Bildern?

    musst du diesen Umweg gehen oder kannst nicht einfach das Feld erkennen(info tool von autoit)?

    Finereader kann man zwar über bat ansteuern, aber doch rechenintensiv..

  • ja wie geasagt, ich würde auch andere methoden wählen, ich weiß halt nicht welche. ich dachte das würde vllt mit dem finereader funktionieren. in dem moment wenn der finereader das liest, ist es doch sozusagen ein bild oder^^?.... im prinzip muss das programm ja "nur" zwei verschiedene felder erkennen. was meinst du mit " info tool von autoit"? gruß

  • ich habs getestet. bei meinem programm erkennt er die benötigten felder nicht. was jetzt^^? kann mir irgend jemand einen tip geben? danke

  • kann oder will mir niemand helfen. ich hab mal weiter geschaut. kann autoit sowas wie screenshots machen? dann kann ich ja mit finereader an die sache gehen. brauch nur irgendwie einen anfang. Daanke gruß danny

  • um was für ein Spiel handelt es sich, ist halt schwer ohne was vor sich zu haben was zu basteln, Screenshot geht mit autoit, bzw habe ich hier nen tool gesehen
    und Doppelpost sind nicht das schönste was es gibt ;)

  • Hier hab ich mal was mit ocr gemacht. Musst nur an deine Wünsche anpassen :) Partypoker den Kontostand ablesen

    Screenshot geht mit. http://www.autoitscript.com/forum/index.php?showtopic=8377

    Aufruf so:

    [autoit]

    ; Capture full screen
    ; Fist parameter - filename, last - jpeg quality.
    DllCall("captdll.dll", "int:cdecl", "CaptureScreen", "str", "dump_full.jpg", "int", 85)
    ; Capture given region
    ; Fist parameter - filename, next four: left, top, width, height. Last one - jpeg quality.
    ; Set quality to any negative number to capture into BMP
    DllCall("captdll.dll", "int:cdecl", "CaptureRegion", "str", "dump_partial.bmp", "int", 100, "int", 100, "int", 300, "int", 200, "int", -1)

    [/autoit]
  • ok das mit dem finereader hab ich jetzt hinbekommen. jetzt muss ich nur noch eins wissen: wie kann ich das wort dem autoit zukommen lassen, sodass autoit damit weiterarbeiten kann?

    Einmal editiert, zuletzt von Dönn3y (16. November 2007 um 13:17)

  • hi solang finereader keine speziellen rückgabemethoden hat kannst nur versuchen uber das wingettext o.ä machen....

    hab finereader aber selbst noch nciht benutzt -> kp ob es funktioniert^^


    mfg

    derda

  • hi, also ich hab den text vom finereader kopiert und in WordPad( oder microsoft word) eingefügt. Wie kann ich da jetzt weiter machen?
    gibt es eine möglichkeit, dass autoit den text einer txt datei lesen kann?
    also dass autoit es lesen kann weiß ich ja schon (Visible text bei Autoit Info). aber wie kann ich dem sagen dass er jetzt mit dem wort, dass er in der txt datei liest weiterarbeitet? vielen dank

    2 Mal editiert, zuletzt von Dönn3y (18. November 2007 um 21:59)

  • Ich stand wohl vor einem ähnlichen Problem:
    Wenn das AutoIt Info Tool kein Ergebnis brachte, konnte ich den Text meist mit Mousedown, Mousemove, Mouseup, Send("^c") in die Zwischenablage kopieren.

    Dann hatte ich aber den Fall, dass der Text auch nicht auf diesem Weg auswählbar war, weil die Oberfläche des Programms zu sperrig war. Ich musste auch zu FineReader greifen.

    Nächstes Problem war, dass die UDF-Funktion _ScreenCapture_Capture auf dem arbeitenden PC nicht funktionierte (auf meinem Laptop geht's), sondern die Fehlermeldung "Fatal Error. AVector: []: Out of bounds." anzeigt.

    Meine Lösung funktioniert nun so:
    Bildschirmfoto per Tastendruck. In Paint einfügen, zuschneiden und speichern. Bild mit FineReader öffnen, erkennen und Ergebnis in Text-File speichern. AutoIt die TextFile lesen lassen.

    Das ist zwar ziemlich umständlich (die gleiche Aktion "text erkennen und weitergeben" kann ich mit Augen und Händen 100fach schneller), aber es funktioniert und läuft voll automatisch seitdem ca. 20 mal am Tag in meinem Skript ab. Durch etliches herumprobieren und implementieren von Sicherheitsroutinen wurde der Text bisher immer vollkommen fehlerfrei erkannt.

    Ich gebe auf Anfrage gern genauere Details bekannt.

  • also es wird nur ein boolean wert dort stehen?
    also true/false bzw in dem fall gewonnen/verloren?


    wenn ja , mach des ganze doch vllt mit pixelchecksum ;)
    notiere dir einmal die checksum von gewonnen, und einmal von verloren

    [autoit]


    $sum = PixelChecksum(x,y,x1,y1,5)
    if not $sum = $sum_win or not $sum_loose then
    msgbox(0,"Status","Nicht erkannt!")
    else
    if $sum = $sum_win then msgbox(0,"Status","Gewonnen")
    if $sum = $sum_loose then msgbox(0,"Status","Verloren")
    endif

    [/autoit][autoit][/autoit][autoit][/autoit]

    vllt ein neuer ansatz ;)
    und die checksum muss ja nur ein kleiner bereich des fensters sein, dort wo dann halt steht das man gewonnen oder verloren hat ;)