Frage zu If...Then

  • Hallo,
    ich habe da mal wieder eine kleine Frage.

    Ich will überprüfen, ob au meinem Rechner der Opera-Browser schon installiert wurde.
    Dafür durchsuche ich den, mit einer Schleife und einer If...Then Abfrage, die Registry nach dem Uninstall Schlüssel von Opera.

    Hier der Code:

    ; Abfragen ob das Programm (Opera) schon installiert wurde.
    For $LV = 1 To 300
    If RegEnumKey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\", $LV) =
    "Opera 11.01.1190" Then
    MsgBox(262192, $Fenster_Titel_0, " Das Programm wurde schon installiert !")
    Exit
    EndIf
    Next

    Dies hat aber einen kleinen Hacken, wenn sich die Version von Opera ändert, so muss auch die If...Then Abfrage entsprechend angepasst werden.
    Würde ich dann weiterhin nach "Opera 11.01.1190" suchen, so würde dieser Wert bestimmt nie gefunden.

    Daher wäre es gut, wenn man als Vergleichswert ein Art Wildcard verwenden könnte.
    Also z.B. If RegEnumKey(.....) = " Opera 11" & "*" Then, dadurch würden alle Werte die mit Opera beginnen gefunden und der Rest des Wertes (die genaue Versionsnummer) wäre dann egal.

    Geht so etwas in AutoIt überhaupt ?

    MfG:
    BigRox

    2 Mal editiert, zuletzt von BigRox (13. Februar 2011 um 14:18)

  • Ich sehe keine Frage ^^

    [autoit]

    ; Abfragen ob das Programm (Opera) schon installiert wurde.
    For $LV = 1 To 300
    $Regkey = RegEnumKey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\", $LV)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Regkey= ' & $Regkey& @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    If $Regkey = "Opera 11.01.1190" Then
    MsgBox(262192, "gefunden", " Das Programm wurde schon installiert !")
    Exit
    EndIf
    Next

    [/autoit]

    Damit kannst eden Fehlercode auslesen, falls du danach suchst ;)

  • Wenn dann eher so:

    Spoiler anzeigen
    [autoit]


    ; Abfragen ob das Programm (Opera) schon installiert wurde.
    $Fenster_Titel_0 = "test"
    For $LV = 1 To 300
    If RegEnumKey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\", $LV) = "Opera 11.01.1190" Then
    MsgBox(262192, $Fenster_Titel_0, " Das Programm wurde schon installiert !")
    Exit
    EndIf
    Next

    [/autoit]

    "$Fenster_Titel_0" braucht einen Wert, denn eine Variable ohne Wert ist wie ein Auto ohne Lenkrad. ;)

    Zeile 4, da muß nach dem Gleichheitszeichen na klar auch weiter geschrieben werben bis zum "then".

    Und bitte den Spoiler- & Autoit-Button nehmen um Scripte darzustellen.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Hallo,
    hier nun auch das Script mit Variable usw.
    Vielleicht wird da ja die Frage usw. etwas klarer.


    Wieso sieht man in der Vorschau eigentlich nie, wenn man eine Datei eingefügt hat ?
    Irgendwie stimmt da wohl etwas nicht. Smliys einfügen, geht nicht, will man eine Datei zum einfügen auswählen erscheinen überall nur Kreuze...

    Wie fügt man eigentlich diesen Spoiler ein, dafür gibt es bei mir nirgends einen Button o.ä. ?
    Liegt das eventuell am Browser "Opera 11.01" ?

    MfG.
    BigRox


    edit vom 11.2.2011 um 19:08:
    Ich habe einmal ein Foto von dem Eingabefenster, was ich sehe, angefügt.
    Ich sehe da nirgends irgendwelche Buttons zum einfügen von Scripten o.ä.

  • Hi,
    mann kann die Erkennung auch Universal machen. Es brauch doch nur Opera im Keynamen gefunden werden und schon brauch man nichts mehr anpassen.
    Hab den Code von TheLuBu mal etwas umgebaut. Müsste eigentlich funktionieren ;)

    [autoit]

    $LV = 1
    While 1
    $Regkey = RegEnumKey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\", $LV)
    If @error Then ExitLoop
    If StringRegExp($Regkey, "Opera\s[\d\.]+") Then
    MsgBox(262192, "gefunden", " Das Programm wurde schon installiert !")
    Exit
    EndIf
    $LV += 1
    WEnd

    [/autoit]
  • Mal zwei Bilder, die mehr erklären wie evtl. tausend Wörter. ;)

    Diese beiden Buttons sind gemeint: autoit.de/wcf/attachment/12575/

    Ansonsten schau hier (manuell): _GDIPlus_PathBrushCreatePie + GDIP.zip

  • BigRox,
    das sieht so aus, als ob du noch "Müll" aus einer der frühen 10er Operaversionen rumschleppen würdest. Dort gab es das von dir im Bild geschilderte Problem, welches mittels AutoItscript "halbautomatisch" gelöst werden konnte. Allerdings hat das nichts mit dem aktuellen Build zu tun.
    Navigiere mal zu AutoIt.de.
    Drück dann F12 in Opera, ganz unten Seitenspezifische Einstellungen.
    Dann bei Scripte Javascript aktivieren und bei Cookies annehmen. Mit OK bestätigen.
    Danach ctrl+r um die aktuelle Seite neu zu laden.
    Wenn die seitenspezifischen Einstellungen nicht auf jeder Unterseite funktionieren, solltest du die Haken bei F12 setzen.

  • Hallo Andy,
    ich habe mit deinen Tipps mal etwas experimentiert.

    Ergebnis: Mein Proxi-Server hat die Probleme verursacht Der hat das Script dieser Seite irgendwie als gefährlich eingestuft und es daher einfach blockiert.
    Jetzt sehe ich auch die beiden Buttons, die Alina meinte.

    Jetzt ist diese Seite als vertrauenswürdig eingestuft und der Proxi funkt mir nicht mehr dazwischen.
    An Opera (Version 11.01.1190) habe ich jedoch nichts ändern müssen.

    Jetzt sieht das Fenster bei mir plötzlich so aus.
    autoit.de/wcf/attachment/12580/

    Danke für die Tipps :thumbup:
    Hurra, jetzt klappt auch die Vorschau.

    So, jetzt wird als nächstes das Script von Sprenger120 getestet.

    MfG:
    BigRox

    edit:
    Hallo Sprenger120,
    dein Tipp funktioniert einwandfrei.
    Danke für den Tipp :thumbup:

    MfG:
    BigRox