JSThePatriot Posted August 8, 2006 Share Posted August 8, 2006 Okay, JS I used your examples instead of using them in a different way because I was on a timer to get it done. (I'm going on a Vacation). And search for big_daddy, for his add-remove programs list.Ah okay, he is using the registry, and even his code may have inspired someone to create the code that I found the registry key through.You really dont need my _ComputerGetSoftware() UDF since it is basically the same deal with the Programs tab.Well I am glad I was able to get the examples up for you so you could use them, and I look forward to when you get back from your Vacation and are able to spend more time on this wonderful application.Have fun on vacation!,JS AutoIt Links File-String Hash Plugin Updated! 04-02-2008 Plugins have been discontinued. I just found out. ComputerGetInfo UDF's Updated! 11-23-2006 External Links Vortex Revolutions Engineer / Inventor (Web, Desktop, and Mobile Applications, Hardware Gizmos, Consulting, and more) Link to comment Share on other sites More sharing options...
FuryCell Posted August 8, 2006 Share Posted August 8, 2006 (edited) Very cool. provides access to quite a bit of useful information. Edited August 30, 2006 by SolidSnake HKTunes:Softpedia | GoogleCodeLyricToy:Softpedia | GoogleCodeRCTunes:Softpedia | GoogleCodeMichtaToolsProgrammer n. - An ingenious device that turns caffeine into code. Link to comment Share on other sites More sharing options...
Skrip Posted August 9, 2006 Author Share Posted August 9, 2006 Have fun on vacation!Thanks, but we are not going anymore. We were gunna go visit reletives but they're coming here. So, I can also continue programming.---Thanks solid snake. [left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left] Link to comment Share on other sites More sharing options...
Skrip Posted August 10, 2006 Author Share Posted August 10, 2006 Anybody have any ideas on what else to add? (Besides errors I need to fix) [left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left] Link to comment Share on other sites More sharing options...
ptrex Posted August 10, 2006 Share Posted August 10, 2006 @filestormIf you run out of inspiration. Install this and see what you are missing. SIW System Information for WindowsThis will let you go on for a couple of months (years ?!) Regardsptrex Contributions :Firewall Log Analyzer for XP - Creating COM objects without a need of DLL's - UPnP support in AU3Crystal Reports Viewer - PDFCreator in AutoIT - Duplicate File FinderSQLite3 Database functionality - USB Monitoring - Reading Excel using SQLRun Au3 as a Windows Service - File Monitor - Embedded Flash PlayerDynamic Functions - Control Panel Applets - Digital Signing Code - Excel Grid In AutoIT - Constants for Special Folders in WindowsRead data from Any Windows Edit Control - SOAP and Web Services in AutoIT - Barcode Printing Using PS - AU3 on LightTD WebserverMS LogParser SQL Engine in AutoIT - ImageMagick Image Processing - Converter @ Dec - Hex - Bin -Email Address Encoder - MSI Editor - SNMP - MIB ProtocolFinancial Functions UDF - Set ACL Permissions - Syntax HighLighter for AU3ADOR.RecordSet approach - Real OCR - HTTP Disk - PDF Reader Personal Worldclock - MS Indexing Engine - Printing ControlsGuiListView - Navigation (break the 4000 Limit barrier) - Registration Free COM DLL Distribution - Update - WinRM SMART Analysis - COM Object Browser - Excel PivotTable Object - VLC Media Player - Windows LogOnOff Gui -Extract Data from Outlook to Word & Excel - Analyze Event ID 4226 - DotNet Compiler Wrapper - Powershell_COM - New Link to comment Share on other sites More sharing options...
Skrip Posted August 10, 2006 Author Share Posted August 10, 2006 Holy Shit... (sorry kids) Wow, That'll keep me busy! I'll release an update when I get the sound +vid card problems fixed. [left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left] Link to comment Share on other sites More sharing options...
JSThePatriot Posted August 10, 2006 Share Posted August 10, 2006 (edited) Holy Shit... (sorry kids)Wow, That'll keep me busy!I'll release an update when I get the sound +vid card problems fixed.Yea someone showed me that as well (or a similar one). It is alot of work to get up to the amount of data those utilities provide. I am actually going to use my UDF Library (once complete) to create a program that will gather computer information, and add it to a database, and then it can go back and re-scan a system to alert me of changes that have been made, log them and allow me to review them to be sure whether they are good or bad.Edit: Added LinkJS Edited August 10, 2006 by JSThePatriot AutoIt Links File-String Hash Plugin Updated! 04-02-2008 Plugins have been discontinued. I just found out. ComputerGetInfo UDF's Updated! 11-23-2006 External Links Vortex Revolutions Engineer / Inventor (Web, Desktop, and Mobile Applications, Hardware Gizmos, Consulting, and more) Link to comment Share on other sites More sharing options...
FeReNGi Posted August 10, 2006 Share Posted August 10, 2006 (edited) Have also a look to this already made AutoIT script :http://www.autoitscript.com/forum/index.php?showtopic=16854and this one also http://www.autoitscript.com/forum/index.ph...p;hl=servicespe to learn to work with listviews.....maybe even this one http://www.911cd.net/forums//index.php?showtopic=13372 :-) Edited August 10, 2006 by FeReNGi ServicesPE|LoadVMDK Link to comment Share on other sites More sharing options...
Skrip Posted August 10, 2006 Author Share Posted August 10, 2006 NEW RELEASE: -Fixes Sound Card Information -Fixes Video Card Information --- Thank you script-o-matic! JS, thats a good idea. [left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left] Link to comment Share on other sites More sharing options...
powaking Posted August 30, 2006 Share Posted August 30, 2006 (edited) Hope you don't mind but I extracted your Programs section and made it a single app. I added the ability to read remote registry keys for installed apps. What I'm finding is when run against a remote machine I'm getting far too few of a list of installed apps than if I were to run the app locally on the same machine (for instance if I run it against a desktop here it shows 35 objects yet if I run the app on the desktop then it shows 159 objects). Not sure what I'm missing. I'm using the Readkeys function instead of the UDF. I have the compinfo.au3 included but I'm not using any of the UDFs (yet). Any assistance? Thanks expandcollapse popup#include <CompInfo.au3> #include <Inet.au3> #include <File.au3> #include <Constants.au3> #include <GuiStatusBar.au3> #include <GUIConstants.au3> #include <GuiListView.au3> #include <process.au3> #NoTrayIcon GUISetIcon("install.ico") Dim $Software Dim $Key = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" Dim $Title = "Display Uninstall" Dim $EnableList = 1 Dim $RemoteComputer Local $a_PartsRightEdge[2] = [344,-1] Local $a_PartsText[2] = ["","v .1 2006"] $SelectedCount = 0 Global $wait $mainWindows = GUICreate("Software Uninstaller", 490, 391, -1, -1) GUICtrlCreateIcon("shell32.dll", 162, 23, 17, 32, 32) $Progress1 = GUICtrlCreateProgress(16, 340, 457, 20,$PBS_SMOOTH) GUICtrlSetState($Progress1, $GUI_HIDE) $ulist = GUICtrlCreateListView(" |Display Name|Key Item", 16, 64, 457, 269, BitOR($LVS_NOSORTHEADER, $LVS_REPORT, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES)) GUICtrlSetResizing($ulist, $GUI_DOCKBORDERS) _GUICtrlListViewSetColumnWidth($ulist, 0, $LVSCW_AUTOSIZE_USEHEADER) _GUICtrlListViewSetColumnWidth($ulist, 1, 310) _GUICtrlListViewSetColumnWidth($ulist, 2, 310) $but1 = GUICtrlCreateButton("Refresh List", 74, 32, 100, 25, $BS_DEFPUSHBUTTON) GUICtrlSetResizing($but1, $GUI_DOCKALL) $but2 = GUICtrlCreateButton("Uninstall Program", 175, 32, 100, 25) GUICtrlSetResizing($but2, $GUI_DOCKALL) GUICtrlSetState($but2, $GUI_DISABLE) $chkbox = GUICtrlCreateCheckbox("Enable\Disable Silent Uninstall", 300, 34) GUICtrlSetResizing($chkbox, $GUI_DOCKALL) $Label1 = GUICtrlCreateLabel("Remote Computer (Leave blank for local list): ", 70, 10, 230, 20) GUICtrlSetResizing($Label1, $GUI_DOCKALL) $Input1 = GUICtrlCreateInput("", 290, 8, 180, 20, BitOR($ES_LEFT, $ES_AUTOHSCROLL, $ES_UPPERCASE)) GUICtrlSetResizing($Input1, $GUI_DOCKALL) $StatusBar1 = _GuiCtrlStatusBarCreate($mainWindows, $a_PartsRightEdge, $a_PartsText, $SBT_TOOLTIPS) _GuiCtrlStatusBarSetMinHeight($StatusBar1, 15) GUICtrlSetResizing($Progress1, $GUI_DOCKSTATEBAR) GUISetState() While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE _Selfdelete() Exit Case $MSG = $but1 _GUICtrlStatusBarSetIcon($StatusBar1, 0,"shell32.dll", 171) GUICtrlSetState($Progress1, $GUI_SHOW) _GUICtrlListViewDeleteAllItems ($ulist) $RemoteComputer = StringReplace(GUICtrlRead($Input1), '\', '') $List = ReadKeys($RemoteComputer) GUICtrlSetData($Input1, '') GUICtrlSetData($progress1,0) GUICtrlSetState($Progress1, $GUI_HIDE) Case $MSG = $but2 _GUICtrlStatusBarSetIcon($StatusBar1, 0, "shell32.dll", 162) $ListIndices = _GUICtrlListViewGetSelectedIndices ($ulist, 1) If $ListIndices == $LV_ERR Then ContinueLoop If $ListIndices[0] > 1 Then GUICtrlSetState($Progress1, $GUI_SHOW) Opt('RunErrorsFatal', 0) $Count = 0 ControlListView('', '', $ulist, "SelectClear") For $x = $ListIndices[0] To 1 Step - 1 $Count += 1 $SelectKey = '' GUICtrlSetData($Progress1, Int(($Count / $ListIndices[0]) * 100)) $ListInfo = StringSplit($List[$ListIndices[$x]], '|');ListInfo[0] = 5, ListInfo[1] = Display Name, ListInfo[2] = Regkey Name, ListInfo[3] = Icon, ListInfo[4] = QuietUninstallString, ListInfo[5] = UnistallString If GUICtrlRead($chkbox) == $GUI_CHECKED Or $RemoteComputer <> '' Then $SelectKey = $ListInfo[4] If $SelectKey == '' Then $SelectKey = StringReplace($ListInfo[5], '/i', '/X', 1) & ' /qn /norestart' _GuiCtrlStatusBarSetText ($StatusBar1, ' Uninstalling Program ' & $Count & ' Of ' & $ListIndices[0] & ' ' & $ListInfo[1]) EndIf If GUICtrlRead($chkbox) == $GUI_UNCHECKED And $SelectKey == '' Then $SelectKey = $ListInfo[5] _GuiCtrlStatusBarSetText ($StatusBar1, ' Uninstalling Program ' & $Count & ' Of ' & $ListIndices[0] & ' ' & $ListInfo[1]) EndIf If $RemoteComputer == '' Then $Pid = Run($SelectKey, @WorkingDir, @SW_SHOW) Else $Pid = Run('BeyondExecv2.exe ' & StringMid($RemoteComputer, 1, StringInStr($RemoteComputer, '\', 0, -1) - 1) & ' -s -n -r ' & $SelectKey, @WorkingDir, @SW_HIDE) EndIf If @error Then _FileWriteLog(@ScriptDir & '\UninstallFail.Log', $ListInfo[1] & ' | ' & $SelectKey) EndIf If Not @error And $RemoteComputer <> "" Then GUISetCursor(15, 1);set cursor to wait While ProcessExists($Pid) Sleep(50) WEnd GUISetCursor(2, 1);set cursor to arrow ;ProcessWaitClose($Pid) SetError(0) RegRead($RemoteComputer & $Key & "\" & $ListInfo[2], 'UninstallString') If @error == 1 Then _GUICtrlListViewDeleteItem ($ulist, $ListIndices[$x]) _ArrayDelete($List, $ListIndices[$x]) EndIf Next Opt('RunErrorsFatal', 1) If $ListIndices[0] > 1 Then GUICtrlSetState($Progress1, $GUI_HIDE) _GUICtrlStatusBarSetIcon($StatusBar1, 0,"shell32.dll", 171) If $RemoteComputer == '' Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Local Computer: ' & _GUICtrlListViewGetItemCount ($ulist) & ' Objects, ' & _GUICtrlListViewGetSelectedCount ($ulist) & ' Objects Selected') Else _GuiCtrlStatusBarSetText ($StatusBar1, ' Remote Computer: ' & '"' & StringReplace($RemoteComputer, '\', '') & '"' & ', ' & _GUICtrlListViewGetItemCount ($ulist) & ' Objects, ' _ & _GUICtrlListViewGetSelectedCount ($ulist) & ' Objects Selected') EndIf GUICtrlSetState($but2, $GUI_DISABLE) Case $MSG = $GUI_EVENT_CLOSE Exit ; resize columns based on window size Case $MSG = $GUI_EVENT_MINIMIZE $width = ControlGetPos($mainWindows, "", $ulist) $Resize = $width[2] - _GUICtrlListViewGetColumnWidth ($ulist, 0) _GUICtrlListViewSetColumnWidth ($ulist, 1, $Resize / 2.1) _GUICtrlListViewSetColumnWidth ($ulist, 2, $Resize / 2.1) _GuiCtrlStatusBarResize ($StatusBar1) Case $MSG = $GUI_EVENT_MAXIMIZE $width = ControlGetPos($mainWindows, "", $ulist) $Resize = $width[2] - _GUICtrlListViewGetColumnWidth ($ulist, 0) _GUICtrlListViewSetColumnWidth ($ulist, 1, $Resize / 2.1) _GUICtrlListViewSetColumnWidth ($ulist, 2, $Resize / 2.1) _GuiCtrlStatusBarResize ($StatusBar1) Case $MSG = $GUI_EVENT_RESIZED $width = ControlGetPos($mainWindows, "", $ulist) $Resize = $width[2] - _GUICtrlListViewGetColumnWidth ($ulist, 0) _GUICtrlListViewSetColumnWidth ($ulist, 1, $Resize / 2.1) _GUICtrlListViewSetColumnWidth ($ulist, 2, $Resize / 2.1) _GuiCtrlStatusBarResize ($StatusBar1) Case $MSG = $GUI_EVENT_RESTORE $width = ControlGetPos($mainWindows, "", $ulist) $Resize = $width[2] - _GUICtrlListViewGetColumnWidth ($ulist, 0) _GUICtrlListViewSetColumnWidth ($ulist, 1, $Resize / 2.1) _GUICtrlListViewSetColumnWidth ($ulist, 2, $Resize / 2.1) _GuiCtrlStatusBarResize ($StatusBar1) Case Else If $EnableList And $SelectedCount == 1 Then $EnableList = 0 GUICtrlSetState($but2, $GUI_ENABLE);enable uninstall button EndIf If Not $EnableList And $SelectedCount == 0 Then $EnableList = 1 GUICtrlSetState($but2, $GUI_DISABLE);disable uninstall button EndIf If $SelectedCount <> _GUICtrlListViewGetSelectedCount ($ulist) Then $SelectedCount = _GUICtrlListViewGetSelectedCount ($ulist) If $RemoteComputer == '' Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Local Computer: ' & _GUICtrlListViewGetItemCount ($ulist) & ' Objects, ' & _GUICtrlListViewGetSelectedCount ($ulist) & ' Objects Selected') Else _GuiCtrlStatusBarSetText ($StatusBar1, ' Remote Computer: ' & '"' & StringReplace($RemoteComputer, '\', '') & '"' & ', ' & _GUICtrlListViewGetItemCount ($ulist) & ' Objects, ' _ & _GUICtrlListViewGetSelectedCount ($ulist) & ' Objects Selected') EndIf EndIf EndSelect WEnd Func ReadKeys($s_RemoteComputer = '') GUISetCursor(15, 1);set cursor to wait Local $even = 1 Local $Count = 1 Dim $avArray[1] If $s_RemoteComputer <> '' Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Reading Remote Registry Keys... Please Wait....') If StringMid($s_RemoteComputer, 1, 1) <> '\' Or StringMid($s_RemoteComputer, 2, 1) <> '\' Or StringRight($s_RemoteComputer, 1) <> '\' Then $s_RemoteComputer = '\\' & StringReplace($s_RemoteComputer, '\', '') & '\' EndIf Else _GuiCtrlStatusBarSetText ($StatusBar1, ' Reading Registry Keys, Please Wait....') EndIf Local Const $regkey = $s_RemoteComputer & 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall' While 1 $skey = RegEnumKey($regkey, $Count) If @error <> 0 Then ExitLoop $line = RegRead($regkey & '\' & $skey, 'Displayname') $line = StringReplace($line, ' (remove only)', '') If $line == '' Then $line = "No Display Name" $SilentUnistall = RegRead($regkey & '\' & $skey, 'QuietUninstallString') $Unistall = RegRead($regkey & '\' & $skey, 'UninstallString') $Icon = RegRead($regkey & '\' & $skey, 'DisplayIcon') $Icon = StringReplace(StringMid($Icon, 1, StringInStr($Icon, ',') - 1), '"', '') If $Icon = "" Then $Icon = "SHELL32.DLL" If $SilentUnistall <> '' Or $Unistall <> '' Then If (GUICtrlRead($chkbox) == $GUI_CHECKED And $SilentUnistall <> '') Or ($s_RemoteComputer <> '' And $SilentUnistall <> '') Then $avArray[UBound($avArray) - 1] = $line & '|' & $skey & '|' & $Icon & '|' & $SilentUnistall & '|' ReDim $avArray[UBound($avArray) + 1] ElseIf ($s_RemoteComputer == '' And GUICtrlRead($chkbox) == $GUI_UNCHECKED) Or (GUICtrlRead($chkbox) == $GUI_CHECKED And StringInStr($Unistall, 'msiexec.exe')) Or ($s_RemoteComputer <> '' And StringInStr($Unistall, 'msiexec.exe')) Then $avArray[UBound($avArray) - 1] = $line & '|' & $skey & '|' & $Icon & '|' & $SilentUnistall & '|' & $Unistall ReDim $avArray[UBound($avArray) + 1] EndIf EndIf $Count += 1 WEnd If (UBound($avArray) - 1) == 0 Then If $RemoteComputer == '' Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Local Computer: ' & _GUICtrlListViewGetItemCount ($ulist) & ' Objects, ' & _GUICtrlListViewGetSelectedCount ($ulist) & ' Objects Selected') If $RemoteComputer <> '' And _GUICtrlListViewGetItemCount ($ulist) Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Remote Computer: ' & '"' & StringReplace($RemoteComputer, '\', '') & '"' & ', ' & _GUICtrlListViewGetItemCount ($ulist) & ' Objects, ' _ & _GUICtrlListViewGetSelectedCount ($ulist) & ' Objects Selected') $RemoteComputer = '\\' & $RemoteComputer & '\' ElseIf $RemoteComputer <> '' And _GUICtrlListViewGetItemCount ($ulist) == 0 Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Could Not Connect To Remote Computer ' & '"' & StringReplace($RemoteComputer, '\', '') & '"') $RemoteComputer = '' EndIf Else ReDim $avArray[UBound($avArray) - 1] _ArraySort($avArray) For $i = 0 To UBound($avArray) - 1 GUICtrlSetData($Progress1, Int(($i / (UBound($avArray) - 1)) * 100)) $Item = StringSplit($avArray[$i], '|') Local $lv_item = GUICtrlCreateListViewItem("" & "|" & $Item[1] & "|" & $Item[2], $ulist) GUICtrlSetImage(-1, $Item[3]) If $even Then $even = 0 GUICtrlSetBkColor($lv_item, 0x5CACEE) Else GUICtrlSetBkColor($lv_item, 0x9FB6CD) $even = 1 EndIf Sleep(15) Next Sleep(1000) If $RemoteComputer == '' Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Local Computer: ' & _GUICtrlListViewGetItemCount ($ulist) & ' Objects, ' & _GUICtrlListViewGetSelectedCount ($ulist) & ' Objects Selected') If $RemoteComputer <> '' And _GUICtrlListViewGetItemCount ($ulist) Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Remote Computer: ' & '"' & StringReplace($RemoteComputer, '\', '') & '"' & ', ' & _GUICtrlListViewGetItemCount ($ulist) & ' Objects, ' _ & _GUICtrlListViewGetSelectedCount ($ulist) & ' Objects Selected') $RemoteComputer = '\\' & $RemoteComputer & '\' ElseIf $RemoteComputer <> '' And _GUICtrlListViewGetItemCount ($ulist) == 0 Then _GuiCtrlStatusBarSetText ($StatusBar1, ' Could Not Connect To Remote Computer ' & '"' & StringReplace($RemoteComputer, '\', '') & '"') $RemoteComputer = '' EndIf EndIf GUISetCursor(2, 1);set cursor to arrow Return ($avArray) EndFunc;==>ReadKeys Edited August 30, 2006 by powaking Link to comment Share on other sites More sharing options...
comart Posted August 30, 2006 Share Posted August 30, 2006 Nice! Keep up ur good work! Add more features close ur eyes, don't mind other softwares focus on our AutoIt code >> AutoMee << NICE AutoIt UTILITY THAT I CAN'T LIVE WITHOUT ! Link to comment Share on other sites More sharing options...
Valuater Posted August 30, 2006 Share Posted August 30, 2006 Very Nice!!! 8) Link to comment Share on other sites More sharing options...
FeReNGi Posted December 5, 2006 Share Posted December 5, 2006 Any updates on this project ? ServicesPE|LoadVMDK Link to comment Share on other sites More sharing options...
Skrip Posted December 5, 2006 Author Share Posted December 5, 2006 I've added / Done some things with it. I'm getting less homework, ect...So i'll probably get into working on it again. (2000 lines of code gets discouraging sometimes....) [left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left] Link to comment Share on other sites More sharing options...
Glyph Posted December 6, 2006 Share Posted December 6, 2006 (edited) Mind if i pointout that " IP Adress " is actually Internet Protocol address... not " Internet Proxy (IP) Address " -Very nice script by the way! Edited December 6, 2006 by backstabbed tolle indicium Link to comment Share on other sites More sharing options...
Skrip Posted December 8, 2006 Author Share Posted December 8, 2006 Ah ha! I will change that. [left][sub]We're trapped in the belly of this horrible machine.[/sub][sup]And the machine is bleeding to death...[/sup][sup][/sup][/left] 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