Bei Verwendung von IE.au3 keine Reaktion auf andere Fenster

  • Hallo Zusammen,

    ich bin gerade dabei ein Script zu schreiben zur Erstellung eines Zertifikats einer MS AD.

    Mein Problem ist folgendes. Während ich die IE.au3 verwendet wird nicht auf ein WinWait bzw. ControlClick reagiert. Genau nachdem ich den Link in einem IE geöffnet habe erscheint eine Meldung. Diese Muss mit "Yes" Bestätigt werden. Im angehängten Screenshot mal die Windowinfo.

    Wenn ich die Meldung direkt per "Hand" bestätige funktioniert der Rest auch wie gewünscht. Ich habe auch bereits von aufrufen des Link ein Script geschrieben was im Hintergrund läuft und auf das Fenster wartet und es dann bestätigt. Das funktioniert, allerdings finde ich das sehr "unsauber"

    Leider komme ich deshalb nicht weiter...

    Spoiler anzeigen
    [autoit]


    #include <IE.au3>

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

    ;Username überprüfen
    $WMI = ObjGet("WinMgmts:root/cimv2")
    $colQuery1 = $WMI.ExecQuery("Select UserName FROM Win32_ComputerSystem")

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

    For $item In $colQuery1
    $ID = $item.UserName
    Next
    $colQuery2 = $WMI.ExecQuery("Select * FROM Win32_NetworkLoginProfile")
    For $object In $colQuery2
    If $object.Name = $ID Then ;MsgBox(0, "", $object.Fullname)
    $Name = $object.Fullname
    EndIf
    Next

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

    ;Umwandeln des Names in Mailadresse
    Local $fname = StringSplit($Name, " ")
    $Mailname = $fname[1] & "." & $fname[2]
    $Mailname = StringLower($Mailname)

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

    $Mailadresse = $Mailname & "@blablubb.com"
    $IE = _IECreate("https://blablubb/certsrv/certrqma.asp")
    sleep(1000)

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

    WinWait("Web Access Confirmation")
    ControlClick("Web Access Confirmation", "&Yes", "Button1")

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

    ;Certificate Template wählen und ändern
    $oDropdown = _IEGetObjByName ($IE, "lbCertTemplateID")
    _IEFormElementOptionSelect($oDropdown, "PFX EH Utimaco 2048", 1, "byText")
    sleep(500)

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

    ;Name eintragen
    $oName = _IEGetObjByName($IE, "tbCommonName")
    _IEFormElementSetValue ($oName, $Name)

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

    ;Mail eintragen
    $oName = _IEGetObjByName($IE, "tbEmail")
    _IEFormElementSetValue ($oName, $Mailadresse)

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

    ;Submit drücken
    $Button = _IEGetObjByName ($IE, "btnSubmit")
    _IEAction($Button,"click")
    sleep(1000)

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

    ;_IEAction($IE, "visible") ; Setzt den IE auf Sichtbar
    sleep(5000)
    ;_IEQuit($IE)
    Exit

    [/autoit]

    Ich bin um Ratschläge dankbar.

    Grüße

  • Ok danke.

    Ich konnte den ersten Part jetzt doch über das ControlClick lösen.

    Die Lösung für mich war relativ einfach. Ich erstelle mit _IECreate ja die Website. Danach kommt direkt die Meldung. Somit schliesst aber der _IECreate den Prozess noch nicht richtig ab und somit hing das Programm immer an dieser Stelle ewig. Ich habe jetzt die Option von _IECreate "$f_wait" auf "0" gesetzt und mein Script läuft dann auch weiter und verwendet den ControlClick.

    Das Problem ist das die Website scheinbar nicht komplett lädt bevor man "Yes" drückt was dann in einer Schleife endete.