gageteg Posted July 20, 2011 Posted July 20, 2011 I am having to make a GUI friendly command for ending processes or starting and stopping services remotely using WMI calls instead of 3rd party apps. The issue I am running into is when I first run the sub routine that generates output to an Edit box it works fine. When i run the function again it initially looks okay but as soon as i mouse over or give the edit box focus it reverts to the previous data, the correct data is being written to the console with a console write. I am sure i am not seeing something.. expandcollapse popup#include <GuiConstantsEx.au3> #include <WindowsConstants.au3> #include <EditConstants.au3> #include <StaticConstants.au3> #Include <GuiEdit.au3> global $computername, $Output $computername = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName","ComputerName") GuiCreate("Remote Process Killer",400,400) GuiSetState(@SW_SHOW) $inputbox = GUICtrlCreateInput($computername,10,10) $button1 = GuiCtrlCreateButton("reset",300,50,50,20) $button2 = GuiCtrlCreateButton("PSLIST",300,10,50,20) While 1 $msg = GUIGetMsg() Select Case $msg = $Gui_Event_close exit Case $msg = $button2 $Output = "" CreateList() Case $msg = $button1 MsgBox(1,"Buttontest",$msg) EndSelect Wend Func CreateList() $computername = GuiCtrlRead($inputbox) $Output = "*******************************************************" ConsoleWrite($Output) $check = ping($computername) $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $colItems = "" $strComputer = $computername $Output="" $Output = $Output & "Computer: " & $strComputer & @CRLF $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Process", "WQL", _ $wbemFlagReturnImmediately + $wbemFlagForwardOnly) If IsObj($colItems) then For $objItem In $colItems $Output = $Output & $objItem.Description & " - " & $objItem.ProcessId & @CRLF Next Else Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_Process" ) Endif $control = GuiCtrlCreateEdit($Output,10,50,200,300) ConsoleWrite($Output) EndFunc
BrewManNH Posted July 20, 2011 Posted July 20, 2011 You should probably use GUICtrlSetData for your editbox rather than making a new one. You have 2 overlapping editboxes instead of one, and you're seeing one or the other because of this. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
gageteg Posted July 20, 2011 Author Posted July 20, 2011 Awesome that worked i just moved the Edit box creation to the top right after i created buttons..
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