brauche Hilfe bei sperrung von webseitenseiten

  • Und zwar kann ich nur 1 seite eingeben richtig wenn ich näckste machen will kommt anstatt der name eine 0 zieh aber Bilder unten

    ihr sind bilder

    Bild 1

    Bild 2

    Bild 3

    Bild 4


    Spoiler anzeigen

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GUIConstants.au3>

    ;Global Const $LVFI_PARAM = 0x0001
    ;Global Const $LVIF_TEXT = 0x0001
    ;Global Const $LVM_FIRST = 0x1000
    Global Const $LVM_GETITEM = $LVM_FIRST + 5
    ;Global Const $LVM_FINDITEM = $LVM_FIRST + 13
    ;Global Const $LVM_SETSELECTEDCOLUMN= $LVM_FIRST + 140

    Dim $nCurCol = -1
    Dim $nSortDir = 1
    Dim $bSet = 0
    Dim $nCol = -1
    Dim $nr, $aSperrungdaten

    #Region ### START Koda GUI section ####
    $Form1 = GUICreate('Sperrung von Internet Seiten',300,300, 0, 0)
    GUISetBkColor(0xFFFFFF)
    $Input1 = GUICtrlCreateInput("", 0, 0, 300, 21)
    $Button = GUICtrlCreateButton("Sperren", 100, 25, 75, 21, 0)
    $Listview1 = GUICtrlCreateListView("Nr|Webseite|", 0, 50, 300, 250)
    GUICtrlSetFont($Listview1, 8, 400, 0, "MS Sans Serif")
    ; ### hier Kontextmenü für ListView einfügen:
    $mnu = GUICtrlCreateContextMenu($Listview1)
    $mnu_edit = GUICtrlCreateMenuItem('Webseite Bearbeiten', $mnu)
    $mnu_del = GUICtrlCreateMenuItem('Webseite Löschen', $mnu)
    ; ### Ende Kontextmenü
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    Local $SperrungINI = @ScriptDir & "\Sperrung.ini"

    ; nur zum Testen:
    If Not FileExists($SperrungINI) Then
    IniWrite($SperrungINI, "Sperrung", 10000, "www.Torrent.to")
    IniWrite($SperrungINI, "edit", 10000, "")
    IniWrite($SperrungINI, "Sperrung", 10001, "www.speedtorrent.to")
    IniWrite($SperrungINI, "edit", 10001, "")
    IniWrite($SperrungINI, "Sperrung", 10002, "www.Bitreactor.to")
    IniWrite($SperrungINI, "edit", 10002, "")
    IniWrite($SperrungINI, "Numbers", "last", 10002)
    EndIf
    ; Ende Test-INI

    Global $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    Local $lastNum = IniRead($SperrungINI, "Numbers", "last", 9999)

    _FillListView()
    GUISetState(@SW_SHOW, $Form1)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1] ; Window-Handle
    Case $Form1
    Switch $nMsg[0] ; Event
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    $lastNum += 1
    $Input1 = GUICtrlRead($Input1)
    IniWrite($SperrungINI, "Numbers", "last", $Listview1)
    IniWrite($SperrungINI, "Sperrung", $lastNum, $Input1)
    IniWrite($SperrungINI, "edit",$lastNum,"")
    GUICtrlSetData($Input1, "")
    ; Array mit Patienten-Daten neu einlesen
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    _FillListView()
    Case $mnu_del
    ; Eintrag aus INI löschen:
    $index = _GUICtrlListView_GetSelectedIndices($Listview1)
    $del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
    IniDelete($SperrungINI, "Sperrung", $del_key)
    ; Array mit Patienten-Daten neu einlesen
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    ; entfernt Eintrag aus Liste:
    _GUICtrlListView_DeleteItemsSelected($Listview1)
    Case $Listview1
    $bSet = 0
    $nCurCol = $nCol
    GUICtrlSendMsg($Listview1, $LVM_SETSELECTEDCOLUMN, GUICtrlGetState($Listview1), 0)
    DllCall("user32.dll", "int", "InvalidateRect", "hwnd", GUICtrlGetHandle($Listview1), "int", 0, "int", 1)
    EndSwitch
    EndSwitch
    WEnd

    Func _FillListView()
    _GUICtrlListView_DeleteAllItems($Listview1)
    If $lastNum = 9999 Then Return
    For $i = 1 To UBound($aSperrung) -1
    GUICtrlCreateListViewItem($aSperrung[$i][0] & '|' & $aSperrung[$i][1], $Listview1)
    Next
    EndFunc


    Func _LeftDblClick($Info) ; Inhalt der angeklickten Zeile (alle Spalten) wird in GUI gezeigt
    GUICtrlSetData($Input1 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 0))
    $nr = GUICtrlRead($Input1)
    $edit= IniRead($INI,"edit",$nr,"")
    GUICtrlSetData($Edit1,$edit)
    GUISetState(@SW_SHOW, $Form1)
    EndFunc

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $ListView1
    If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1)

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[12] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "lParam"), _
    DllStructGetData($tInfo, "KeyFlags")]
    _LeftDblClick($aInfo)
    Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
    Return $GUI_RUNDEFMSG ; allow the default processing
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    ; Unsere Sortier-Callback-Funktionen
    Func LVSort($hWnd, $nItem1, $nItem2, $nColumn)
    Local $nSort

    ; Schalte die Sortierrichtung um
    If $nColumn = $nCurCol Then
    If Not $bSet Then
    $nSortDir = $nSortDir * -1
    $bSet = 1
    EndIf
    Else
    $nSortDir = 1
    EndIf
    $nCol = $nColumn

    $val1 = GetSubItemText($Listview1, $nItem1, $nColumn)
    $val2 = GetSubItemText($Listview1, $nItem2, $nColumn)

    ; Wenn es die dritte Spalte ist (startet bei 0) dann vergleiche die Daten
    If $nColumn = 2 Then
    $val1 = StringRight($val1, 4) & StringMid($val1, 4, 2) & StringLeft($val1, 2)
    $val2 = StringRight($val2, 4) & StringMid($val2, 4, 2) & StringLeft($val2, 2)
    EndIf

    $nResult = 0 ; Keine Änderung in item1 und item2 Positionen

    If $val1 < $val2 Then
    $nResult = -1 ; Setze item2 vor item1
    ElseIf $val1 > $val2 Then
    $nResult = 1 ; Setze item2 hinter item1
    EndIf

    $nResult = $nResult * $nSortDir

    Return $nResult
    EndFunc

    ; Text eines Baumansicht-Elements in einer bestimmten Spalte abrufen
    Func GetSubItemText($nCtrlID, $nItemID, $nColumn)
    Local $stLvfi = DllStructCreate("uint;ptr;int;int[2];int")
    DllStructSetData($stLvfi, 1, $LVFI_PARAM)
    DllStructSetData($stLvfi, 3, $nItemID)

    Local $stBuffer = DllStructCreate("char[260]")

    $nIndex = GUICtrlSendMsg($nCtrlID, $LVM_FINDITEM, -1, DllStructGetPtr($stLvfi));

    Local $stLvi = DllStructCreate("uint;int;int;uint;uint;ptr;int;int;int;int")

    DllStructSetData($stLvi, 1, $LVIF_TEXT)
    DllStructSetData($stLvi, 2, $nIndex)
    DllStructSetData($stLvi, 3, $nColumn)
    DllStructSetData($stLvi, 6, DllStructGetPtr($stBuffer))
    DllStructSetData($stLvi, 7, 260)

    GUICtrlSendMsg($nCtrlID, $LVM_GETITEM, 0, DllStructGetPtr($stLvi));

    $sItemText = DllStructGetData($stBuffer, 1)

    $stLvi = 0
    $stLvfi = 0
    $stBuffer = 0

    Return $sItemText
    EndFunc

    • Offizieller Beitrag

    So, habe den Fehler gefunden .
    Dein Code

    [autoit]

    Case $Button
    $lastNum += 1
    $Input1 = GUICtrlRead($Input1)
    IniWrite($SperrungINI, "Numbers", "last", $Listview1)
    IniWrite($SperrungINI, "Sperrung", $lastNum, $Input1)
    IniWrite($SperrungINI, "edit",$lastNum,"")
    GUICtrlSetData($Input1, "")
    ; Array mit Patienten-Daten neu einlesen
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    _FillListView()

    [/autoit]

    kann nich Funzen
    Du weißt der Variable $Input1 den Wert von GuiCtrlRead($Input1) das ist Falsch weil beide Var den selben Namen haben.
    Solltest du besser so machen :

    [autoit]

    Case $Button
    $lastNum += 1
    $Input = GUICtrlRead($Input1)
    IniWrite($SperrungINI, "Numbers", "last", $lastNum)
    IniWrite($SperrungINI, "Sperrung", $lastNum, $Input)
    IniWrite($SperrungINI, "edit", $lastNum, "")
    GUICtrlSetData($Input1, "")
    ; Array mit Patienten-Daten neu einlesen
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    _FillListView()

    [/autoit]


    Habe die Func _LeftDblClick mal auskommentiert. Da sind Fehler drinne, du hast im Script kein Control das $Edit1 heißt. Die Variable $INI ist in deinem Code auch nicht deklariert.Hier mal des veränderte Script:

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>

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

    ;Global Const $LVFI_PARAM = 0x0001
    ;Global Const $LVIF_TEXT = 0x0001
    ;Global Const $LVM_FIRST = 0x1000
    Global Const $LVM_GETITEM = $LVM_FIRST + 5
    ;Global Const $LVM_FINDITEM = $LVM_FIRST + 13
    ;Global Const $LVM_SETSELECTEDCOLUMN= $LVM_FIRST + 140

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

    Dim $nCurCol = -1
    Dim $nSortDir = 1
    Dim $bSet = 0
    Dim $nCol = -1
    Dim $nr, $aSperrungdaten

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

    #Region ### START Koda GUI section ####
    $Form1 = GUICreate('Sperrung von Internet Seiten', 300, 300, 0, 0)
    GUISetBkColor(0xFFFFFF)
    $Input1 = GUICtrlCreateInput("", 0, 0, 300, 21)
    $Button = GUICtrlCreateButton("Sperren", 100, 25, 75, 21, 0)
    $Listview1 = GUICtrlCreateListView("Nr|Webseite|", 0, 50, 300, 250)
    GUICtrlSetFont($Listview1, 8, 400, 0, "MS Sans Serif")
    ; ### hier Kontextmenü für ListView einfügen:
    $mnu = GUICtrlCreateContextMenu($Listview1)
    $mnu_edit = GUICtrlCreateMenuItem('Webseite Bearbeiten', $mnu)
    $mnu_del = GUICtrlCreateMenuItem('Webseite Löschen', $mnu)
    ; ### Ende Kontextmenü
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Local $SperrungINI = @ScriptDir & "\Sperrung.ini"

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

    ; nur zum Testen:
    If Not FileExists($SperrungINI) Then
    IniWrite($SperrungINI, "Sperrung", 10000, "www.Torrent.to")
    IniWrite($SperrungINI, "edit", 10000, "")
    IniWrite($SperrungINI, "Sperrung", 10001, "www.speedtorrent.to")
    IniWrite($SperrungINI, "edit", 10001, "")
    IniWrite($SperrungINI, "Sperrung", 10002, "www.Bitreactor.to")
    IniWrite($SperrungINI, "edit", 10002, "")
    IniWrite($SperrungINI, "Numbers", "last", 10002)
    EndIf
    ; Ende Test-INI

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

    Global $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    Local $lastNum = IniRead($SperrungINI, "Numbers", "last", 9999)

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

    _FillListView()
    GUISetState(@SW_SHOW, $Form1)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1] ; Window-Handle
    Case $Form1
    Switch $nMsg[0] ; Event
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    $lastNum += 1
    $Input = GUICtrlRead($Input1)
    IniWrite($SperrungINI, "Numbers", "last", $lastNum)
    IniWrite($SperrungINI, "Sperrung", $lastNum, $Input)
    IniWrite($SperrungINI, "edit", $lastNum, "")
    GUICtrlSetData($Input1, "")
    ; Array mit Patienten-Daten neu einlesen
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    _FillListView()
    Case $mnu_del
    ; Eintrag aus INI löschen:
    $index = _GUICtrlListView_GetSelectedIndices($Listview1)
    $del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
    IniDelete($SperrungINI, "Sperrung", $del_Key)
    ; Array mit Patienten-Daten neu einlesen
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    ; entfernt Eintrag aus Liste:
    _GUICtrlListView_DeleteItemsSelected($Listview1)
    Case $Listview1
    $bSet = 0
    $nCurCol = $nCol
    GUICtrlSendMsg($Listview1, $LVM_SETSELECTEDCOLUMN, GUICtrlGetState($Listview1), 0)
    DllCall("user32.dll", "int", "InvalidateRect", "hwnd", GUICtrlGetHandle($Listview1), "int", 0, "int", 1)
    EndSwitch
    EndSwitch
    WEnd

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

    Func _FillListView()
    _GUICtrlListView_DeleteAllItems($Listview1)
    If $lastNum = 9999 Then Return
    For $i = 1 To UBound($aSperrung) - 1
    GUICtrlCreateListViewItem($aSperrung[$i][0] & '|' & $aSperrung[$i][1], $Listview1)
    Next
    EndFunc ;==>_FillListView

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

    ;~ Func _LeftDblClick($Info) ; Inhalt der angeklickten Zeile (alle Spalten) wird in GUI gezeigt
    ;~ GUICtrlSetData($Input1 , _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $Info[3], 0))
    ;~ $nr = GUICtrlRead($Input1)
    ;~ $edit= IniRead($INI,"edit",$nr,"")
    ;~ GUICtrlSetData($Edit1,$edit)
    ;~ GUISetState(@SW_SHOW, $Form1)
    ;~ EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $Listview1
    If Not IsHWnd($Listview1) Then $hWndListView = GUICtrlGetHandle($Listview1)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    ;~ Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
    ;~ Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    ;~ Local $aInfo[12] = [$hWndFrom, _
    ;~ $iIDFrom, _
    ;~ $iCode, _
    ;~ DllStructGetData($tInfo, "Index"), _
    ;~ DllStructGetData($tInfo, "SubItem"), _
    ;~ DllStructGetData($tInfo, "NewState"), _
    ;~ DllStructGetData($tInfo, "OldState"), _
    ;~ DllStructGetData($tInfo, "Changed"), _
    ;~ DllStructGetData($tInfo, "ActionX"), _
    ;~ DllStructGetData($tInfo, "ActionY"), _
    ;~ DllStructGetData($tInfo, "lParam"), _
    ;~ DllStructGetData($tInfo, "KeyFlags")]
    ;~ _LeftDblClick($aInfo)
    Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
    Return $GUI_RUNDEFMSG ; allow the default processing
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    ; Unsere Sortier-Callback-Funktionen
    Func LVSort($hWnd, $nItem1, $nItem2, $nColumn)
    Local $nSort

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

    ; Schalte die Sortierrichtung um
    If $nColumn = $nCurCol Then
    If Not $bSet Then
    $nSortDir = $nSortDir * - 1
    $bSet = 1
    EndIf
    Else
    $nSortDir = 1
    EndIf
    $nCol = $nColumn

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

    $val1 = GetSubItemText($Listview1, $nItem1, $nColumn)
    $val2 = GetSubItemText($Listview1, $nItem2, $nColumn)

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

    ; Wenn es die dritte Spalte ist (startet bei 0) dann vergleiche die Daten
    If $nColumn = 2 Then
    $val1 = StringRight($val1, 4) & StringMid($val1, 4, 2) & StringLeft($val1, 2)
    $val2 = StringRight($val2, 4) & StringMid($val2, 4, 2) & StringLeft($val2, 2)
    EndIf

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

    $nResult = 0 ; Keine Änderung in item1 und item2 Positionen

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

    If $val1 < $val2 Then
    $nResult = -1 ; Setze item2 vor item1
    ElseIf $val1 > $val2 Then
    $nResult = 1 ; Setze item2 hinter item1
    EndIf

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

    $nResult = $nResult * $nSortDir

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

    Return $nResult
    EndFunc ;==>LVSort

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

    ; Text eines Baumansicht-Elements in einer bestimmten Spalte abrufen
    Func GetSubItemText($nCtrlID, $nItemID, $nColumn)
    Local $stLvfi = DllStructCreate("uint;ptr;int;int[2];int")
    DllStructSetData($stLvfi, 1, $LVFI_PARAM)
    DllStructSetData($stLvfi, 3, $nItemID)

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

    Local $stBuffer = DllStructCreate("char[260]")

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

    $nIndex = GUICtrlSendMsg($nCtrlID, $LVM_FINDITEM, -1, DllStructGetPtr($stLvfi));

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

    Local $stLvi = DllStructCreate("uint;int;int;uint;uint;ptr;int;int;int;int")

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

    DllStructSetData($stLvi, 1, $LVIF_TEXT)
    DllStructSetData($stLvi, 2, $nIndex)
    DllStructSetData($stLvi, 3, $nColumn)
    DllStructSetData($stLvi, 6, DllStructGetPtr($stBuffer))
    DllStructSetData($stLvi, 7, 260)

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

    GUICtrlSendMsg($nCtrlID, $LVM_GETITEM, 0, DllStructGetPtr($stLvi));

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

    $sItemText = DllStructGetData($stBuffer, 1)

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

    $stLvi = 0
    $stLvfi = 0
    $stBuffer = 0

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

    Return $sItemText
    EndFunc ;==>GetSubItemText

    [/autoit]


    Du solltest mal deinen Scripcode "Entmüllen" und beim posten darauf achten die Autoit-Quellcode Function zu verwenden. Damit wird der Code leserlicher.