AutoDetector (Autostart Einträge finden & löschen)

  • Hi @ all ;)
    Mal wieder eine kleine Spielerei meinerseits :)
    Mit diesem Tool könnt ihr Autostarteinträge löschen.
    Weitere Funktionen folgen vll. bald ^^

    Version : 1.0

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #include <Array.au3>
    #include <File.au3>
    #include <GUIListView.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>

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

    $AutoStartDir = @StartupDir
    $AutoRegDir1 = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
    $AutoRegDir2 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
    Dim $AutoStartFiles
    _FileListToArray ($AutoStartDir)
    Dim $AutoStartFiles2 = _RegReadToArray ($AutoRegDir1)
    Dim $AutoStartFiles3 = _RegReadToArray ($AutoRegDir2)

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

    $Form1 = GUICreate("AutoDetector", 608, 424, 192, 114)
    $Button1 = GUICtrlCreateButton("Eintrag löschen", 8, 400, 201, 17, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Beenden", 424, 400, 169, 17, $WS_GROUP)
    $ListView1 = GUICtrlCreateListView("Name|Datei|Ort", 8, 8, 585, 385)

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

    _GUICtrlListView_SetColumnWidth ($ListView1,0,Int(585/3)-2)
    _GUICtrlListView_SetColumnWidth ($ListView1,1,Int(585/3)-2)
    _GUICtrlListView_SetColumnWidth ($ListView1,2,Int(585/3)-2)

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

    For $i = 1 To UBound ($AutoStartFiles,1)-1
    GUICtrlCreateListViewItem ($AutoStartFiles [$i]&"|"&$AutoStartFiles [$i]&"|"&@StartupDir,$ListView1)
    Next

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

    For $i = 1 To UBound ($AutoStartFiles2,1)-1
    GUICtrlCreateListViewItem ($AutoStartFiles2 [$i]&"|"&RegRead ($AutoRegDir1,$AutoStartFiles2 [$i])&"|"&"Registry (HKCU:Run)",$ListView1)
    Next

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

    For $i = 1 To UBound ($AutoStartFiles3,1)-1
    GUICtrlCreateListViewItem ($AutoStartFiles3 [$i]&"|"&RegRead ($AutoRegDir2,$AutoStartFiles3 [$i])&"|"&"Registry (HKLM:Run)",$ListView1)
    Next

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $ListView_Data = StringSplit (GUICtrlRead(GUICtrlRead($ListView1),2),"|")
    If $ListView_Data [3] = @StartupDir Then
    FileDelete (@StartupDir&"\"&$ListView_Data [1])
    _GUICtrlListView_DeleteItem ($ListView1,GUICtrlRead($ListView1)-$ListView1-1)
    EndIf
    If $ListView_Data [3] = "Registry (HKCU:Run)" Then
    RegDelete ($AutoRegDir1,$ListView_Data [1])
    _GUICtrlListView_DeleteItem ($ListView1,GUICtrlRead($ListView1)-$ListView1-1)
    EndIf
    If $ListView_Data [3] = "Registry (HKLM:Run)" Then
    RegDelete ($AutoRegDir2,$ListView_Data [1])
    _GUICtrlListView_DeleteItem ($ListView1,GUICtrlRead($ListView1)-$ListView1-1)
    EndIf
    Case $Button3
    Exit
    EndSwitch
    WEnd

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

    Func _RegReadToArray ($Reg_Path)
    Dim $Return [1] = [""]
    For $value = 1 To 100
    $read_value = RegEnumVal ($Reg_Path,$value)
    If @error Then ExitLoop
    _ArrayAdd ($Return,$read_value)
    Next
    Return $Return
    EndFunc

    [/autoit]