Wert wird nicht in Textfeld übernommen

  • Servus Leutz,

    ich möchte TrueCrypt automatisch einrichten lassen und häng dabei an zwei simplen Stellen.

    Über
    eine InputBox lass ich den user seine gewünschte Volume Größe angeben
    und in einer Variable speichern. Mit ControlSetText() soll der Wert
    dann in ein Textfeld übernommen werden aber das funzt nicht.
    Wahrscheinlich weil das Window Info Tool mal wieder das Textfeld im
    Konfigurations-Assistent nicht richtig erkennt. Im nächsten Schritt
    muss ein Passwort definiert werden und in zwei Textfeldern hinterlegt
    werden, er soll hier einfach ein Standardpasswort eingeben aber das
    funzt auch nicht.

    $volumesize = InputBox("TrueCrypt Volume Größe", "Geben Sie die Volume Größe an.")
    winwaitclose("TrueCrypt Volume Größe")
    ControlSetText("TrueCrypt Volume Creation Wizard", "Volume Size", "[CLASS:#32770; INSTANCE:1]", $volumesize)

    was mach ich falsch?

  • Zitat
    [autoit]

    $volumesize = InputBox("TrueCrypt Volume Größe", "Geben Sie die Volume Größe an.")
    winwaitclose("TrueCrypt Volume Größe")
    ControlSetText("TrueCrypt Volume Creation Wizard", "Volume Size", "[CLASS:#32770; INSTANCE:1]", $volumesize)

    [/autoit]

    Die Zeile mit WinWaitClose brauchst du nicht.
    "[CLASS:#32770; INSTANCE:1]": Diese Klasse sieht eher aus wie eine Fensterklasse und nicht die eines Controls. Ich würde eher auf sowas wie 'Edit' tippen, hab aber kein TrueCrypt installiert, um es zu testen.

  • Doch laut Info Tool ist das eine Control Klasse. Unter >>>>>>Window<<<<<< steht was anderes bei Class: CustomDlg

    Mit 'Edit' hats leider auch nicht geklappt, habs jetzt mit send($volume) hinbekommen, muss halt vorher noch ein paar Tabs senden damit er ins Textfeld springt.

    Werd auf das Problem bestimmt noch öfters stoßen, gibts denn keine andere Möglichkeit Textfelder anzusprechen die keine ControlID haben?

    • Offizieller Beitrag
    Zitat

    #32770 The class for a dialog box.

    Ist soweit OK, laut Windows Klassenübersicht handelt es sich um eine DialogBox.
    ControlSetText() sollte also wie gewünscht arbeiten. Verliert evtl. das Controlfenster den Fokus? Den Control-Befehlen sollte das eigentlich egal sein, aber manchesmal geht es nur bei aktiviertem Fenster.

  • Also den Fokus verliert er nicht, hab auch nochmal ein WinActivate davor gesetzt, hat aber auch nicht geholfen. Das Finder Tool erkennt einfach das Textfeld nicht, er umrahmt dann immer fast das ganze Fenster. Naja mit send() geht es ja nun...
    Thx