Script erweitern

  • Gutne MOrgen.

    vor einiger Zeit wahr hatte ich mal mit hilfe des Forums hier das Script im Anhang erstellt.
    Nun wollte ich es erweitern, aber komme keinen schritt vorran.

    Bisher durchsucht es einen Ordner nach datein.
    nun habe ich noch eine Anwendung dazubekommen, nämlich das er doch ein Dokument erstellen soll.
    Also einen Button Neues Dokument.
    Dieser soll einen neuen GUI öffnen mit 3 Eingabe Feldern einmal Nummer dann Bezeichnung und text.
    Das Gui erstellen ist ja dsa geringe Problem.

    Eher wie ich dahin komme.
    Wenn ich nun einen 2ten Button einfüge, kann ich ihn irgendwie nicht mit einer funktion belegen.
    Ev kann mir jemand helfen.

    Gruß und danke

    Spoiler anzeigen
    [autoit]

    #include <GuiListBox.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>

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

    HotKeySet("{F6}", "eintragen")
    HotKeySet("{F7}", "media")
    HotKeySet("{F8}", "neu")
    Global $ORDNER = IniRead("Datei.ini", "InterneInfos", "Laufwerk", "c:")
    Global $ORDNER23 = ""
    Opt("GUIOnEventMode", 1)
    $GUI = GUICreate("InterneInfos", 220, 600, -1, -1)

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

    GUISetOnEvent(-3, "_Ende")
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    Global $INPUT = ""
    Global $INPUTREFRESH = GUICtrlCreateInput("", 10, 10, 130, 25)
    Global $TEST = GUICtrlCreateButton("Suche", 150, 10, 60, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_Refresh")
    Global $LIST = GUICtrlCreateList("", 10, 40, 200, 550)
    Global $HLIST = GUICtrlGetHandle(-1)
    Global $AORDNER = _FILELISTTOARRAY($ORDNER, "*" & GUICtrlRead($INPUTREFRESH) & "*.*", 1)
    If @error = 4 Then
    MsgBox(0, "HINWEIS", "Keine Dokumente hinterlegt", 2)
    $AORDNER = _FILELISTTOARRAY($ORDNER, "*", 1)
    $AORDNER[0] = "0"
    EndIf
    For $I = 1 To $AORDNER[0]
    GUICtrlSetData($LIST, $AORDNER[$I])
    Next
    GUISetState()
    While 1
    Sleep(1000)

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

    WEnd

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

    Func _CHECK_EINGABE($IWPARAM)
    Switch $IWPARAM
    Case 50331651
    _GUICTRLLISTBOX_SETCURSEL($HLIST, _GUICTRLLISTBOX_FINDSTRING($HLIST, GUICtrlRead($INPUT)))
    EndSwitch
    EndFunc

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

    Func _OPEN_ORDNER()
    If GUICtrlRead($LIST) <> "" Then ShellExecute($ORDNER & "\" & GUICtrlRead($LIST))
    EndFunc

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

    Func _ENDE()
    Exit
    EndFunc

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

    Func _REFRESH()
    GUICtrlSetData($LIST, "")
    Local $FILTER = "*" & GUICtrlRead($INPUTREFRESH) & "*.*"
    $AORDNER = _FILELISTTOARRAY($ORDNER, $FILTER, 1)
    If @error = 4 Then
    MsgBox(0, "HINWEIS", "Keine Dokumente hinterlegt", 2)
    $AORDNER = _FILELISTTOARRAY($ORDNER, "*", 1)
    EndIf
    For $I = 1 To $AORDNER[0]
    GUICtrlSetData($LIST, $AORDNER[$I])
    Next
    EndFunc

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

    Func WM_COMMAND($HWND, $IMSG, $IWPARAM, $ILPARAM)
    _CHECK_EINGABE($IWPARAM)
    Local $HWNDFROM, $IIDFROM, $ICODE, $HWNDLISTBOX
    If Not IsHWnd($LIST) Then $HWNDLISTBOX = GUICtrlGetHandle($LIST)
    $HWNDFROM = $ILPARAM
    $IIDFROM = BitAND($IWPARAM, 65535)
    $ICODE = BitShift($IWPARAM, 16)
    Switch $HWNDFROM
    Case $LIST, $HWNDLISTBOX
    Switch $ICODE
    Case $LBN_DBLCLK
    _OPEN_ORDNER()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func EINTRAGEN()
    $STATE = WinGetState("(Untitled) - IBM Lotus Notes", "")
    $NAME = IniRead("Datei.ini", "Lotus Notes", "Name", "NichtGefunden")
    $TEL = IniRead("Datei.ini", "Lotus Notes", "Telefon", "NichtGefunden")
    $FAX = IniRead("Datei.ini", "Lotus Notes", "Fax", "NichtGefunden")
    If BitAND($STATE, 8) Then
    Hier stehen vertrauliche daten
    Else
    MsgBox(0, "ACHTUNG", "Lotus Notes ist nicht Aktiviert.")
    EndIf
    EndFunc

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

    Func MEDIA()
    $STATE = WinGetState("Telefonische Vorgangsannahme", "")
    $KUNDEN = IniRead("Datei.ini", "Mediatrix", "Kundenummer", "NichtGefunden")
    If BitAND($STATE, 8) Then
    Send($KUNDEN)
    Send("{ENTER}")
    Else
    MsgBox(0, "ACHTUNG", "Anforderungs Maske ist nicht aktiv.")
    EndIf
    EndFunc

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

    Einmal editiert, zuletzt von DummDumm (28. September 2009 um 12:43)

  • Vieleicht hilft dir das weiter

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Haubtgui", 413, 298, 100, 219)
    GUICtrlCreateLabel ("Haubtgui",10,10)
    $Button1 = GUICtrlCreateButton("Senden", 105, 42, 75, 25, 0)
    $S = GUICtrlCreateButton("Zeigen", 111, 210, 75, 25, 0)
    $Input1 = GUICtrlCreateInput("Input1", 45, 132, 121, 21)
    GUISetState(@SW_SHOW,$Form1)
    #EndRegion ### END Koda GUI section ###

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Nebengui", 413, 298, 600, 219)
    $Input2 = GUICtrlCreateInput("Input1", 15, 54, 121, 21)
    $Button2 = GUICtrlCreateButton("Senden", 111, 195, 75, 25, 0)
    ;~ GUISetState(@SW_SHOW,$Form2)
    #EndRegion ### END Koda GUI section ###
    $State = 0
    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
    Case $Form1
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $1 = GUICtrlRead ($Input1)
    GUICtrlSetData ($Input2,$1)
    Case $S
    If $State = 0 Then
    GUISetState (@SW_SHOW,$Form2)
    GUICtrlSetData ($S,"Verstecken")
    $State = 1
    Else
    GUISetState (@SW_HIDE,$Form2)
    GUICtrlSetData ($S,"Zeigen")
    $State = 0
    EndIf
    EndSwitch
    Case $Form2
    Switch $nMsg[0]
    Case $Button2
    $2 = GUICtrlRead ($Input2)
    GUICtrlSetData ($Input1,$2)
    Case $GUI_EVENT_CLOSE
    GUISetState (@SW_HIDE,$Form2)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    mfg. Jam00

  • OKay so annähernd versteh ich was du hier machst.
    Allerdings habe ich das Problem das ich, sobald ich mein Script erweiter keine anderen Buttons betätigen kann.
    Und ja 2 Buttons 2 unterschiedliche Funktionen haben muss.

    Also einmal Suchen und einmal dann in doc datei schreiben.

    Daher stehe ich gerade echt am schlauch. SRY

    habe es auch schon mit einem Menu versucht zu öffnen aber auch das ohne erfolg.
    ER kann mir dann nur suchen weitere Buttons bleiben ohne Funktion.
    So habe es mal über Hotkey versucht

    Spoiler anzeigen
    [autoit]

    #include <GuiListBox.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>

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

    HotKeySet("{F6}", "eintragen")
    HotKeySet("{F7}", "media")
    HotKeySet("{F8}", "neu")
    Global $ORDNER = IniRead("Datei.ini", "InterneInfos", "Laufwerk", "c:")
    Global $ORDNER23 = ""
    Opt("GUIOnEventMode", 1)
    $GUI = GUICreate("InterneInfos", 220, 600, -1, -1)

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

    GUISetOnEvent(-3, "_Ende")
    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
    Global $INPUT = ""
    Global $INPUTREFRESH = GUICtrlCreateInput("", 10, 10, 130, 25)
    Global $TEST = GUICtrlCreateButton("Suche", 100, 10, 60, 25, $WS_GROUP)
    Global $TEST2 = GUICtrlCreateButton("Test", 150, 10, 60, 25, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_Refresh")
    Global $LIST = GUICtrlCreateList("", 10, 40, 200, 550)
    Global $HLIST = GUICtrlGetHandle(-1)
    Global $AORDNER = _FILELISTTOARRAY($ORDNER, "*" & GUICtrlRead($INPUTREFRESH) & "*.*", 1)
    If @error = 4 Then
    MsgBox(0, "HINWEIS", "Keine Dokumente hinterlegt", 2)
    $AORDNER = _FILELISTTOARRAY($ORDNER, "*", 1)
    $AORDNER[0] = "0"
    EndIf
    For $I = 1 To $AORDNER[0]
    GUICtrlSetData($LIST, $AORDNER[$I])
    Next
    GUISetState()
    While 1
    Sleep(1000)

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

    WEnd

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

    Func _CHECK_EINGABE($IWPARAM)
    Switch $IWPARAM
    Case 50331651
    _GUICTRLLISTBOX_SETCURSEL($HLIST, _GUICTRLLISTBOX_FINDSTRING($HLIST, GUICtrlRead($INPUT)))
    EndSwitch
    EndFunc

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

    Func _OPEN_ORDNER()
    If GUICtrlRead($LIST) <> "" Then ShellExecute($ORDNER & "\" & GUICtrlRead($LIST))
    EndFunc

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

    Func _ENDE()
    Exit
    EndFunc

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

    Func _REFRESH()
    GUICtrlSetData($LIST, "")
    Local $FILTER = "*" & GUICtrlRead($INPUTREFRESH) & "*.*"
    $AORDNER = _FILELISTTOARRAY($ORDNER, $FILTER, 1)
    If @error = 4 Then
    MsgBox(0, "HINWEIS", "Keine Dokumente hinterlegt", 2)
    $AORDNER = _FILELISTTOARRAY($ORDNER, "*", 1)
    EndIf
    For $I = 1 To $AORDNER[0]
    GUICtrlSetData($LIST, $AORDNER[$I])
    Next
    EndFunc

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

    Func WM_COMMAND($HWND, $IMSG, $IWPARAM, $ILPARAM)
    _CHECK_EINGABE($IWPARAM)
    Local $HWNDFROM, $IIDFROM, $ICODE, $HWNDLISTBOX
    If Not IsHWnd($LIST) Then $HWNDLISTBOX = GUICtrlGetHandle($LIST)
    $HWNDFROM = $ILPARAM
    $IIDFROM = BitAND($IWPARAM, 65535)
    $ICODE = BitShift($IWPARAM, 16)
    Switch $HWNDFROM
    Case $LIST, $HWNDLISTBOX
    Switch $ICODE
    Case $LBN_DBLCLK
    _OPEN_ORDNER()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc

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

    func neu()
    $Form1 = GUICreate("Neue Produktinfo", 530, 447, 192, 124)
    $Input1 = GUICtrlCreateInput("Input1", 24, 64, 193, 21)
    $Input2 = GUICtrlCreateInput("Input2", 264, 64, 241, 21)
    $Label1 = GUICtrlCreateLabel("Artikelnummer", 24, 40, 70, 17)
    $Label2 = GUICtrlCreateLabel("Bezeichnung", 264, 40, 66, 17)
    $Input3 = GUICtrlCreateInput("Input3", 24, 104, 481, 300)
    $button1 = GUICtrlCreateButton("Anlegen", 24, 420, 50, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

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

    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    case $button1
    MsgBox(0, "ACHTUNG", "Der Button funktioniert")

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

    Exit

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

    EndSwitch
    WEnd
    EndFUnc

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


    Habe es hinbekommen danke schön

    3 Mal editiert, zuletzt von DummDumm (28. September 2009 um 12:43)