ListView_Werte addieren?

  • Halloo erstmal.
    Ich hab zwar ein Skript darüber gefunden, dieses allerdings nicht ganz verstanden.
    Bei dem Meinigen handelt es sich um ein Skript welches die Laufzeit eines Programmes Dokumentiert und auf Wunsch [Berechnen] die komplette Liste addiert als Ergebniss ausgibt.
    Muss wirklich kein fertiges Skript sein, ich möcht schließlich noch was drauß lernen :)

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <GuiListView.au3>
    #include <Array.au3>
    #region - GUI Create
    $GUI = GUICreate("", 411, 508, 315, 150,$WS_POPUP)
    GUISetBkColor(0xD7E4F2)
    $ListView1 = GUICtrlCreateListView("Time past ", 16, 16, 313, 473)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Button1 = GUICtrlCreateButton("Beenden", 336, 16, 65, 233)
    $Button2 = GUICtrlCreateButton("Berechnen", 336, 248, 65, 241)
    GUISetState(@SW_SHOW)
    #endregion

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

    GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")

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

    Global $c
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    Exit
    Case $Button2
    $count = _GUICtrlListView_GetItemCount($ListView1)
    For $i = 0 To $count -1
    _GUICtrlListView_GetItemText($ListView1,0)
    Next
    GUICtrlCreateListViewItem($?,$ListView1)
    EndSwitch
    If ProcessExists("Calc.exe") = True Then
    $i = TimerInit()
    Do
    Sleep(100)
    Until ProcessExists("Calc.exe") = False
    $Test = TimerDiff($i)
    GUICtrlCreateListViewItem(Round($Test,2),$ListView1)
    EndIf

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

    WEnd

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

    Func WM_NCHITTEST($hWnd, $Msg, $wParam, $lParam)
    Local $iProc
    $iProc = DllCall("user32.dll", "int", "DefWindowProc", _
    "hwnd", $hWnd, "int", $Msg, "int", $wParam, "int", $lParam)
    If @error Then SetError(@error, 0, 0)
    $iProc = $iProc[0]
    If $iProc = $HTCLIENT Then Return $HTCAPTION
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]


    Das Problem ist nun, dass ich nicht weiß wie ich die, mit "_GUICtrlListView_GetItemText($ListView1,0)" erworbenen Daten addieren und darstellen kann.
    Darstellen wäre in diesem Fall einfach ein neues ListViewItem.


    Grüße Stoani

    mfg, Stoani

    Einmal editiert, zuletzt von Stoani (27. Oktober 2011 um 22:22)

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    #Region - Timestamp
    ; 2011-10-27 22:14:30
    #EndRegion

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

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <GuiListView.au3>
    #include <Array.au3>
    #region - GUI Create
    $GUI = GUICreate("", 411, 508, 315, 150,$WS_POPUP)
    GUISetBkColor(0xD7E4F2)
    $ListView1 = GUICtrlCreateListView("Time past ", 16, 16, 313, 473)
    $hListview = GUICtrlGetHandle($ListView1)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Button1 = GUICtrlCreateButton("Beenden", 336, 16, 65, 233)
    $Button2 = GUICtrlCreateButton("Berechnen", 336, 248, 65, 241)
    GUISetState(@SW_SHOW)
    #endregion

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

    ;~ GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")

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

    Global $c
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    Exit
    Case $Button2
    $count = _GUICtrlListView_GetItemCount($hListview)
    For $i = 0 To $count -1
    $temp = _GUICtrlListView_GetItemText($hListview,$i)
    MsgBox(0,"",$temp)
    Next

    EndSwitch
    If ProcessExists("Calc.exe") = True Then
    $i = TimerInit()
    Do
    Sleep(100)
    Until ProcessExists("Calc.exe") = False
    $Test = TimerDiff($i)
    GUICtrlCreateListViewItem(Round($Test,2),$ListView1)
    EndIf

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

    WEnd

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

    ;~ Func WM_NCHITTEST($hWnd, $Msg, $wParam, $lParam)
    ;~ Local $iProc
    ;~ $iProc = DllCall("user32.dll", "int", "DefWindowProc", _
    ;~ "hwnd", $hWnd, "int", $Msg, "int", $wParam, "int", $lParam)
    ;~ If @error Then SetError(@error, 0, 0)
    ;~ $iProc = $iProc[0]
    ;~ If $iProc = $HTCLIENT Then Return $HTCAPTION
    ;~ Return $GUI_RUNDEFMSG
    ;~ EndFunc

    [/autoit]
    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    #Region - Timestamp
    ; 2011-10-27 22:17:48
    #EndRegion
    Global $temp
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <GuiListView.au3>
    #include <Array.au3>
    #region - GUI Create
    $GUI = GUICreate("", 411, 508, 315, 150,$WS_POPUP)
    GUISetBkColor(0xD7E4F2)
    $ListView1 = GUICtrlCreateListView("Time past ", 16, 16, 313, 473)
    $hListview = GUICtrlGetHandle($ListView1)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    $Button1 = GUICtrlCreateButton("Beenden", 336, 16, 65, 233)
    $Button2 = GUICtrlCreateButton("Berechnen", 336, 248, 65, 241)
    GUISetState(@SW_SHOW)
    #endregion

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

    ;~ GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")

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

    Global $c
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    Exit
    Case $Button2
    $count = _GUICtrlListView_GetItemCount($hListview)
    For $i = 0 To $count -1
    $temp += _GUICtrlListView_GetItemText($hListview,$i)

    Next
    MsgBox(0,"",$temp)
    EndSwitch
    If ProcessExists("Calc.exe") = True Then
    $i = TimerInit()
    Do
    Sleep(100)
    Until ProcessExists("Calc.exe") = False
    $Test = TimerDiff($i)
    GUICtrlCreateListViewItem(Round($Test,2),$ListView1)
    EndIf

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

    WEnd

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

    ;~ Func WM_NCHITTEST($hWnd, $Msg, $wParam, $lParam)
    ;~ Local $iProc
    ;~ $iProc = DllCall("user32.dll", "int", "DefWindowProc", _
    ;~ "hwnd", $hWnd, "int", $Msg, "int", $wParam, "int", $lParam)
    ;~ If @error Then SetError(@error, 0, 0)
    ;~ $iProc = $iProc[0]
    ;~ If $iProc = $HTCLIENT Then Return $HTCAPTION
    ;~ Return $GUI_RUNDEFMSG
    ;~ EndFunc

    [/autoit]

    Hatte das falsche kopiert, bei diesem Script bekommst du die Gesamtzeit.