Beiträge von BigRox

    Hallo Greenhorn,
    Beispiele gäbe es da sehr viele, die Probleme treten nämlich bei allen Installationscripten auf.


    Das einzige was bei allen Scripten immer das selbe ist, der Fenstertittel ist bei beiden Fenstern immer gleich z.B. "Winamp Setup", aber der Fenstertext ist immer verschieden z.B. erstes Fenster "Interface and Skin Selection" und zweites Fenster: "Installing".


    Gerade habe ich auch noch festgestellt, das die erkennung von Fenstertitel und Fenstertext beim Befehl "WinExists" aber immer richtig funktioniert. Da wird auch zwischen den verschiedenen Fenstertexten bei gleichem Fenstertitel richtig unterschieden.


    Beim Problem mit dem Befehl "ProzessWait" sieht es dagegen so aus, das der Prozess z.B. "notepad.exe" vorm aufrufen des Befehles "ProzessWait" nicht schon existieren darf (z.B. wegen einem anderen Fenster das eine TXT-Datei mit dem Notepad anzeigt), sonst wird er nicht erkannt.


    Die Version von AutoIt die ich verwende ist: 3.2.12.0


    Gruß:
    BigRox

    Hallo,
    ich habe da ein Problem beim Fenstererkennen, bei schnelleren Rechnern (Core2Dou E8400).


    Wenn ich folgendes Script auf einem langsamen Rechner (AthlonXP 2000) laufen lasse, so funktioniert das einwandfrei.
    Beispielscript:


    Befehle....
    ; Das Fenster durch einen Klick auf "Installieren" schließen.
    ControlClick($Fenster_Titel, "&Installieren", "Button2")
    Sleep(500)


    ; Eintragungen usw. in folgenden Fenster (das während der Installation angezeigt wird).
    ; Warten bis das Fenster des Installationsprogramms existiert.
    WinWait($FensterTitel, $FensterText)
    Weitere Befehle...


    Ende des Beispielskriptes:
    Aber wenn ich dieses Script dann auf dem schnelleren Rechner laufen lasse, so läuft es nicht mehr.
    Dann wird das erste Fenster einwandfrei abgearbeitet und auch durch den Klick auf den &Installieren-Button geschlossen, aber das folgend Fenster wird nicht mehr erkannt obwohl es richtig angezeigt wird.
    Dann wartet der Rechner nämlich ewig auf das nächste Fenster.
    Auch das Sleep zwischen den beiden Fenstern verlängern oder ganz weglassen, funktioniert nicht.
    Das einzige, was da funktioniert ist wenn man den WinWait-Befehl komplett weglässt und damit auf die Fenstererkennung ganz verzichtet.
    Anscheinend gibt es da ein Problem, wenn ein Fenster schon existiert bevor die WinWait-Abfrage kommt.


    Das selbe Problem habe ich auch beim ProzessWait-Befehl.
    Wenn der gesuchte Prozess schon existiert bevor der ProzessWait-Befehl abgearbeitet werden soll, so warte der schnellere Rechner vergebens auf den Prozess.


    Anscheinend muss man bei schnelleren Rechner da einen extra Befehl o.ä. einfügen, damit der Rechner etwas gebremst wird.
    So ist ein derarter Rechner anscheinend einfach zu schnell für AutoIt.


    Oder ist das ein spezielles Problem beim Einsatz von DualCore-CPU`s ?
    (Da scheint nämlich das Installation-Programm schneller zu laufen als das AutoIt-Script).


    Für eine Hilfe bei diesem Problem, währe ich sehr dankbar.
    (vielleicht kennt ja schon einer dieses Problem und auch die Lösung dazu).


    Gruß:
    BigRox

    Hallo progandy,
    das mit dem Textauslesen geht jetzt mit z.B. $Test = ControlTreeView("Ordneroptionen", "", 30120, "GetText", "#0|#1")


    Aber wie geht das eigentlich mit "Select", "Check", "Uncheck", "IsChecked" ?


    Wenn ich z.B. das mit "Select", "Item" oder "Check/Uncheck", "Item" ausprobiere, geschieht garnichts und wenn ich das mit "IsChecked" ausprobiere bekomme ich immer -1 zurück (das Item ist keine Checkbox).


    Hier ein kleines Script zum ansehen (Beispiel mit "Select", "Item").



    Gruß:
    BigRox

    Hallo,
    ich möchte feststellen ob ein Eintrag in einem TreeView vorhanden ist. Bei den meisten TreeViews geht das auch mit „$Test = ControlTreeView(Fenster_Titel, Fenster_Text, ID, "Exists", „Item“)“.
    In der Variablen $Test steht dann 1 wenn der Eintrag existiert, und 0 wenn er nicht existiert.


    Nur bei einigen TreeViews (z.B das für die Ordneroptionen von Windows XP), da geht es nicht. Beim ersten Eintrag „Dateien und Ordner“ geht es, aber alle folgenden Einträge existieren anscheinend nicht.


    Hier das Script zum ansehen.


    Warum geht das eigentlich nicht ? Auch wenn man die Texte der Items auslesen will, erscheint nur der erste „Dateien und Ordner“, die restlichen sind nicht auszulesen.
    Auch bei z.B. „ffdshow“ gibt es so ein TreeView, bei dem funktioniert es nicht. Dieses TreeView enthält auch nicht nur Checkboxen sondern auch einige RadioButtons. Daher vermute ich, das dieses Problem irgendwie damit zusammenhängt. Oder sind das irgendwie besondere Treeviews ? Aber irgendwie müsste man die doch auch bearbeiten können (z.B. mit einer speziellen Funktion).
    Was mich aber vorallem wundert ist, bei einigen Rechnern geht es auch ohne das man irgendwas besonders machen muss.


    Vielen Dank, für die Hilfe.


    Gruß
    BigRox

    Hallo,
    ich habe da wiederum eine kleine Frage zu AutoIt.


    Kann man bei AutoIt eigentlich auch mehrere Befehle in eine Zeile schreiben ?
    Etwa mit einem Doppelpunkt als Trennzeichen zwischen den einzelnen Befehlen.
    (Ich habe schon einmal mit dem Doppelpunkt ausprobiert, es geht damit nicht, aber vielleicht geht es mit einem anderen Zeichen).


    Wenn man das machen könnte, würden die Scripts nicht so lang (bei mir sind es z.T. 1500 Zeilen und mehr).


    Danke für die Hilfe.


    Gruß:
    BigRox

    Hallo,
    ich habe da ein kleines Problem mit dem WinWaitClose-Befehl.
    Ich schreibe ein Installationsscript mit mehreren Fenstern.


    Zuerst bearbeite ich das erste Fenster mit den entsprechenden Befehlen und schließe dieses Fenster mit einem Klick auf den "Weiter"-Button.
    Der letzte Befehl für dieses Fenster ist dann der WinWaitClose-Befehl damit das Script pausiert bis das erste Fenster wirklich nicht mehr existiert.


    Dann kommt das zweite Fenster dran. Der erste Befehl ist dann der WinWait-Befehl, damit das Script auf dieses Fenster wartet.
    Danach kommen einige Befehle die dazu dienen, das Script abzubrechen und eine Fehlermeldung auzugeben falls das Fenster zwei doch nicht existieren sollte.


    Nun zu meinem Problemchen:
    Meistens läuft das ganze Script einwandfrei druch, dann läuft nur das erste Fenster anscheinend einwandfrei durch und dann erscheint die Fehlermeldung, das Fenster zwei nicht aktiviert werden konnte (es ist aber meistens sogar zu sehen wenn das Script einfach hängenbleibt).
    Die Ursache ist dann immer der WinWaitClose-Befehl vom Fenster eins.
    Das Script läuft genau bis zu diesem Befehl und bleibt da hängen. Auch wenn man ein Timeout bei dem WinWaitClose-Befehl angibt.
    Das Script bleibt auch dann hängen und das Timeout wird einfach nicht beachtet.
    Anscheinend tritt dieses Problem auf, wenn das Fenster schon nicht mehr existiert wenn der WinWaitClose-Befehl aufgerufen wird.
    (Nach dem was in der Hilfe zu AutoIt steht, dürfte das aber kein Problem sein).



    Ich habe einmal ein kleines Beispielscript angefügt, damit mann sehen kann, wie ich das meine.


    Worann liegt das eigentlich, meistens läuft das Script einwandfrei und auch der WinWaitClose-Befehl wird richtig abgearbeitet und dann wiederum geht der WinWaitClose-Befehl nicht mehr ?
    Oder währe es in dem Script nicht sogar besser den WinWaitClose-Befehl durch ein Sleep(1000)-Befehl zu ersetzen ?
    (Mit dem Sleep(1000)-Befehl als Ersatz läft es immer einwandfrei, nur ist das dann auch so sicher ?)


    Danke für die Hilfe.


    Gruß:
    BigRox

    Hallo progandy,
    zuerst,danke für deine Hilfe.
    Ich habe dein Script eben ausprobiert, leider funktioniert es nicht.


    Mit dem Befehl "_GUICtrlListBox_GetItemData" kann ich nichts anfangen.
    Dieser Befehl gehört leider zu den vielen Befehlen, die bei mir nicht funktionieren.


    Bei diesem Befehl kommt immer "False" als Rückgabewert zurück, egal ob die Checkbox markiert ist oder nicht.


    Wieso hat man eigentlich den Befehl zum anklicken einer Checkbox rausgeworfen, ich schätze nämlich, das dieser Befehl öffters gebraucht wird ?
    (Ich verwende u.a. daher nur noch die AutoIt-Version 3.2.8.2 mit der AutoLib, zudem haben die neuen Versionen wohl einige Fehler die sie für mich leider nicht verwendbar machen).



    MfG
    BigRox

    Hallo,
    ich möchte mir ein Script schreiben, das eine Anwendung (LingoPad) automatisch installiert.
    Das Steup enthält u.a. eine "TNewCheckListBox" in der sich die eigentlichen Checkboxen befinden.
    In der AutoIt-Version 3.2.8.2 mit der AutoLib, konnt man z.B.mit dem Befehl "_Listbox_ClickItem($ControlHandle, 0)" die erste CheckBox in dieser ListBox anklicken.



    Nur jetzt setze ich die AutoIt-Version 3.2.10.0 ein und da gibt es ja keine AutoLib mehr.
    Nun suche ich in dieser Version die entsprechenden Befehle um diese CheckBoxen weiterhin auszuwerten.
    Irgendwie scheinen die Befehle die da im ListBox-Management aufgeführt sind, diese Möglichkeiten nicht mehr zur Verfügung zu stellen (oder ich komme mit der englischen Hilfe nicht so recht klar).
    Ich möchte aber nicht nur eine CheckBox anklicken, sondern auch den momentanen Zustand der CheckBox auslesen.


    MfG:
    BigRox

    Hallo Alina,
    ich habe das mit den Checkboxen eben nocheinmal ausprobiert, es hat wiederum nicht geklappt.


    Ich verwende Windows XP Professional SP2 mit den neusten Sicherheitsupdates des nLite Updatepacks 1.2008 (die neuste Version).
    Dieses Updatepack enthält alle seit dem SP2 erschienenen Sicherheitsupdates, aber keine Optionalen Updates.
    Die Sprachversion meines Betriebssystemes ist deutsch.


    Ich habe es mit den AutoIt-Versionen 3.2.10.0 und den neuen Beta 3.2.11.0 in deutsch und englisch ausprobiert, es ging nie.


    Ich vermute aber, es liegt am Betriebssystem, da wird wohl irgendeine API-Funktion in der deutschen Sprachversion anders geschrieben und AutoIt erkennt das nicht mehr.
    (mit der AutoIt-Version 3.2.8.2 und er Au3Lib geht es dagegen einwandfrei, nur darf mann dann sein Script keinesfalls mit den neusten AutoIt-Versionen öffnen).


    Gruß:
    BigRox

    Hallo Alina,


    danke für deine Hilfe.


    Ich habe das Script mit deinen Änderungen eben ausprobiert, es geht bei mir aber leider auch nicht.


    Das Ergebniss, ist genau das gleiche wie vorher.


    Der Befehl „_GUICrtlTreeView_FindItemEx....” gibt zwar auch wieder so ein Item Handle zurück, nur damit können die nachfolgenden Befehle immer noch nichts anfangen.


    Was für welche Versionen von AutoIt verwendest du eigentlich ?


    Oder könnte dies auch ein Problem mit der verwendeten Version von Windows XP sein ?


    Ich verwende da Windows XP Professional SP2 "2600.xpsp_sp2_rtm.040803-2158".


    Gruß:


    BigRox

    Probleme beim Auswerten von Checkboxen




    Hallo,
    ich habe da ein Problem mit dem auswerten von Checkboxen in einem TreeView.
    Ich wollte das einmal das mit den GUICrtlTreeView_-Befehlen, in der AutoIt-Version 3.2.10.0 ausprobieren.


    Dazu habe ich mir, zu Testzwecken, ein kleines Script mit AutoIt geschrieben, das den Zustand von Checkboxen, die sich in einem SysTreeView befinden, auslesen, ändern usw. kann.


    Ich habe dieses Script, natürlich entsprechend angepasst, bei einigen Installationsprogrammen ausprobiert (z.b. mit Winamp 5.2) da funktioniert es mit den "_GUICrtlTreeView_"- Befehlen immer wie ich es will.


    Aber wenn ich dieses Script bei diesem Fenster zum ändern der Ordneroptionen in Windows XP einsetze, so geht da nichts.
    Es lässt sich keine Checkbox auslesen oder ändern.


    Ist das irgendein besonderes Fenster, das man irgendwie anders ansprechen muss ?
    Ich probiere jetzt schon seit einigen Tagen an dem Problemchen herum, aber es geht einfach nichts.


    Hier nun das Script für die Ordneroptionen, mit Erläuterungen zu den Befehlen die ich da verwendet habe:



    Vielleicht kann ja einer daran sehen, woran es liegt und mir den Fehler nennen.


    Der Befehl „_GUICrtlTreeView_FindItemEx....” gibt zwar so ein Item Handle (in der Variablen „Ihandle“) zurück, nur damit können die nachfolgenden Befehle nichts anfangen (ändert man den Suchstring, so gibt der Befehl einen Fehler {0} zurück).


    Ich habe dies auch mit der neuen Beta Version 3.2.11.0 von AutoIt versucht, das Ergebnis ist damit das gleiche, es geht auch nicht.


    (mit der alten Version 3.2.8.2 von AutoIT und der Au3Lib {mit einem entsprechend angepassten Script} funktioniert es aber).


    Löscht man den kompletten Include-Ordner aus AutoIt 3.2.10.0 und ersetzt ihn durch den Include-Ordner der AutoIt-Version 3.2.8.2 (und versucht es wieder (auch mit den entsprechend angepassten Befehlen) so geht es auch.


    Das Problem liegt also irgendwo in den Include-Dateien der Version 3.2.10.0.


    Da ich inzwischen erfahren habe, das dieses Problem wohl ein Fehler in AutoIt ist, poste ich nun mein Problem in diesem Board (das Problem betrift auch die neuste Beta-Version von AutoIt).

    Vielen Dank für die Hilfe.


    Gruß:
    BigRox

    P.S. Auch mit dem Befehl “ControlTreeView('Ordneroptionen’, 'Erweiterte Einstellungen:’, 30120, 'Exists’, 'Geschützte Systemdateien ausblenden (empfohlen)’)“, geht es nicht.

    Hallo,
    ich habe da ein Problem mit dem auswerten von Checkboxen in einem TreeView.
    Ich wollte das einmal das mit den GUICrtlTreeView_-Befehlen, in der AutoIt-Version 3.2.10.0 ausprobieren.


    Dazu habe ich mir, zu Testzwecken, ein kleines Script mit AutoIt geschrieben, das den Zustand von Checkboxen, die sich in einem SysTreeView befinden, auslesen, ändern usw. kann.


    Ich habe dieses Script, natürlich entsprechend angepasst, bei einigen Installationsprogrammen ausprobiert (z.b. mit Winamp 5.2) da funktioniert es mit den "_GUICrtlTreeView_"- Befehlen immer wie ich es will.


    Aber wenn ich dieses Script bei diesem Fenster zum ändern der Ordneroptionen in Windows XP einsetze, so geht da nichts.
    Es lässt sich keine Checkbox auslesen oder ändern.


    Ist das irgendein besonderes Fenster, das man irgendwie anders ansprechen muss ?
    Ich probiere jetzt schon seit einigen Tagen an dem Problemchen herum, aber es geht einfach nichts.


    Hier nun das Script für die Ordneroptionen, mit Erläuterungen zu den Befehlen die ich da verwendet habe:


    Vielleicht kann ja einer daran sehen, woran es liegt und mir den Fehler nennen.


    Der Befehl „_GUICrtlTreeView_FindItemEx....” gibt zwar so ein Item Handle (in der Variablen „Ihandle“) zurück, nur damit können die nachfolgenden Befehle nichts anfangen (ändert man den Suchstring, so gibt der Befehl einen Fehler {0} zurück).


    Ich habe dies auch mit der neuen Beta Version 3.2.11.0 von AutoIt versucht, das Ergebnis ist damit das gleiche, es geht auch nicht.


    (mit der alten Version 3.2.8.2 von AutoIT und der Au3Lib {mit einem entsprechend angepassten Script} funktioniert es aber).


    Löscht man den kompletten Include-Ordner aus AutoIt 3.2.10.0 und ersetzt ihn durch den Include-Ordner der AutoIt-Version 3.2.8.2 (und versucht es wieder (auch mit den entsprechend angepassten Befehlen) so geht es auch.


    Das Problem liegt also irgendwo in den Include-Dateien der Version 3.2.10.0.


    Entweder habe ich da noch irgendeinen Fehler in meinem aufgeführten Script, oder da gibt es ein kleines Problemchen in den Include-Dateien der AutoIt-Version 3.2.10.0 (und der Beta-Version).

    Vielen Dank für die Hilfe.


    Gruß:
    BigRox

    P.S. Auch mit dem Befehl “ControlTreeView('Ordneroptionen’, 'Erweiterte Einstellungen:’, 30120, 'Exists’, 'Geschützte Systemdateien ausblenden (empfohlen)’)“, geht es nicht.