Problem bei Auslesen von _GUICtrlComboBox_GetEditText

  • Dachte egentlich, dass du selbst dahiner kommst! Das Problem ist nicht dein Skript sondern die INI-Datei (Fremdanwendung=?) Dort must du das Problem angehen. Vielleicht hilft ja

    [autoit]

    StringStripWS

    [/autoit]

    um ungültige Zeichen zu entfernen. Wenn nicht hänge die INI in der dies vorommt als Dateianhang deinem Post an, denn durch das kopieren über das Board werden diese "mysteriösen" Zeichen eliminiert. Daher ist der Fehler auch bei niemand anderem aufgetreten,

    Edit: Tyos

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (30. Juli 2012 um 23:04)

  • Hallo devildevil3,
    ich kann auch mit der von dir angehängten Datei den Fehlernich reproduzieren, da ich aber noch 3.3.6.1 verwende will ich nicht ausschliessen dass evtl. ein Bug in der atuellen Version ist.

    Hat es einen bestimmten Grund, dass du _GUICtrlComboBox_Create anstellevon GuiCtrlCreateCombo verwendest. Von dieser habe ich bisher noch keine Klagen gelesen,

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (30. Juli 2012 um 23:51)

  • Also, ich habe mir den Code von _GUICtrlComboBox_GetEditText mal angesehen...
    Gary hat es ein wenig merkwürdig umgesetzt (mit SendMessage), obwohl es trotz alledem funktionieren müsste. Und das tut es ja bei mir auch.
    Der Puffer, den er erzeugt, ist größer als nötig. Da AutoIt bei DllStructCreate den Speicher aber mit Nullzeichen füllt, muss es eigentlich funktionieren.
    Aber wie man sieht tut es das bei Dir nicht und bei einigen Anderen anscheinend auch nicht.
    Eigentlich hatte ich dieses Problem z.B. nur, wenn ich ANSI- und Unicode-Funktionen gemischt hatte.

    Vielleicht ist bei Deinem Update auch irgendetwas schief gelaufen. Evtl hilft es alles sauber zu deinstallieren und AutoIt noch einmal neu zu installieren.
    Wie sieht bei Dir denn die Funktion _GUICtrlComboBox_GetEditText aus ?

    Wie auch immer, probiere es doch bitte einmal mit GetWindowText, so macht es das originale Makro ComboBox_GetText aus den Windows-Headern auch.

    Spoiler anzeigen
    [autoit]


    ; Puffer für den Text
    Global $sTextA4

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

    ; In die Schleife packen und _GUICtrlComboBox_GetEditText auskommentieren
    GetWindowText ($A4, $sTextA4, 260)
    MsgBox(...)
    ;...

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

    Func GetWindowText ($hWnd, ByRef $sString, $nMaxCount)

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

    Local $type = 'wstr'
    If (IsPtr ($sString)) Then _
    $type = 'ptr'

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

    Local $aRes = DllCall ("user32.dll", 'int', 'GetWindowTextW', _
    'HWND', $hWnd, _
    $type , $sString, _
    'int' , $nMaxCount)

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

    If @error Then _
    Return @error

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

    If (not IsPtr ($sString)) Then _
    $sString = $aRes[2]
    Return $aRes[0]

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

    EndFunc

    [/autoit]

    Greenhorn