Seite 1 von 1

Benötige Hilfe bei einem Script

Verfasst: 28.03.2012, 21:39
von Joyrider
Moin,

ich bastel grad mit Autoit rum, aber ich komme an einem Punkt nicht weiter.

Ich kann mittels "Winwait" warten bis ein Programm aufgeht, z.B. "notepad".
Syntax: winwait("notepad")


Ich möchte nun aber das das Script wartet bis ein gewisser Text im Notepad steht, z.B. "Bla bla ich bin ein Text".

Dies soll über die ControlGetText-Funktion gehen, aber ich blicke da nicht durch.

Ein Beispiel ist dieses:

Code: Alles auswählen

Run("notepad.exe")
WinWait("[CLASS:Notepad]")
ControlSetText("[CLASS:Notepad]", "", "Edit1", "New Text Here")
Local $sText = ControlGetText("[CLASS:Notepad]", "", "Edit1")
MsgBox(0, "ControlGetText Example", "The control text is: " & $sText)


http://www.autoit.de/dokumentation/func ... etText.htm

Kennt sich jemand mit Autoit aus und kann mir da weiter helfen? Derzeit mache ich es mit festen Verzögerungen, aber das ist keine schöne Lösung.

Ich will unter anderem Programminstallationen automatisieren, aber bei einigen ändert sich der Titel nicht, daher kann ich nicht mit WinWait arbeiten.

Re: Benötige Hilfe bei einem Script

Verfasst: 29.03.2012, 06:49
von schmidtsmikey
Ich habe keine Ahnung von Autoit, aber einen Programmieransatz. Wenn die Datei nicht allzu groß ist, würde ich eine Schleife bauen, die jedes Mal die Textdatei einliest. erst wenn Du den Text findest, wird die Schleife beendet.

Hier der Pseudo-Code

Code: Alles auswählen


$textIsFound = false;

while(! $textIsFound) {

   LESE TEXTDATEI;
   FINDE TEXT;

   if ($trefferImText) {
      $textIsFound = true;
   }

}

Re: Benötige Hilfe bei einem Script

Verfasst: 29.03.2012, 08:17
von Joyrider
Es geht nicht um eine Textdatei, es geht um sichtbaren Text.


Was ich kann:

Code: Alles auswählen

WinWait("Unbenannt - Editor","Test")
MsgBox(4096, "Testbox", "Text gefunden")


Sobald ein Notepad auf ist, wo ich Test reinschreibe, dann erscheint eine MessageBox mit der Überschrift "Testbox" und dem Inhalt "Text gefunden").

Bei LibreOffice z.B. findet er den Text jedoch nicht. :(

Mein Problem ist das die Installation je nach PC verschieden lange dauert. Klar kann ich jeden PC warten lassen, aber wenn da nur einer bei ist der dennoch zu langsam ist springt das Script weiter und macht Murks.