LiquidNitrogen Posted January 15, 2012 Share Posted January 15, 2012 (edited) Not Too Advanced but Useful. expandcollapse popup#include <Array.au3> #include <GuiListView.au3> #include <GuiMenu.au3> #include <Process.au3> #include <GUIConstants.au3> #include <File.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #NoTrayIcon Main() SetPriority() Func Main() GUIDelete() AutoItSetOption("ExpandVarStrings", 1) $Main = GUICreate("Process Manager", 200, 310, -1, -1) Global $ProcessList = GUICtrlCreateListView("", 0, 0, 200, 290) ;File Menu $FileMenu = GUICtrlCreateMenu("File") $FileNew = GUICtrlCreateMenuItem("New Process", $FileMenu) $Exit = GUICtrlCreateMenuItem("Exit", $FileMenu) ;Options Menu $OptionsMenu = GUICtrlCreateMenu("Options") $RestartExplorer = GUICtrlCreateMenuItem("Restart Explorer", $OptionsMenu) $OpenNotepad = GUICtrlCreateMenuItem("Open Notepad", $OptionsMenu) ;Power Options(Sub Menu) $PowerOptionsSub = GUICtrlCreateMenu("Power Options", $OptionsMenu) $PowerShutdown = GUICtrlCreateMenuItem("Shutdown", $PowerOptionsSub) $PowerReboot = GUICtrlCreateMenuItem("Reboot", $PowerOptionsSub) $PowerLogoff = GUICtrlCreateMenuItem("Log Off", $PowerOptionsSub) ;Help Menu $HelpMenu = GUICtrlCreateMenu("Help") $About = GUICtrlCreateMenuItem("About", $HelpMenu) $ContextMenu = GUICtrlCreateContextMenu($ProcessList) $ContextEndProcess = GUICtrlCreateMenuItem("End Process", $ContextMenu) $ContextSetPriority = GUICtrlCreateMenuItem("Set Priority", $ContextMenu) $ContextMemInfo = GUICtrlCreateMenuItem("Memory Info", $ContextMenu) ;Display Array in ListView() Global $Process = ProcessList() _ArrayDelete($Process, 0) _ArrayDelete($Process, 0) _ArrayDelete($Process, 0) _GUICtrlListView_SetItemCount($ProcessList, $Process[0][0]) _GUICtrlListView_InsertColumn($ProcessList, 0, "Process", 120, 2) _GUICtrlListView_InsertColumn($ProcessList, 1, "PID", 60, 2) _GUICtrlListView_AddArray($ProcessList, $Process) GUISetState() While 1 Switch GUIGetMsg() Case -3 Exit Case $ContextEndProcess _GUICtrlListView_BeginUpdate($ProcessList) $sIndex = _GUICtrlListView_GetSelectionMark($ProcessList) $SelectedProcess = $Process[$sIndex][0] ProcessClose($SelectedProcess) _GUICtrlListView_EndUpdate($ProcessList) Main() Case $FileNew $file = InputBox("New Process", "Enter a Valid File/Process to Open.") If $file = "" Then Main() Else $RunCheck = Run($file) WinActivate($file) If $RunCheck = 0 Then MsgBox(16, "Error!", 'Process Manager Cannot Find "$file$". Make Sure That File Exists and That You Have Type it In Correctly.') GUIDelete() Main() EndIf EndIf Case $ContextSetPriority SetPriority() Case $RestartExplorer ProcessClose("explorer.exe") ProcessWaitClose("explorer.exe") Run("explorer.exe") GUIDelete() Main() Case $OpenNotepad Run("notepad.exe") GUIDelete() Main() Case $PowerShutdown $Confirm = MsgBox(35, "Confirm Shutdown", "All Applications Will Close and The Computer Will Shutdown. Do You Want to Continue?") If $Confirm = 6 Then Shutdown(9) Exit EndIf Case $PowerReboot $Confirm = MsgBox(35, "Confirm Reboot", "All Applications Will Close and The Computer Will Reboot. Do You Want to Continue?") If $Confirm = 6 Then Shutdown(2) Exit EndIf Case $PowerLogoff $Confirm = MsgBox(35, "Confirm Log Off", "All Applications Will Close and The Current User Will be Logged Off. Do You Want to Continue?") If $Confirm = 6 Then Shutdown(0) Exit EndIf Case $ContextMemInfo MsgBox(0, "Not Finish", "Still Working on This!") ;$sIndex = _GUICtrlListView_GetSelectionMark($ProcessList) ;$MemInfo = ProcessGetStats($Process[$sIndex][0]) ;MsgBox(0, "Memory Info", "Process: " &$Process[$sIndex][0] & @LF & @LF & "Working Set Size: " &$MemInfo & " KB" & @LF & "Peak Working Size: " &$MemInfo & " KB") Case $About MsgBox(0, "About Process Manager", "Process Manager"& @LF & @LF & "Version: 1.0" & @LF & "Created By: ReaperX") Case $Exit Exit EndSwitch WEnd EndFunc Func SetPriority() AutoItSetOption("ExpandVarStrings", 1) Global $ProcessList, $Process $wTitle = GUICreate("Set Priority", 180, 200, -1, -1) $sIndex = _GUICtrlListView_GetSelectionMark($ProcessList) $PID = $Process[$sIndex][1] $PNAME = $Process[$sIndex][0] $sPriority = _ProcessGetPriority($PID) If $sPriority = -1 Then MsgBox(16, "Error!", 'The Current Priority for "$PNAME$" Couldnt Be Detected So it Cannot Be Changed.') GUIDelete() Main() EndIf ;Display Current Priority in a Label for The Selected Process If $sPriority = 0 Then $CurrentP = "Idle/Low" If $sPriority = 1 Then $CurrentP = "Below Normal" If $sPriority = 2 Then $CurrentP = "Normal" If $sPriority = 3 Then $CurrentP = "Above Normal" If $sPriority = 4 Then $CurrentP = "High" If $sPriority = 5 Then $CurrentP = "Realtime" $PriorityLabel = GUICtrlCreateLabel("Current Priority: " & $CurrentP, 30, 10) $SetTo0 = GUICtrlCreateRadio("Idle/Low", 50, 30, 150) If $sPriority = 0 Then GUICtrlSetState($SetTo0, $GUI_DISABLE) $SetTo1 = GUICtrlCreateRadio("Below Normal", 50, 50, 150) If $sPriority = 1 Then GUICtrlSetState($SetTo1, $GUI_DISABLE) $SetTo2 = GUICtrlCreateRadio("Normal", 50, 70, 150) If $sPriority = 2 Then GUICtrlSetState($SetTo2, $GUI_DISABLE) $SetTo3 = GUICtrlCreateRadio("Above Normal", 50, 90, 150) If $sPriority = 3 Then GUICtrlSetState($SetTo3, $GUI_DISABLE) $SetTo4 = GUICtrlCreateRadio("High", 50, 110, 150) If $sPriority = 4 Then GUICtrlSetState($SetTo4, $GUI_DISABLE) $SetTo5 = GUICtrlCreateRadio("Realtime", 50, 130, 150) If $sPriority = 5 Then GUICtrlSetState($SetTo5, $GUI_DISABLE) $ApplyButton = GUICtrlCreateButton("Apply", 30, 160, 50, 30) $CancelButton = GUICtrlCreateButton("Cancel", 90, 160, 50, 30) GUISetState() While 1 $Msg = GUIGetMsg() Switch $Msg Case $ApplyButton ;Check Which Radio Button Is Checked to Set the Priority Selected for ;Selected Process If BitAND(GUICtrlRead($SetTo0), $GUI_CHECKED) = $GUI_CHECKED Then ProcessSetPriority($PID, 0) MsgBox(0, $PNAME, "Priority Set to Idle/Low") GUIDelete() Main() EndIf If BitAND(GUICtrlRead($SetTo1), $GUI_CHECKED) = $GUI_CHECKED Then ProcessSetPriority($PID, 1) MsgBox(0, $PNAME, "Priority Set to Below Normal") GUIDelete() Main() EndIf If BitAND(GUICtrlRead($SetTo2), $GUI_CHECKED) = $GUI_CHECKED Then ProcessSetPriority($PID, 2) MsgBox(0, $PNAME, "Priority Set to Normal") GUIDelete() Main() EndIf If BitAND(GUICtrlRead($SetTo3), $GUI_CHECKED) = $GUI_CHECKED Then ProcessSetPriority($PID, 3) MsgBox(0, $PNAME, "Priority Set to Above Normal") GUIDelete() Main() EndIf If BitAND(GUICtrlRead($SetTo4), $GUI_CHECKED) = $GUI_CHECKED Then ProcessSetPriority($PID, 4) MsgBox(0, $PNAME, "Priority Set to High") GUIDelete() Main() EndIf If BitAND(GUICtrlRead($SetTo5), $GUI_CHECKED) = $GUI_CHECKED Then $Confirm = MsgBox(52, "Caution!", 'Setting a Process Priority to "Realtime" May Cause System Instability. Are You Sure You Want to Continue?') If $Confirm = 6 Then ProcessSetPriority($PID, 5) MsgBox(0, $PNAME, "Priority Set to Realtime") Main() EndIf If $Confirm = 7 Then GUIDelete() Main() EndIf EndIf Case $CancelButton GUIDelete() Main() EndSwitch WEnd EndFunc Edited January 15, 2012 by ReaperX Formerly ReaperX Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now