Control.exe (Systemeigenschaften) resistent gegen ControlClick und ControlSend?

  • Kann jemand dieses Skript testen:

    Code
    #include <Array.au3>
    Run('control.exe sysdm.cpl')
    $hWnd=WinWaitActive('[CLASS:#32770]','Computername',5)
    ConsoleWrite('Windowstitel:' & @TAB&WinGetTitle($hWnd)&@CRLF)
    ConsoleWrite('Buttontext:' & @TAB&ControlGetText($hWnd,'',115)&@CRLF)
    WinActivate($hWnd)
    ControlSend($hWnd,'',115,'!n')
    ConsoleWrite('Send @Error: '&@error&@CRLF)
    ControlClick($hWnd,'',115)
    ConsoleWrite('Click @Error: '&@error&@CRLF)


    ich bekomme zwar keine Fehlermeldungen in der Konsole:

    und wie man sieht funktioniert WinWaitActivate, WinGetTitle und ControlGetText. Obwohl ControlSend und ControlClick Erfolg melden bleibt das öffnen des Fensters 'Ändern des Computernamens bzw. der Dom...' aus.


    Hat jemand eine Erklärung für das Verhalten?


    Ich nutze Win 10 64 und die aktuelle Stable.

  • Windows 7x64 Home Premium
    AutoIt Version: 3.3.14.2



    Öffnet sich bei mir auch nicht.


    Edit:
    Mit dem #RequireAdmin Tipp von misterspeed weiter unten öffnet sich das gewünschte Fenster bei mir . :)

    ~IRC: irc.afterworkchat.de #autoit

    2 Mal editiert, zuletzt von Photon ()

  • Mal unabhängig davon ob dein Script nun funktioniert oder nicht... wenn du den Computernamen oder die Domänenmitgliedschaft ändern willst gibt es dafür bessere und direktere Lösungen.


    Eine mögliche Ursache für das Verhalten könnte im Übrigen eine Beschränkung durch UAC von Fensterinteraktionen sein, welche Scripte mit niederen Rechten als die des zu steuernden Fensters blockiert. (Wurde hier schon in einigen anderen W10 Threads als Problem identifiziert). Teste daher mal ob das Script korrekt arbeitet wenn du entweder UAC deaktivierst oder dein Script mit #requireadmin startest. Prinzipiell können aber alle Windows Einstellungen auch auf direkterem Weg manipuliert werden, daher halte ich eine Fensterautomatisierung hier für überflüssig / unangebracht.

  • Selbes Problem hier mit W7 64Bit.
    Liegt vermutlich daran, dass sich dieser Dialog nicht automatisieren lasst - Sicherheitsgründe.
    Was willst Du denn konkret machen? Man muss ja nicht immer das GUI automatisieren um das Ziel zu erreichen. WMI wäre vielleicht eine Möglichkeit.

  • Misterspeed macht seinem Namen mal wieder alle Ehre ;-)

  • Mal unabhängig davon ob dein Script nun funktioniert oder nicht... wenn du den Computernamen oder die Domänenmitgliedschaft ändern willst gibt es dafür bessere und direktere Lösungen.

    Ich selbst will gar nichts mit diesem Skript machen. Ich bin im Entwicklerforum auf dieses Problem aufmerksam geworden (allerdings mit Send), habe mögliche Lösung getestest und fand keine Erklärung für mein Scheitern.en
    Danke für die Erklärung, sind einige dadurch etwas schlauer geworden.


    water: deine AD.au3 wurde dort als Lösung zwar vorgeschlagen, der dortige OP hat den Hinweis ignoriert. Könnte ich/man diese UDF hierfür erfolgreich nutzen wenn Standalone-PC und dadurch kein AD installiert?