Controlsettext & citrix

  • Hallo alle zusammen,

    ich hoffe, ich komme nun nicht mit einem bereits 1000. mal diskutiertem Thema an, aber ich suche mir seit einer Woche vergeblich einen Wolf. Da wir auf der Arbeitet mit dem Citrix Receiver arbeiten dürfen/müssen, bastele ich gerade an einem automatisiertem Login, welcher im Nachgang ein paar Programme öffnet. Manuel funktioniert das meiste auch bereits, doch der Citrixlogin erweist sich mir als Problematisch. Im Anhang seht ihr Das logon fenster des Citrix Receivers. Ich möchte nun einfach über ControlSetText den Benutzer und das Passwort eintragen. Über die AutoitWindoInfo habe ich folgende Infos über beide Inputboxen erhalten.

    Benutzer


    Spoiler anzeigen


    >>>> Window <<<<
    Title: Citrix Receiver
    Class: WindowsForms10.Window.8.app.0.17ad52b
    Position: 746, 366
    Size: 428, 307
    Style: 0x16C80000
    ExStyle: 0x00050101
    Handle: 0x000000000015076C
    >>>> Control <<<<
    Class: WindowsForms10.EDIT.app.0.17ad52b
    Instance: 1
    ClassnameNN: WindowsForms10.EDIT.app.0.17ad52b1
    Name: textBoxUser
    Advanced (Class): [NAME:textBoxUser]
    ID: 1376900
    Text:
    Position: 170, 81
    Size: 200, 20
    ControlClick Coords: 39, 9
    Style: 0x560100C0
    ExStyle: 0x00000200
    Handle: 0x0000000000150284
    >>>> Mouse <<<<
    Position: 958, 481
    Cursor ID: 0
    Color: 0xFFFFFF
    >>>> StatusBar <<<<
    >>>> ToolsBar <<<<
    >>>> Visible Text <<<<
    &Anmelden
    Abbrechen
    Melden Sie sich an 'wiportal-e067' an.
    &Domäne\Benutzer:
    &Kennwort:
    Sichere Verbindung

    >>>> Hidden Text <<<<


    passwort

    Spoiler anzeigen


    >>>> Window <<<<
    Title: Citrix Receiver
    Class: WindowsForms10.Window.8.app.0.17ad52b
    Position: 746, 366
    Size: 428, 307
    Style: 0x16C80000
    ExStyle: 0x00050101
    Handle: 0x00000000000D0302
    >>>> Control <<<<
    Class: WindowsForms10.EDIT.app.0.17ad52b
    Instance: 2
    ClassnameNN: WindowsForms10.EDIT.app.0.17ad52b2
    Name: textBoxPass
    Advanced (Class): [NAME:textBoxPass]
    ID: 919164
    Text:
    Position: 170, 115
    Size: 200, 20
    ControlClick Coords: 40, 13
    Style: 0x560100E0
    ExStyle: 0x00000200
    Handle: 0x00000000000E067C
    >>>> Mouse <<<<
    Position: 959, 519
    Cursor ID: 0
    Color: 0xFFFFFF
    >>>> StatusBar <<<<
    >>>> ToolsBar <<<<
    >>>> Visible Text <<<<
    &Anmelden
    Abbrechen
    Melden Sie sich an 'wiportal-e067' an.
    &Domäne\Benutzer:
    &Kennwort:
    Sichere Verbindung

    >>>> Hidden Text <<<<


    das erste merkwürdige ist, dass jedesmal, wenn ich mit dem windowtool auf das benutzerfeld gehe im summery eine andere ID erscheint...

    So ungefähr habe ich es versucht, etwas in das Feld zus chreiben (vorerst mit dem festen wert "Apfel", später soll es über eine variable passieren)

    AutoIt
    ControlSetText("Citrix Receiver", "", "WindowsForms10.EDIT.app.0.17ad52b1", "Apfel")

    also "Fenstername/Inputname", "", ClassNameNN, und "eingabetext"

    leider passiert rein gar nichts.

    würde mich freuen, wenn ihr mir helfen könntet/würdet.

    mit freundlichem Gruß

    tommii

  • Hi bitnugger, freut mich, dass du geantwortet hast. Ich werde das ganze heute in der Nachtschicht voller Tatendrang ausprobieren und mich dann hier melden.

    Mit freundlichem Gruß tommii

  • AutoIt
    ; Benutzer
    ControlSetText("Citrix Receiver", "", "[CLASS:WindowsForms10.EDIT.app.0.17ad52b; Instance: 1]", "Apfel")
    
    
    
    
    ; oder so...
    ControlClick("Citrix Receiver", "", "[CLASS:Button; Instance: 1]")
    ; oder so...
    ControlClick("Citrix Receiver", "", "[TEXT:Anmelden]")

    Hi bitnugger,

    leider funktioniert das befüllen der Inputfelder nicht...ich habe langsam das gefühl, dass ich mit dem WindowInfo tool irgendwas nicht richtig mache...wenn ich mit dem Fadenkreuz auf das inputfeld gehe, dann erscheint ein dicker schwarzer rahmen darum (nur um das inputfeld)...das ist so richtig oder?


    danke schonmal für deine mühen

  • sodele,

    ich habe jetzt mal via autoit selber eine Inputbox erstellt und diese mit einem zweiten script und den Daten, die mir bitnugger gegeben hat gefüllt. da haut es einwandfrei hin...kann es sein, dass bei der Citrix Maske ein layer oder sonst was drüber liegt? bzw gibt es die Möglichkeit, über windowmove das ganze, was ich mit dem window info tool ermittelt habe mal einfach zu verschieben und dann nochmal mit dem window info tool reinzuhauen? das kann doch nicht so kompliziert sein oder habe ich einen Denkfehler?


    naja erneutes danke

  • Schau dir das Script und das Bild im Dateianhang an... und analog muss es auch mit deinem Citrix Receiver funktionieren.


    Mi dem WindowInfo Tool ist schon richtig so... du kannst die Informationen in der Zeile 'Title' (Window) bzw. 'Advanced Mode' (Control) mit einem Doppelklick darauf in die Zwischenablage kopieren und sie dann in dein Script übernehmen.

  • asche auf meinen kopf...ich hätte schwören können, dass wir es gestern schon so probiert haben...vllt. war es einfach nur die 1 Sekunden Verzögerung, die nun zum erfolg führt. fakt ist eh geht jetzt :)

    vielen dank :)

  • An der Verzögerung lag es sicher nicht... aber das kannst du ja überprüfen, indem du den Sleep() auskommentierst.

    Meist liegt es daran, dass du keine eindeutigen oder falsche Werte für das Window oder die Controls angegeben hast.

  • eine letzte "Frage" zu speziell diesem Thema. Bei uns auf der Arbeit haben wir zwei Rechner Systeme (Ich bin bei Firma A und über Citrix greifen wir auf die Rechner von Firma B zu, wobei wir für beide Firmen Accounts + rechner zur Verfügung haben)...Bei Firma B klappen die Programme (als Beispiel das von Bitnugger mit dem Selbsterstellen controlfenster + controlsettext)...bei Firma a wird der Befehl "ControlSetText" gekonnt ignoriert, alles andere wird ausgeführt...

    ist das IT Technisch möglich bzw. kann sich das jemand erklären=?


    danke im voraus

    tommii

  • Wenn dir das WindowInfo Tool Informationen zu einem Control anzeigt und du diese verwendest, um ein Control anzusprechen, sollte das funktionieren. Die gewünschte Info transportierst du per Doppelklick in die Zwischenablage und fügst sie dann 1:1 in dein Script ein. Schaue dir in der AutoIt-Hilfe bei "Using AutoIt/Window Title and Text (Advanced)" an, was unter "Advanced Window Descriptions" steht...

    Funktioniert es trotzdem nicht, kann ich mir vorstellen, dass dein Script nicht die benötigten Rechte bekommt... z. B. weil die UAC bockt, der User einen eingeschränkten Account hat, oder es in einer Sandbox ausgeführt wird.

    Mache ein Schnappschuss von dem WindowInfo Tool mit den Infos zu dem Control, dass du ansprechen willst und poste die entsprechende Zeile aus deinem Script, denn du willst hier doch kein Ratespiel veranstalten, oder? ;)