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. BigRox

Beiträge von BigRox

  • Avira AntiVir v9

    • BigRox
    • 28. Juni 2009 um 12:32

    Hallo lordn30,
    für Avira Antvir Free Antivirus 9.0 hab ich auch mal ein AutoIt-Script geschrieben.
    Das Script funktioniert einwandfrei und vorallem auf jedem Rechner den ich bisher in die Finger bekommen habe.
    Aber eins vorweg: das Script ist ziemlich lang geworden da es auf möglichst jedem Rechner laufen soll.

    Avira wird damit komplett installiert und eingerichtet. Mann muss also nur noch das Script starten und dann warten, bis das Script abgelaufen ist.

    Hier nun das Script:

    ; -----------------------------------------------------------------------------------------------------------------------------
    ; Script Funktion : Script zum Installieren und Einrichten von "Avira AntiVir Personal - Free Antivirus 9.0".
    ;
    ; AutoIt Version : 3.3.0.0
    ; Script Autor : BigRox
    ; -----------------------------------------------------------------------------------------------------------------------------

    ; Optionen für dieses Script festlegen.
    Opt("MustDeclareVars", 1)

    ; Variablen deklarieren.
    Dim $Fenster[150], $Fenster_Titel_1, $Fenster_Titel_2, $Frage, $F_Nr, $F_Text, $F_Titel, $Install_Pfad, $LV, $Pfad_Install_Programm, $Pfad_Install_Sonstiges, $WinHandle

    ; Einigen Variablen Werte zuweisen.
    $Fenster_Titel_1 = "Avira AntiVir Personal"
    $Fenster_Titel_2 = "Konfigurationsassistent"
    $Install_Pfad = @ProgramFilesDir & "\Avira\AntiVir Desktop" ; Der Installationspfad kann von "\Avira\" an nicht geändert werden.
    $Pfad_Install_Programm = @HomeDrive & "\Avira AntiVir\Programm"
    $Pfad_Install_Sonstiges = @HomeDrive & "\Avira AntiVir\Sonstiges"

    ; Anzeigen des Splash-Screens mit des Wartehinweis (immer im Vordergrund).
    SplashTextOn("Wartehinweis", @LF & 'Das Programm "Avira AntiVir" wird nun installiert und eingerichtet.' & @LF & @LF & "Bitte warten Sie: (Dauer: c.a. 4 Min.)", 815, 170, -1, 15, 16, "Times New Roman", 20)

    ; "Sleep" damit man den Splash-Screen auch komplett lesen kann.
    Sleep(5000)

    ; Den Splash-Screen kurz ausschalten.
    SplashOff()

    ; Anzeigen des Splash-Screens mit des Wartehinweis (nicht immer im Vordergrund).
    SplashTextOn("Wartehinweis", @LF & 'Das Programm "Avira AntiVir" wird nun installiert und eingerichtet.' & @LF & @LF & "Bitte warten Sie: (Dauer: c.a. 4 Min.)", 815, 170, -1, 15, 18, "Times New Roman", 20)

    ; Alle momentan geöffneten Fenster schließen (das Script funktioniert mit dem IE6, IE7 und IE8).
    $Fenster = WinList()
    For $LV = 1 To $Fenster[0][0]
    If Not BitAND(WinGetState($Fenster[$LV][1]), 2) Then
    ContinueLoop
    EndIf
    If Not $Fenster[$LV][0] = StringInStr($Fenster[$LV][0], "Program Manager") And Not $Fenster[$LV][0] = StringInStr($Fenster[$LV][0], "Wartehinweis") Then
    WinSetState($Fenster[$LV][1], "", @SW_MAXIMIZE)
    WinClose($Fenster[$LV][1])
    Sleep(1500)
    If WinExists("Internet Explorer", "Möchten Sie alle") Then
    WinActivate("Internet Explorer", "Möchten Sie alle")
    If ControlCommand("Internet Explorer", "Möchten Sie alle", 6, "IsVisible", "") = 1 Then
    ControlClick("Internet Explorer", "&Registerkarten schließen", 6) ; Registerkarten beim IE7 schließen.
    Else
    ControlClick("Internet Explorer", "&Alle Registerkarten schließen", 30980) ; Registerkarten beim IE8 schließen.
    EndIf
    While WinExists("Internet Explorer", "Möchten Sie alle")
    Sleep(500)
    WEnd
    EndIf
    While WinExists($Fenster[$LV][1])
    Sleep(500)
    WEnd
    EndIf
    Next

    ; Die Maus und die Tastatur blockieren.
    BlockInput(1)

    ; Den eventuell vorhandenen Installationsordner löschen (ist der Ordner vorhanden so lässt sich das Programm nicht automatisch installieren).
    If FileExists($Install_Pfad & "\") Then
    DirRemove($Install_Pfad, 1)
    EndIf

    ; Das Installationsprogramm von "Avira AntiVir Personal - Free Antivirus 9.0" aufrufen.
    Run($Pfad_Install_Programm & "\avira_antivir_personal_de.exe")

    ; Warteschleife bis das erste Fenster erscheint.
    $F_Text = "Annehmen" ; Der Texte gilt auch für das folgende Fenster 1.1.
    Do
    Sleep(1000)
    Until WinExists($Fenster_Titel_1, $F_Text)

    ; Eintragungen usw. in Fenster 1.1.
    $F_Titel = $Fenster_Titel_1
    $F_Nr = 1.1
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Das Fenster durch einen Klick auf "Annehmen" schließen.
    ControlClick($WinHandle, "", 1)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 2.1 (Warteschleife wegen dem entpacken der Dateien).
    $F_Text = "Willkommen zur Installation" ; Der Texte gilt auch für das folgende Fenster 3.1.
    Do
    Sleep(1000)
    Until WinExists($Fenster_Titel_1, $F_Text)

    ; Eintragungen usw. in Fenster 3.1.
    $F_Titel = $Fenster_Titel_1
    $F_Nr = 3.1
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 4.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Avira AntiVir Personal"
    $F_Nr = 4.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    ; Die Funktion "F_Geschlossen($F_Titel, $F_Text)" funktioniert bei diesem Fenster nicht !

    ; Eintragungen usw. in Fenster 5.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Endbenutzer-Lizenzvertrag"
    $F_Nr = 5.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die Lizenzbedingungen annehmen.
    ControlCommand($WinHandle, "", 1008, "Check", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 6.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Bitte bestätigen Sie"
    $F_Nr = 6.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die ausschließliche private Nutzung bestätigen.
    ControlCommand($WinHandle, "", 1080, "Check", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 7.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Wählen Sie aus"
    $F_Nr = 7.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die Benutzerdefinierte Installation wählen.
    ControlCommand($WinHandle, "", 1017, "Check", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 8.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Setup wird Avira"
    $F_Nr = 8.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 9.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Um eine Komponente hinzuzufügen"
    $F_Nr = 9.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 10.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Zufällige Seriennummer"
    $F_Nr = 10.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die Zufällige Seriennummer generieren auswählen.
    ControlCommand($WinHandle, "", 1008, "Check", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 11.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Wählen Sie eine"
    $F_Nr = 11.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Ein Icon auf dem Desktop erstellen abwählen.
    ControlCommand($WinHandle, "", 1013, "UnCheck", "")
    Sleep(1000)
    ; Eine Programmgruppe erstellen abwählen.
    ControlCommand($WinHandle, "", 1003, "UnCheck", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 12.1.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Bitte geben Sie Ihre persönlichen Daten ein"
    $F_Nr = 12.1
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die Option zum registrieren bei Avira abwählen.
    ControlCommand($WinHandle, "", 1070, "UnCheck", "")
    Sleep(1000)
    ; Die Option zum anmelden für den Newsletter abwählen.
    ControlCommand($WinHandle, "", 1071, "UnCheck", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 13.1 (das Programm wird installiert).
    $F_Text = "Installation beendet" ; Der Texte gilt auch für das folgende Fenster 14.1.
    Do
    Sleep(1000)
    ; Das eventuell erscheinende Fenster erkennen und darauf reagieren.
    If WinExists("Ersetzen von Dateien bestätigen") Then
    ; Das Fenster durch einen Klick auf "Alle beibehalten" schließen (6 = Ja, 7 = Nein).
    ControlClick("Ersetzen von Dateien bestätigen", "", 407)
    Sleep(1000)
    EndIf
    Until WinExists($Fenster_Titel_1, $F_Text)

    ; Eintragungen usw. in Fenster 14.1.
    $F_Titel = $Fenster_Titel_1
    $F_Nr = 14.1
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die Option zum anzeigen der "Readme.txt"-Datei, abwählen.
    ControlCommand($WinHandle, "", 1034, "UnCheck", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Fertig stellen" schließen.
    ControlClick($WinHandle, "", 12325)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 1.2.
    $F_Titel = $Fenster_Titel_2
    $F_Text = "Die Installation von Avira"
    $F_Nr = 1.2
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 2.2.
    $F_Titel = $Fenster_Titel_2
    $F_Text = "Wählen Sie die Erkennungsstufe"
    $F_Nr = 2.2
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 3.2.
    $F_Titel = $Fenster_Titel_2
    $F_Text = "Viren- bzw. Malwarefunde"
    $F_Nr = 3.2
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die Option "Alle aktivieren" auswählen.
    ControlCommand($WinHandle, "", 5410, "Check", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 4.2.
    $F_Titel = $Fenster_Titel_2
    $F_Text = "Sicherer Start"
    $F_Nr = 4.2
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die Option "Sicherer Start, AntiVir Guard wird während des Starts des Computers so früh als möglich geladen." auswählen, (1015 Normaler Start, AntiVir Guard startet im normalen, automatischen Modus. Dies ist der empfohlende Startmodus. (Standardeinstellung)).
    ControlCommand($WinHandle, "", 1016, "Check", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 5.2.
    $F_Titel = $Fenster_Titel_2
    $F_Text = "Wir empfehlen Ihnen"
    $F_Nr = 5.2
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Die Option "Kurze Systemprüfung nach der Installation durchführen" auswählen.
    ControlCommand($WinHandle, "", 15005, "Check", "")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "Weiter >" schließen.
    ControlClick($WinHandle, "", 12324)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 6.2.
    $F_Titel = $Fenster_Titel_2
    $F_Text = "Vielen Dank!"
    $F_Nr = 6.2
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Das Fenster durch einen Klick auf "Fertig stellen" schließen.
    ControlClick($WinHandle, "", 12325)
    F_Geschlossen($F_Titel, $F_Text)

    ; Eintragungen usw. in Fenster 1.3 (Kurze Systemprüfung).
    $F_Titel = "Luke Filewalker"
    $F_Text = "Informationen zu Viren"
    $F_Nr = 1.3
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Schleife zum erkennen des Suchlauf-Endes starten.
    Do
    Sleep(1000)
    Until ControlGetText($WinHandle, "", 20001) = "&Beenden"
    ; Das Fenster durch einen Klick auf "Beenden" schließen.
    ControlClick($WinHandle, "", 20001)
    F_Geschlossen($F_Titel, $F_Text)

    ; Das Programm zur Konfiguration von "AntiVir" aufrufen.
    Run($Install_Pfad & "\avconfig.exe")

    ; Eintragungen usw. in Fenster 1.4.
    $F_Titel = $Fenster_Titel_1
    $F_Text = "Expertenmodus"
    $F_Nr = 1.4
    WinWait($F_Titel, $F_Text, 10)
    $WinHandle = F_Erkennung($F_Titel, $F_Text, $F_Nr)
    ; Den Expertenmodus aktivieren (damit das Item "Sicherheit" auch erscheint).
    ControlCommand($WinHandle, "", 1677, "Check")
    Sleep(1000)
    ; Den Baum "Allgemeines" des "TreeViews" expandieren.
    ControlTreeView($WinHandle, "", 32494, "Expand", "Allgemeines")
    Sleep(1000)
    ; Testen ob das gewünschte Item existiert.
    If ControlTreeView($WinHandle, "", 32494, "Exists", "Allgemeines|Sicherheit") = 0 Then
    BlockInput(0)
    MsgBox(262192, "! Fehler !", "Das gewünschte Item wurde nicht gefunden !") ; MsgBox = 1, 4, 1, 1, 2.
    Exit (1)
    EndIf
    ; Das Item "Sicherheit" auswählen.
    ControlTreeView($WinHandle, "", 32494, "Select", "Allgemeines|Sicherheit")
    Sleep(1000)
    ; Die Option "Dateien und Registrierungseinträge vor Manipulation schützen" abwählen (damit die Einstellungen von "AntiVir" auch kopiert werden können. Die Option ist nach dem Neustart wieder markiert)
    ControlCommand($WinHandle, "", 1028, "UnCheck")
    Sleep(1000)
    ; Das Fenster durch einen Klick auf "OK" schließen.
    ControlClick($WinHandle, "", 1)
    F_Geschlossen($F_Titel, $F_Text)

    ; "Sleep" zur Sicherheit (damit die Konfiguration auch wirklich geändert ist).
    Sleep(5000)

    ; Das Verzeichnis mit den "ScanJobs" mit Inhalt löschen.
    DirRemove(@AppDataCommonDir & "\Avira\AntiVir Desktop\JOBS", 1)

    ; Das Verzeichnis mit den neuen "ScanJobs" kopieren.
    DirCopy($Pfad_Install_Sonstiges & "\JOBS", @AppDataCommonDir & "\Avira\AntiVir Desktop\JOBS", 1)

    ; Die Datei mit den Einstellungen von "Avira AntiVir" kopieren.
    FileCopy($Pfad_Install_Sonstiges & "\AVWIN.INI", @AppDataCommonDir & "\Avira\AntiVir Desktop\CONFIG", 9)

    #Cs
    ; Unnötige Dateien löschen.
    FileDelete($Install_Pfad & "\")
    FileDelete($Install_Pfad & "\")
    #Ce

    ; "Sleep" zur Sicherheit.
    Sleep(500)

    ; Den Splash-Screen wieder ausschalten.
    SplashOff()

    ; Die Maus und die Tastatur wieder freigeben.
    BlockInput(0)

    ; Script beenden.
    Exit (0)


    ; Funktion für die Fenstererkennung.
    Func F_Erkennung($F_Titel, $F_Text, $F_Nr)
    $WinHandle = WinGetHandle($F_Titel, $F_Text)
    If @error Then
    BlockInput(0)
    MsgBox(262192, "! F E H L E R !", "Das Fenster " & $F_Nr & " konnte nicht aktiviert werden !") ; MsgBox = 1, 4, 1, 1, 2.
    Exit (1)
    Else
    Do
    WinActivate($F_Titel, $F_Text)
    Sleep(500)
    Until WinActive($F_Titel, $F_Text) = 1
    Sleep(500)
    Return $WinHandle
    EndIf
    EndFunc

    ; Funktion um festzustellen ob ein Fenster nicht mehr aktiv (also auch geschlossen) ist.
    Func F_Geschlossen($F_Titel, $F_Text)
    Do
    Sleep(500)
    Until Not WinActive($F_Titel, $F_Text)
    Return
    EndFunc

    Das wars dann.
    Bin mal auf die Verbesserungsvorschläge der Experten gespann,ich vermute mal das mann an dem Script noch einiges verbesssern könnte.

    Gruß:
    BigRox


    P.S. Versteh mal einer diese Forensoftware, erst will sie den Dateianhang einfach nicht übernehmen und dann ist er doch im endgültigen Post vorhanden.

  • Probleme mit dem SplshScreen

    • BigRox
    • 28. März 2009 um 13:13

    Hallo Oscar,
    danke für den Tipp, so geht es. :thumbup:
    Ich habe ja schon einiges ausprobiert, aber darauf bin ich nicht gekomen.
    Das sollte man eigentlich auch in der Hilfe zu AutoIt schreiben.

    Gruß:
    BigRox

  • Probleme mit dem SplshScreen

    • BigRox
    • 27. März 2009 um 18:59

    Hallo,
    ich habe da ein kleines Problem mit dem Text eines SplashScreens.

    Ich will das Programm O&O Defrag automatisch installieren.
    Am Anfang des Scriptes soll ein SplashScreen mit einem Wartehinweis erscheinen.
    Im Text steht aber ein &.

    Hier der ganze Befehl:

    ; Anzeigen des Splash-Screens mit des Wartehinweis (immer im Vordergrund).
    SplashTextOn("Wartehinweis", 'Das Programm "O&O Defrag 2000" wird nun' & @LF & "installiert und eingerichtet." & @LF & @LF & "Bitte warten Sie: (Dauer: c.a. 1 Min.)", 605, 205, -1, 15, 16, "Times New Roman", 20)

    Da erscheint später aber immer ein Unterstrich unter dem zweiten O.
    Ich habe es schon auf einige Arten versucht (z.B. anstelle des & das entsprechende ASCII-Zeichen einfügen) aber es ging auch nicht.

    Kann man das eigentlich noch irgendwie anders ändern (außer in Windows den Unterstrich ganz abstellen) ?

    Gruß:
    BigRox

  • Fehler in der deutschen Hilfe bitte hier melden Basis: Hilfedatei 3.3.0.0 21.03.2009

    • BigRox
    • 21. Februar 2009 um 18:33

    Hallo,
    in der deutschen Hilfe (Version 3.2.10.0 Stand vom 1.1.2009) ist mir wiederum eine Kleinigkeit aufgefallen.

    Bei der Beschreibung der "ControlComand"-Funktion, ist im Unterpunkt "Verwandte Funktionen" (unten, über "Beispiel") der Eintrag für "ControlClick" zweimal vorhanden.

    Gruß
    BigRox

  • Fehler in der deutschen Hilfe bitte hier melden Basis: Hilfedatei 3.3.0.0 21.03.2009

    • BigRox
    • 27. Januar 2009 um 13:15

    Hallo Tweaky,
    das erste habe ich schon erledigt.
    (Das war zwar schon gestern, aber mein PC wollte plötzlich nicht mehr um dir das auch zu schreiben).

    Gruß:
    BigRox

  • Wo seid ihr?

    • BigRox
    • 27. Januar 2009 um 13:00

    Hallo Rasta,
    zuerst einmal, ich fühle mich keineswegs gekränkt oder sogar beleidigt.
    Ich helfe ja noch weiter mit. Würde mir einer deswegen so richtig auf die Füße treten, so würde ich bestimmt ganz schnell mit dem bersetzen/reviewen aufhören.

    Irgendwie fände ich es aber auch besser, wenn die eigentliche Übersetzung nur von wenigen, und wirklich richtig guten Leuten gemacht würde und dann möglichst viele beim Reviewen mithelfen würden.
    Ich meine, dann könnte man sich als Reviewer wenigstens schon darauf verlassen, dass die eigentliche Übersetzung (und vorallem der Inhalt des Originals) richtig ist, und müsste nicht noch kontrollieren, ob der Text auch richtig übersetz wurde.
    Ich könnte mir sogar vorstellen, dass das fertig stellen der Hilfe auch schneller gehen würde (wenn genug Übersetzer mitmachen).

    Und eine Kleinigkeit muss ich noch schreiben, weil gerade diese Kleinigkeit zu Missverständnissen führen kann:
    Weshalb erscheint einer der nur Reviewt und dann die Rechtschreibfehler korrigiert, als Übersetzer in der Statistik usw. ?
    Währe es nicht irgendwie besser, wenn man Rechtschreibfehler korrigieren und Übersetzen getrennt aufführen würde ?

    Eins wollte ich aber auch noch loswerden:
    Bevor ich mich zum Reviewen/Übersetzen angemeldet habe, habe ich etwa ein halbes Jahr öfters auf der Seite nachgesehen, ob ich den Text auch so übersetz hätte und auch Fehler beim Reviewen finden würde.
    Erst als ich kurze Sätze möglichst fehlerfrei übersetzen konnte, habe ich mich auch angemeldet, denn erst da war ich mir sicher dass ich wirklich mithelfen kann.
    Aber einen ganzen Text übersetzen, dass traue ich mir auch heute noch nicht so recht zu es sei den der Text ist kurz und nicht so schwer, dann geht es auch (aber leider gibt es von derarten Texten nicht mehr so viele).


    Gruß
    BigRox

  • Fehler in der deutschen Hilfe bitte hier melden Basis: Hilfedatei 3.3.0.0 21.03.2009

    • BigRox
    • 26. Januar 2009 um 16:18

    Hallo,
    in der deutschen Hilfe (Version 3.2.10.0 Stand vom 1.1.2009) ist mir wiederum eine Kleinigkleit aufgefallen.

    Die folgend Beschreibung:


    Das Schlüsselwort ByRef ist optional und bedeutet: (1) der Parameter muss eine Variable sein und (2) die originale Variable mit dem Parameter verbunden ist, sodass jegliche Änderungen an dem Parameter innerhalb der Funktion den gleichen Effekt auf die originale Variable hat. Standardmäßig wird ein Parameter durch seinen Wert übergeben was bedeutet, dass eine Kopie des Werts des Parameters durch die Funktion manipuliert wird.

    bei "Index | Func" sieht irgendwie etwas komisch aus.

    Irgenwie sähe:

    Das Schlüsselwort ByRef ist optional und bedeutet:
    (1) der Parameter muss eine Variable sein und
    (2) die originale Variable ist mit dem Parameter verbunden ist, sodass jegliche Änderungen an dem Parameter innerhalb der Funktion den gleichen Effekt auf die originale Variable hat. Standardmäßig wird ein Parameter durch seinen Wert übergeben was bedeutet, dass eine Kopie des Werts des Parameters durch die Funktion manipuliert wird.

    da wohl besser aus.

    Einen kleinen Verbesserungsvorschlag habe ich da auch noch:
    Währe es nicht besser, wenn man Funktionsnamen/Makronamen usw. und Rückgabewerte in fetter Schrift (oder farbig) hervorheben würde ?

    Z.B. Das Makro @NUMPARAMS gibt den Wert 0 zurück.

    Gruß
    BigRox

  • Wo seid ihr?

    • BigRox
    • 26. Januar 2009 um 15:58

    Hi Rasta,
    wenn meine Englischkenntnisse mahl nicht ausreichen sollten (das kommt öfters vor und deswegen sage ich lieber ganz ehrlich, dass meine Englischkenntnisse nicht so gut sind), so schaue ich auch in anderen Dateien nach (die schon übersetzt sind), wie man das Wort/den Satz richtig übersetzt.
    Ich muss sagen, dadurch sind meine Englischkenntnisse auch schon einiges besser geworden.

    Und wenn ich mahl garnicht klarkomme, so lasse ich die Finger vom übersetzen und mache das was ich kann, und zwar Rechtschreibfehler in schon fertigen Übersetzungen suchen.
    (Als gute Hilfe zum finden von Rechtschreibfehlern gibt es auch die Rechtschreibprüfung von z.B. MS-Word).
    Und davon finde ich noch einige, auch bei Leuten die sehr gut übersetzen können.
    Ein Rechtschreibfehler kann schließlich auch dem besten Übersetzer mal unterlaufen und soviel ich das mitbekommen habe, gibt es u.a. auch deswegen das Punktesystem bei der Übersetzung.

    Les dir auch mal den Thread "Motivation geht langsam flöten ..." hier im Forum durch, der ist auch sehr interessant zu der Sache.
    Da steht u.a. auch, dass eigentlich doch jeder der deutsch kann zu mindestens beim reviewen mitzuhelfen könnte, und das hat mich u.a. dazu ermutigt zu mindestens etwas zu der Übersetzung beizutragen.
    Ich benütze nämlich lieber die deutsche Hilfe, und dann ist es für mich irgendwie normal, dass ich dann auch beim übersetzen mithelfe.
    (die englische Hilfe geht aber auch, nur dann kommt es öfter vor das ich da etwas falsch verstehe und dann deswegen dann plötzlich voll auf dem "Schlauch" stehe).

    Eins muss ich zu deinem Post aber auch noch loswerden:
    Wenn einer das liest, so könnte er ganz schnell meinen, dass er perfekt Englisch und Deutsch können muss um auch beim übersetzen/reviewen mitzuhelfen.
    Das könnte aber auch einige Leute, die eigentlich mithelfen könnten, erst recht davon abhalten beim übersetzen/reviewen mitzuhelfen.
    Denke mahl darüber nach.

    Ich behaupte aber auch nicht, dass ich absolut perfekt in der deutschen Rechtschreibung bin (die deutsche Rechtschreibung ist sowieso so ein Thema für sich, das bringt sogar einige Deutschlehrer noch ganz leicht ins "schleudern") aber dafür gibt es ja eben auch das Punktesystem, und daher bin ich halt auch nicht der einzige der die Übersetzung kontrolliert.

    So das reicht aber jetzt zu dem Thema.

    Ein sich über deinen Post auch etwas sehr wundernder -BigRox- ?(

    P.S. Danke noch an Greenhorn, für seinen Post als Reaktion auf deinen Post :thumbup: .

  • Wo seid ihr?

    • BigRox
    • 14. Januar 2009 um 11:09

    Das frage ich mich auch langsam.
    Seit drei Tagen keine neuen Übersetzungen mehr zum reviewen, da fehlt einem ja richtig was.

    Ich würde ja selber die Texte übersetzen, aber dafür sind meine Englischkenntnise nicht gut genug
    Also bleibe ich beim reviewen.

    Aber z.Z. 47 Dateien übersetzen und reviewen, das müsste doch in etwa 14 Tagen erledigt sein.
    Also, los gehts.

    Gruß
    BigRox

  • Fehler in der deutschen Hilfe bitte hier melden Basis: Hilfedatei 3.3.0.0 21.03.2009

    • BigRox
    • 12. Januar 2009 um 13:34

    Hallo,
    in der deutschen Hilfe (Version 3.2.10.0 Stand vom 1.1.2009) ist mir eine Kleinigkleit aufgefallen.
    Die vier Unterpunkte, unter " Inhalt | Makroreferenz" sind noch nicht übersetzt.
    Da steht z.B. noch "directory makros" anstelle von Verzeichnismakros.
    Der folgende Text, in dem die Makros dann beschrieben werden, ist aber in deutsch.

    Gruß
    BigRox

  • Installations-Menü

    • BigRox
    • 18. August 2008 um 13:25

    Hallo,
    ich habe das Script von racemike etwas umgändert.
    Es sieht dann so aus:

    Spoiler anzeigen


    #include <GUIConstants.au3>

    #Region ### START Koda GUI section ###

    $Form1 = GUICreate("Software Installer © by racemike und [KdD]Wolf", 655, 404, -1, -1)

    $Label1 = GUICtrlCreateLabel("Bitte wählen Sie die zu Installierende Software aus.", 205, 16, 244, 17)

    $Checkbox1 = GUICtrlCreateCheckbox("Programm 1", 25, 58, 125, 25)
    $Checkbox2 = GUICtrlCreateCheckbox("Programm 2", 185, 58, 125, 25)
    $Checkbox3 = GUICtrlCreateCheckbox("Programm 3", 345, 58, 125, 25)
    $Checkbox4 = GUICtrlCreateCheckbox("Programm 4", 505, 58, 125, 25)

    $Checkbox5 = GUICtrlCreateCheckbox("Programm 5", 25, 90, 125, 25)
    $Checkbox6 = GUICtrlCreateCheckbox("Programm 6", 185, 90, 125, 25)
    $Checkbox7 = GUICtrlCreateCheckbox("Programm 7", 345, 90, 125, 25)
    $Checkbox8 = GUICtrlCreateCheckbox("Programm 8", 505, 90, 125, 25)

    $Checkbox9 = GUICtrlCreateCheckbox("Programm 9", 25, 122, 125, 25)
    $Checkbox10 = GUICtrlCreateCheckbox("Programm 10", 185, 122, 125, 25)
    $Checkbox11 = GUICtrlCreateCheckbox("Programm 11", 345, 122, 125, 25)
    $Checkbox12 = GUICtrlCreateCheckbox("Programm 12", 505, 122, 125, 25)

    $Checkbox13 = GUICtrlCreateCheckbox("Programm 13", 25, 154, 125, 25)
    $Checkbox14 = GUICtrlCreateCheckbox("Programm 14", 185, 154, 125, 25)
    $Checkbox15 = GUICtrlCreateCheckbox("Programm 15", 345, 154, 125, 25)
    $Checkbox16 = GUICtrlCreateCheckbox("Programm 16", 505, 154, 125, 25)

    $Checkbox17 = GUICtrlCreateCheckbox("Programm 17", 25, 186, 125, 25)
    $Checkbox18 = GUICtrlCreateCheckbox("Programm 18", 185, 186, 125, 25)
    $Checkbox19 = GUICtrlCreateCheckbox("Programm 19", 345, 186, 125, 25)
    $Checkbox20 = GUICtrlCreateCheckbox("Programm 20", 505, 186, 125, 25)

    $Checkbox21 = GUICtrlCreateCheckbox("Programm 21", 25, 218, 125, 25)
    $Checkbox22 = GUICtrlCreateCheckbox("Programm 21", 185, 218, 125, 25)
    $Checkbox23 = GUICtrlCreateCheckbox("Programm 23", 345, 218, 125, 25)
    $Checkbox24 = GUICtrlCreateCheckbox("Programm 24", 505, 218, 125, 25)

    $Checkbox25 = GUICtrlCreateCheckbox("Programm 25", 25, 250, 125, 25)
    $Checkbox26 = GUICtrlCreateCheckbox("Programm 26", 185, 250, 125, 25)
    $Checkbox27 = GUICtrlCreateCheckbox("Programm 27", 345, 250, 125, 25)
    $Checkbox28 = GUICtrlCreateCheckbox("Programm 28", 505, 250, 125, 25)

    $Checkbox29 = GUICtrlCreateCheckbox("Programm 29", 25, 282, 125, 25)
    $Checkbox30 = GUICtrlCreateCheckbox("Programm 30", 185, 282, 125, 25)

    $Checkbox31 = GUICtrlCreateCheckbox("Neustart", 25, 314, 125, 25)

    $Button1 = GUICtrlCreateButton("Alle", 102, 371, 57, 17, 0)
    $Button2 = GUICtrlCreateButton("Keine", 233, 371, 57, 17, 0)
    $Button3 = GUICtrlCreateButton("Installieren", 364, 371, 57, 17, 0)
    $Button4 = GUICtrlCreateButton("Beenden", 495, 371, 57, 17, 0)

    GUISetState(@SW_SHOW)

    #EndRegion ### END Koda GUI section ###

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $Button1
    GUICtrlSetState($Checkbox1,$GUI_CHECKED)
    GUICtrlSetState($Checkbox2,$GUI_CHECKED)
    GUICtrlSetState($Checkbox3,$GUI_CHECKED)
    GUICtrlSetState($Checkbox4,$GUI_CHECKED)
    GUICtrlSetState($Checkbox5,$GUI_CHECKED)
    GUICtrlSetState($Checkbox6,$GUI_CHECKED)
    GUICtrlSetState($Checkbox7,$GUI_CHECKED)
    GUICtrlSetState($Checkbox8,$GUI_CHECKED)
    GUICtrlSetState($Checkbox9,$GUI_CHECKED)
    GUICtrlSetState($Checkbox10,$GUI_CHECKED)
    GUICtrlSetState($Checkbox11,$GUI_CHECKED)
    GUICtrlSetState($Checkbox12,$GUI_CHECKED)
    GUICtrlSetState($Checkbox13,$GUI_CHECKED)
    GUICtrlSetState($Checkbox14,$GUI_CHECKED)
    GUICtrlSetState($Checkbox15,$GUI_CHECKED)
    GUICtrlSetState($Checkbox16,$GUI_CHECKED)
    GUICtrlSetState($Checkbox17,$GUI_CHECKED)
    GUICtrlSetState($Checkbox18,$GUI_CHECKED)
    GUICtrlSetState($Checkbox19,$GUI_CHECKED)
    GUICtrlSetState($Checkbox20,$GUI_CHECKED)
    GUICtrlSetState($Checkbox21,$GUI_CHECKED)
    GUICtrlSetState($Checkbox22,$GUI_CHECKED)
    GUICtrlSetState($Checkbox23,$GUI_CHECKED)
    GUICtrlSetState($Checkbox24,$GUI_CHECKED)
    GUICtrlSetState($Checkbox25,$GUI_CHECKED)
    GUICtrlSetState($Checkbox26,$GUI_CHECKED)
    GUICtrlSetState($Checkbox27,$GUI_CHECKED)
    GUICtrlSetState($Checkbox28,$GUI_CHECKED)
    GUICtrlSetState($Checkbox29,$GUI_CHECKED)
    GUICtrlSetState($Checkbox30,$GUI_CHECKED)

    Case $Button2
    GUICtrlSetState($Checkbox1,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox2,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox3,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox4,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox5,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox6,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox7,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox8,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox9,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox10,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox11,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox12,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox13,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox14,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox15,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox16,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox17,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox18,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox19,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox20,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox21,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox22,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox23,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox24,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox25,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox26,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox27,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox28,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox29,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox30,$GUI_UNCHECKED)
    GUICtrlSetState($Checkbox31,$GUI_UNCHECKED)

    case $Button3
    If GUICtrlRead($Checkbox1)= $GUI_CHECKED then RunWait("Programm 1.EXE")
    If GUICtrlRead($Checkbox2)= $GUI_CHECKED then RunWait("Programm 2. EXE")
    If GUICtrlRead($Checkbox3)= $GUI_CHECKED then RunWait("Programm 3. EXE")
    If GUICtrlRead($Checkbox4)= $GUI_CHECKED then RunWait("Programm 4. EXE")
    If GUICtrlRead($Checkbox5)= $GUI_CHECKED then RunWait("Programm 5. EXE")
    If GUICtrlRead($Checkbox6)= $GUI_CHECKED then RunWait("Programm 6. EXE")
    If GUICtrlRead($Checkbox7)= $GUI_CHECKED then RunWait("Programm 7. EXE")
    If GUICtrlRead($Checkbox8)= $GUI_CHECKED then RunWait("Programm 8. EXE")
    If GUICtrlRead($Checkbox9)= $GUI_CHECKED then RunWait("Programm 9. EXE")
    If GUICtrlRead($Checkbox10)= $GUI_CHECKED then RunWait("Programm 10. EXE")
    If GUICtrlRead($Checkbox11)= $GUI_CHECKED then RunWait("Programm 11. EXE")
    If GUICtrlRead($Checkbox12)= $GUI_CHECKED then RunWait("Programm 12. EXE")
    If GUICtrlRead($Checkbox13)= $GUI_CHECKED then RunWait("Programm 13. EXE")
    If GUICtrlRead($Checkbox14)= $GUI_CHECKED then RunWait("Programm 14. EXE")
    If GUICtrlRead($Checkbox15)= $GUI_CHECKED then RunWait("Programm 15. EXE")
    If GUICtrlRead($Checkbox16)= $GUI_CHECKED then RunWait("Programm 16. EXE")
    If GUICtrlRead($Checkbox17)= $GUI_CHECKED then RunWait("Programm 17. EXE")
    If GUICtrlRead($Checkbox18)= $GUI_CHECKED then RunWait("Programm 18. EXE")
    If GUICtrlRead($Checkbox19)= $GUI_CHECKED then RunWait("Programm 19. EXE")
    If GUICtrlRead($Checkbox20)= $GUI_CHECKED then RunWait("Programm 20. EXE")
    If GUICtrlRead($Checkbox21)= $GUI_CHECKED then RunWait("Programm 21. EXE")
    If GUICtrlRead($Checkbox22)= $GUI_CHECKED then RunWait("Programm 22. EXE")
    If GUICtrlRead($Checkbox23)= $GUI_CHECKED then RunWait("Programm 23. EXE")
    If GUICtrlRead($Checkbox24)= $GUI_CHECKED then RunWait("Programm 24. EXE")
    If GUICtrlRead($Checkbox25)= $GUI_CHECKED then RunWait("Programm 25. EXE")
    If GUICtrlRead($Checkbox26)= $GUI_CHECKED then RunWait("Programm 26. EXE")
    If GUICtrlRead($Checkbox27)= $GUI_CHECKED then RunWait("Programm 27. EXE")
    If GUICtrlRead($Checkbox28)= $GUI_CHECKED then RunWait("Programm 28. EXE")
    If GUICtrlRead($Checkbox29)= $GUI_CHECKED then RunWait("Programm 29. EXE")
    If GUICtrlRead($Checkbox30)= $GUI_CHECKED then RunWait("Programm 30. EXE")
    If GUICtrlRead($Checkbox31)= $GUI_CHECKED then RunWait("Shutdown(2)")
    case $Button4
    Exit

    EndSwitch
    WEnd


    Eine kleine Frage habe dazu noch:
    Kann mann dieses Script auch so verändern das ein Programm in der Liste auch selber einen Neustart ausführen kann und das Script danach trozdem noch mit dem nächsten ausgewählten Programm weitermacht ?
    Wenn mann also z.B. die Programme 3 bis 10 markiert hat und das Programm 4 einen Neustart macht, sollte das Script nach dem Neustart trozdem noch die Programme 5 bis 10 installieren können.

    Dazu müsste man doch den Zustand des Software Installers vor den Neustart in eine Datei o.ä. schreiben und diese Datei o.ä. nach dem Neustart wieder aufrufen (vieleicht währe soetwas auch mit Hilfe der Registry möglich.)

    Nur wie kann man soetwas machen ?

    Gruß
    BigRox

    P.S. Woher kommen eigentlich die Smileys im Script, die solten eigentlich nicht da drin sein ?

  • Frage zu WinGetHandle

    • BigRox
    • 29. Juni 2008 um 12:39

    Hallo anno2008,
    ich habe heute nocheinmal selber an dem Beispielscript rumgebastelt.
    Dabei ist mir heute sofort aufgefallen, das ich auch einen entscheidenden Fehler gemacht habe.
    "WinGetHandle" konnte doch gar kein Handle zurückgeben, da das Fenster nicht zuvor mit AutoIt aufgerufen wurde (Das Fenster habe ich aber mit einem anderen Befehl aufgerufen und es war auch schon auf dem Bildschirm sichtbar, aber anscheinend erkennt AutoIt das nicht und west dem Fenster daher auch kein Handle zu).
    Tja, warum das so nicht funktioniert, weis ich nicht (es ist halt so, wie es nunmal ist).

    Hier das funktionierende Beispielscript:

    Spoiler anzeigen

    ; Optionen für dieses Script festlegen.
    Opt("WinTitleMatchMode", 4)

    ; Einigen Variablen Werte zuweisen.
    $Fenster_Titel_1 = "Setup-Sprache auswählen"
    $Text = "Wählen Sie die Sprache aus, die während der Installation benutzt werden soll:"

    ; Das Fenster mit AutoIt aufrufen.
    Fensteraufruf (wichtig !!)

    ; Warten bis das Fenster richtig existiert.
    WinWait($Fenster_Titel_1, "", 5) ; Das Timeout braucht man, falls der Fenstertitel nicht stimmt, sonst wartet das Script ewig auf das Fenster.

    ; Das Handle des Fensters ermitteln.
    $WHandle = WinGetHandle($Fenster_Titel_1, $Text)

    ; Die Meldung anzeigen, falls das Fenster nicht gefunden werden kann.
    If @error Then ; "WinGetHandle" setzt laut der Hilfe @error auf 1, falls kein Fenster den angegebenen Kriterien entspricht.
    MsgBox(262192, $Fenster_Titel_1, "Das Fenster 1 konnte nicht aktiviert werden !")
    Exit (1)
    Else ; Die Befehle bis "EndIf" werden ausgeführt falls das richtige Fenster gefunden wurde.
    WinActivate($WHandle)
    WinWaitActive($WHandle)
    EndIf

    ; Ab hier folgen im eigentlichen Script die Befehle, die mit "$WHandle" arbeiten sollen, die MsgBox dient nur zum testen.
    MsgBox(0, "Test", "bis hier geht es" & $WHandle)

    Wie geschrieben, das ist nur ein Beispiel für die Fenstererkennung.
    In den eigentlichen Scripten soll das dann, etwas geändert, an allen Stellen stehen wo es um die Fenstererkennung geht.

    Gruß:
    BigRox

  • Frage zu WinGetHandle

    • BigRox
    • 28. Juni 2008 um 19:29

    Hallo ano2008,
    ich habe das Beispielscript entsprechend geändert.
    Aber leider funktioniert es immer noch nicht, "WinGetHandle" gibt mir einfach kein Handle zurück.

    Hier das geänderte Beispielscript:


    Opt("WinTitleMatchMode", 4)
    $WHandle = WinGetHandle($Fenster_Titel)
    If @error Then
    MsgBox(262192, $Fenster_Titel_1, "Das Fenster 1 konnte nicht aktiviert werden !") ; MsgBox = 1, 4, 1, 1, 2.
    Exit (1)
    Else
    WinWait($WHandle, "", 10)
    WinActivate($WHandle)
    WinWaitActive($WHandle, "", 5)
    EndIf

    MsgBox(0, "Test", "bis hier geht es " & $WHandle)


    Ende des Beispielscriptes.
    Normalerweise müsste die MsgBox doch auch das Handle des Fensters "$Fenster_Text", anzeigen, da erscheint aber nichts (anstelle der MsgBox stehen in den eigentlichen Scripten weitere Befehle die mit $WHandle etwas anfangen sollen).

    Gru?
    BigRox

  • Frage zu WinGetHandle

    • BigRox
    • 28. Juni 2008 um 15:58

    Hallo,
    ich habe da ein kleines Problem mit dem "WinGetHandle"-Befehl.
    Hier zuerst ein kleines Beispilscript:

    ; Optionen für dieses Script festlegen.
    Opt("WinTitleMatchMode", 4)

    $WHandle = WinGetHandle($Fenster_Titel, $Fenster_Text)
    WinWait($WHandle, 10)
    WinActivate($WHandle)
    WinWaitActive($WinHandle, 5)

    If @error Then
    BlockInput(0)
    MsgBox(262192, $Fenster_Titel_1, "Das Fenster 1 konnte nicht aktiviert werden !") ; MsgBox = 1, 4, 1, 1, 2.
    Exit (1)
    EndIf

    Ende des Beispielscripts.
    Das Problem ist dabei, der "WinGetHandle"-Befehl gibt mir kein Handle zurück, in der Variablen "$WHandle" steht nichts.
    Auch @error wird nicht gesetzt und man kann als Fenstertitel oder Fenstertext angeben was man will, es findet keinerlei Unterscheidung statt.
    Auch ein Umstellen des "WinTitleMatchMode" am Anfang des Beispiels, funktioniert nicht.

    Wenn man als Versuch den Befehl "ControlGetHandle" in das Beispielscript einbaut, so funktioniert der aber einwandfrei.

    Vielen Dank für die Hilfe.
    Gruß:
    BigRox

  • Probleme mit WinWait und ProzessWait

    • BigRox
    • 3. Juni 2008 um 15:38

    Hallo,
    danke für die Hilfe. :thumbup:

  • Probleme bei der Eingabe eines Installationspfad

    • BigRox
    • 3. Juni 2008 um 15:35

    Hallo,
    ich möchte ein Installationsscript für das Programm "Arconis True Image 7.0" schreiben.
    Dabei bin ich bisher leider nur bis zu dem Fenster wo mann den Instalationspfad eingeben kann gekommen (das Fenster hinter dem Fenster zur Eingabe der Seriennummer).
    Das Fenster erscheint richtig und ich gebe mit dem Befehl "ControlSend" den Pfad in das Eingabefeld ein (bei diesem Eingabefeld funktioniert nur der "ControlSend"-Befehl, beim Befehl "Control SetText" geschieht garnichts).

    Der neue Text wird auch in dem Eingabefeld angezeigt, jedoch ohne die Backslashs (anstelle von z.B. C:\Programme\True Image, wird nur C:ProgrammeTrue Image angezeigt. Der Smily hinter dem "C" sollte eigentlich der Doppelpunkt sein, aber der Smily wird komicherweise immer an dieser Stelle angezeigt).
    Wen man aber in dem Feld mit der Tastatur einen Backslash eingibt, so wird der richtig angezeigt.

    Beispielscript:

    WinWait("Acronis True Image Setup, "")
    ; Installtionspfad vorgeben.
    ControlSend("Acronis True Image Setup, "", "FXWindow24", "C:\Programme\True Image", 1)

    Ende des Beispielscriptes.

    Anscheinend kann AutoIt also keine Backslashs an dieses Eingabefeld übergeben.
    Oder muss man die "FXWindow"-Controlls (die Fenster-Info zeigt nur diese als Kennung an) anders ansprechen, damit das funktioniert.

    Danke, schon jetzt, für die Hilfe

    Gruß:
    BigRox

  • Probleme mit WinWait und ProzessWait

    • BigRox
    • 30. Mai 2008 um 10:23

    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

  • Probleme mit WinWait und ProzessWait

    • BigRox
    • 29. Mai 2008 um 13:04

    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

  • Einträge in einem TreeView auslesen

    • BigRox
    • 20. April 2008 um 15:27

    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").

    Spoiler anzeigen

    ; Programmzeilen zum Aufrufen des Fensters.
    Run("RunDll32.exe shell32.dll,Options_RunDLL 0")
    WinWait("Ordneroptionen", "Allgemein")
    ControlSend("Ordneroptionen", "Allgemein", 12320, "{Right}")
    WinWait("Ordneroptionen", "Ansicht")

    ControlTreeView("Ordneroptionen", "", 30120, "Select", "#0|#1")

    Exit

    Gruß:
    BigRox

  • Einträge in einem TreeView auslesen

    • BigRox
    • 19. April 2008 um 15:51

    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.

    Spoiler anzeigen

    ; Programmzeilen zum Aufrufen des Fensters.
    Run("RunDll32.exe shell32.dll,Options_RunDLL 0")
    WinWait("Ordneroptionen", "Allgemein")
    ControlSend("Ordneroptionen", "Allgemein", 12320, "{Right}")
    WinWait("Ordneroptionen", "Ansicht")

    ; Suchen des Eintrages und MsgBox ausgeben
    $Test = ControlTreeView("Ordneroptionen", "Erweiterte Einstellungen:", 30120, "Exists", "Dateien und Ordner")
    MsgBox(0, "Test", $Test)

    Exit


    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

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™