Problem mit einem Array

  • Hallo erstmal,

    ich habe ein kleines Problem mit meinem Programm welches ich ein wenig umschreiben wollte:
    Der code gibt mir zwar die richtige Position des Namens im Array an aber gibt mir keinen Namen danach aus.

    Was genau mache ich falsch?

    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\..\..\..\MEDIA\Bilder\ICONS\Albook extended ico\Kanjis & kanas\Kami[God].ico
    #AutoIt3Wrapper_outfile=C:\Users\TheBigX\Desktop\HideIT.exe
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Tidy_Stop_OnError=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <string.au3>
    #include <Array.au3>
    ;~ Opt("WinTitleMatchMode",2)

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

    $Form1 = GUICreate("HideIT", 134, 111, 444, 413)
    $first = GUICtrlCreateInput("", 8, 8, 121, 21)
    $second = GUICtrlCreateInput("", 8, 40, 121, 21)
    $Button1 = GUICtrlCreateButton("HideIT", 8, 72, 105, 33, $WS_GROUP+$BS_DEFPUSHBUTTON)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    HideIT2()
    EndSwitch
    WEnd

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

    Func HideIT2()
    Global $i
    $var = WinList()
    For $i = 1 to $var[0][0]
    Next
    $Pos = _ArraySearch ($var,GuiCtrlRead($first),0,0,0,1,1,0)
    MsgBox ("","",$Pos)
    $strwindow = _ArrayToString ($var[$Pos][0],"",0,0) ;<==============
    MsgBox ("","",$strwindow)
    $1 = WinGetState ($strwindow) ;<========= Hier kommt nurnoch "" also garnichts raus
    If $1 = 21 then WinSetState ($strwindow,"",@SW_SHOW)
    If $1 = 23 then WinSetState ($strwindow,"",@SW_HIDE)
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von TheBigX (17. Februar 2010 um 20:21)

  • in $var[$Pos][1] ist die FensterID (Handle) wenn ich mich nicht irre, und die brauche ich nicht^^

    Ich werde es gleich mal testen


    EDIT: Funzt, ich danke dir für deine schnelle Hilfe :)

    • Offizieller Beitrag
    [autoit]

    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <string.au3>
    #include <Array.au3>
    ;~ Opt("WinTitleMatchMode",2)

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

    $Form1 = GUICreate("HideIT", 134, 111, 444, 413)
    $first = GUICtrlCreateInput("", 8, 8, 121, 21)
    $second = GUICtrlCreateInput("", 8, 40, 121, 21)
    $Button1 = GUICtrlCreateButton("HideIT", 8, 72, 105, 33, $WS_GROUP+$BS_DEFPUSHBUTTON)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    HideIT2()
    EndSwitch
    WEnd

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

    Func HideIT2()
    Global $i
    $var = WinList()
    $Pos = _ArraySearch ($var,GuiCtrlRead($first),0,0,0,1,1,0)
    $strwindow = $var[$Pos][0]
    MsgBox ("","",$strwindow)
    $1 = WinGetState ($strwindow) ;<========= Hier kommt nurnoch "" also garnichts raus
    MsgBox ("","",$1)
    If $1 = 21 then WinSetState ($strwindow,"",@SW_SHOW)
    If $1 = 23 then WinSetState ($strwindow,"",@SW_HIDE)
    EndFunc

    [/autoit]