Hi!
Hier dein etwas veränderte Code damit es auch zum Scrollen geht!
Wenn du den Balken nicht sehen willst dann must du halt wieder die GUICtrlCreateListView etwas vergrößern.
Bei deinem Script hast du die GUI in der Funktion erstellt und wieder glöscht.
Mit @SW_HIDDE und @SW_SHOW kannst du sie aus und einblenden und musst sie nicht jedesmal erstellen und löschen lassen.
LG
Concara
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>
#include <GUIListView.au3>
If Not FileExists(@ScriptDir & "\settings.ini") Then
$hotkey = InputBox("HotKey Auswahl", "Gebe deinen gewünschten HotKey ein", "t"," M1"); Default Hotkey ist t " M1" man muss was eingeben kann aber nur einen Buchstaben eintragen
If $hotkey = "" Then Exit ; Wenn jemand auf Abbrechen klickt wird das Script beendet
IniWrite(@ScriptDir & "\settings.ini", "Hotkey", "Selected Hotkey", $hotkey)
Else
$inihotkey = IniRead(@ScriptDir & "\settings.ini", "Hotkey", "Selected Hotkey", "")
EndIf
$inihotkey = IniRead(@ScriptDir & "\settings.ini", "Hotkey", "Selected Hotkey", "")
[/autoit] [autoit][/autoit] [autoit]HotKeySet($inihotkey, "_TabList")
HotKeySet("{ESC}", "_exit")
Global $gui = GUICreate("TaskManager Light", 205, 400, -3, 1, $WS_OVERLAPPEDWINDOW)
;BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS));
;Warum du das alles an deine GUICreate gehängt hast weiß ich nicht!? Ich würde erst dann was eintragen wenn du es wirklich brauchst.
Global $on = True
Global $MenuItem1 = GUICtrlCreateMenu("Menü")
Global $MenuItem2 = GUICtrlCreateMenuItem("Prozess Schließen", $MenuItem1)
Global $MenuItem3 = GUICtrlCreateMenuItem("Prozesse Updaten", $MenuItem1)
Global $ListView1 = GUICtrlCreateListView("Prozesse", 0, 0, 200, 380, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_CHECKBOXES))
GUICtrlSetResizing (-1,$GUI_DOCKBOTTOM)
_ShowActiveProcesses($ListView1)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $MenuItem2
_ProcessKill()
Case $MenuItem3
_ShowActiveProcesses($ListView1)
EndSwitch
WEnd
Func _TabList()
If $on = True Then
_ShowActiveProcesses($ListView1)
GUICtrlSendMsg($ListView1, $LVM_SETCOLUMNWIDTH, 0, -1)
GUISetState(@SW_SHOW)
$on = False
ElseIf $on = False Then
GUISetState(@SW_HIDE)
$on = True
EndIf
EndFunc
Func _ShowActiveProcesses($id)
_GUICtrlListView_DeleteAllItems($ListView1)
Local $lst = ProcessList()
For $i = 1 To $lst[0][0]
GUICtrlCreateListViewItem($lst[$i][0], $id)
Next
EndFunc
Func _ProcessKill()
$LVItemCount = _GUICtrlListView_GetItemCount($ListView1)
For $i = $LVItemCount To 0 Step -1
$LVItemGetChecked = _GUICtrlListView_GetItemChecked($ListView1, $i)
If $LVItemGetChecked = True Then
$PIDName = _GUICtrlListView_GetItemText($ListView1, $i)
ProcessClose($PIDName)
_GUICtrlListView_DeleteItem($ListView1, $i)
EndIf
Next
EndFunc
Func _exit()
Exit
EndFunc
;Diese Funktion müßtest du dir noch genauer überlegen!
;z.b. "alte Processliste" "neue Processliste" "dein Liste nach dem Vergleich"
; aaa.exe aaa.exe kein unterschied also aaa.exe
; aaa.exe bbb.exe unterscheid also wird ein item angehängt aaa.exe
; bbb.exe ccc.exe unterscheid also wird ein item angehängt bbbexe
; bbb.exe ddd.exe unterscheid also wird ein item angehängt bbb.exe
; ccc.exe ccc.exe
; ddd.exe ddd.exe
; bbb.exe
; ccc.exe
; ddd.exe
;~ Func _Update($id)
;~ Local $lst = ProcessList()
;~ For $i = 1 To $lst[0][0]
;~ $PIDExists = _GUICtrlListView_GetItemText($ListView1, $i-1)
;~ If $PIDExists <> $lst[$i][0] Then
;~ GUICtrlCreateListViewItem($lst[$i][0], $id)
;~ EndIf
;~ Next
;~ EndFunc