Jump to content

This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Find out more here. X
X


Photo

Computer Info UDF's


  • Please log in to reply
195 replies to this topic

#1 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 02:37 AM

When I first visit a new client, I take inventory of their machines, what is on them, stats, and other useful information. Up till now I would either write the information down, or just try to remember it myself. Then I decided why not write a script that would allow me to gather all this useful information, and put it in a format that I can understand and possibly print. I created that program (its even listed in this thread).

I then expounded on my ideas, and have created this great Computer Information Library. Feel free to use it as you see fit, but please credit when you use one of my functions.

Keywords: CompInfo, CompInfo.au3, Library, Computer, Computers, Info, Information, WMI, Windows Management Instrumentation

Requires: AutoIt v3.2 + or AutoIt Beta v3.2.1.2+

Software UDFs
_ComputerGetStartup
_ComputerGetSoftware
_ComputerGetUsers
_ComputerGetGroups
_ComputerGetServices
_ComputerGetThreads
_ComputerGetProcesses
_ComputerGetOSs
_ComputerGetShares
_ComputerGetEventLogs
_ComputerGetBootConfig
_ComputerGetExtensions
_ComputerGetDesktops
_ComputerGetDependentServices
_ComputerGetPrintJobs
_ComputerGetLoggedOnUsers

Hardware UDFs
_ComputerGetDrives
_ComputerGetPrinters
_ComputerGetProcessors
_ComputerGetBIOS
_ComputerGetSoundCards
_ComputerGetVideoCards
_ComputerGetKeyboard
_ComputerGetMouse
_ComputerGetSystemProduct
_ComputerGetNetworkCards
_ComputerGetSystem
_ComputerGetMonitors
_ComputerGetMotherboard
_ComputerGetBattery
_ComputerGetMemory

I have finally created an include file with the above listed UDF's. I will be continually adding to this file.

Include File:
Attached File  CompInfo.au3   119.35KB   21106 downloads | 1671 Previous Downloads (Total)

Example File:
Attached File  CompInfoExamples.au3   53.31KB   15261 downloads | 929 Previous Downloads (Total)

I have listed special thanks in the include file. Please note all example code will now start with #include "CompInfo.au3".

I am working on adding error checking and standardizing the code. (Note: I haven't spent much time doing this as of late)

NerdFencer has created a set of Drive UDF's that were inspired from this code. If you need more drive information please see his thread. DriveInfo UDF

Edit 01: Added _ComputerGetPrinters
Edit 02: Added _ComputerGetCPUs
Edit 03: Changed _DriveGetInfo to _ComputerGetDrives
Edit 04: Updated _ComputerGetDrives with documentation and error checking.
Edit 05: Fixed _ComputerGetUsers @ComputerName wasnt being used properly.
Edit 06: Added _ComputerGetGroups
Edit 07: Updated _ComputerGet Printers/Groups with documentation and error checking.
Edit 08: Changed _ComputerGetUsers to include more information. Updated _ComputerGetUsers with documentation and error checking.
Edit 09: Changed _ComputerGetStartup to include more information. Updated _ComputerGetStartup with documentation and error checking.
Edit 10: Added _ComputerGetServices
Edit 11: Added to the top of the post about requiring AutoIt's Beta version.
Edit 12: Added _ComputerGetBIOS
Edit 13: Added _ComputerGetThreads
Edit 14: Changed _ComputerGetCPUs to _ComputerGetProcessors and included more information.
Edit 15: Added _ComputerGetProcesses
Edit 16: Changed _ComputerGetPrinters to include more information and documentation.
Edit 17: Added an Example file containing all 11 current UDF's in one simple file.
Edit 18: Added _ComputerGetOSs, _ComputerGetShares, _ComputerGetEventLogs
Edit 19: Added to the top about no longer requiring a Beta version to work correctly. Requires v3.2 +
Edit 20: Added _ComputerGetSoundCards, _ComputerGetVideoCards Updated _ComputerGetGroups (moved "Description" to element 4 to match the rest of the library). Updated Processes, OSs, Processors, Services, Software, Threads, Printers, BIOS, and EventLogs to have the same header layout. Alphabetized CompInfo.au3 and CompInfoExamples.au3
Edit 21: Updated _ComputerGetOSs (Bug Fix) in CompInfoExamples.au3 (Thanks Koala)
Edit 22: Added _ComputerGetKeyboard, _ComputerGetMouse
Edit 23: Added _ComputerGetSystemProduct, _ComputerGetBootConfig Updated Spelling errors and misc items in CompInfoExamples.au3
Edit 24: Added _ComputerGetNetworkCards
Edit 25: Added _ComputerGetExtensions, and _ComputerGetSystem
Edit 26: Added _ComputerGetDesktops, _ComputerGetDependentServices, _ComputerGetPrintJobs, _ComputerGetBattery, _ComputerGetMotherboard, and _ComputerGetMonitor
Edit 27: Added _ComputerGetMemory, and _ComputerGetLoggedOnUsers
Edit 28: Updated CompInfo Version Information Error
Edit 29: Linked DriveInfo by NerdFencer

Thanks,
JS

Edited by JSThePatriot, 26 November 2010 - 05:21 AM.

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)








#2 Reaper HGN

Reaper HGN

    Wayfarer

  • Active Members
  • Pip
  • 97 posts

Posted 19 July 2006 - 05:37 PM

I like this idea alot. It seems like you could have quite a few additional components. What about:
_ComputerGetGroups
_ComputerGetEventLog
_ComputerGetMem
_ComuterGetCPU

Those are just a few that I have seen from others.


-Great start though. :D

#3 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 05:53 PM

I like this idea alot. It seems like you could have quite a few additional components. What about:
_ComputerGetGroups
_ComputerGetEventLog
_ComputerGetMem
_ComuterGetCPU

Those are just a few that I have seen from others.
-Great start though. :D


Thank you for the ideas... The _ComputerGetMem is already done in MemGetStats(). I could however make a wrapper that returned MB's or GB's based on size and what not.

Again thanks for the additional ideas. I will add them shortly.

Edit: Spelling.

JS

Edited by JSThePatriot, 19 July 2006 - 06:54 PM.

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)


#4 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 06:54 PM

Check first post, but I added _ComputerGetPrinters.

Will be working on more additions shortly. I recieved the CPU info for a single processor, in my compInfo.au3 script that I made these UDF's for, but I am going to standardize it and allow for multiple processors. (I have one at home :D).

I am working to standardize, and add headers to the UDF's for submission to the Standard UDF Library.

Thanks for your continued support.
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)


#5 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 07:22 PM

Added _ComputerGetCPUs. I am unable to test _ComputerGetCPUs on a multi processor machine until I am able to get home. If someone can test to be sure that this works on multi processor machine I would be much obliged, I will let you know when I can test it on my home machine (must have virii removed first...roomates).

Should _DriveGetInfo be renamed to _ComputerGetDrives? I think that would line up more on the _ComputerGet*Info* standardization that I have been following.

Thanks,
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)


#6 Reaper HGN

Reaper HGN

    Wayfarer

  • Active Members
  • Pip
  • 97 posts

Posted 19 July 2006 - 08:48 PM

Added _ComputerGetCPUs. I am unable to test _ComputerGetCPUs on a multi processor machine until I am able to get home. If someone can test to be sure that this works on multi processor machine I would be much obliged, I will let you know when I can test it on my home machine (must have virii removed first...roomates).

Should _DriveGetInfo be renamed to _ComputerGetDrives? I think that would line up more on the _ComputerGet*Info* standardization that I have been following.

Thanks,
JS



I would say yes to the standard naming. Ill see if I can test it on a multi cpu system. I wonder how it works with a hyperthreaded cpu?

#7 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 08:58 PM

I would say yes to the standard naming. Ill see if I can test it on a multi cpu system. I wonder how it works with a hyperthreaded cpu?

I wouldnt know, but certainly let me know if you have one that it could be tested on.

My test.au3 file.
AutoIt         
Dim $CPUs _ComputerGetCPUs($CPUs) For $i = 1 To $CPUs[0][0] Step 1     MsgBox(0, "Test $CPUs[$i][1-4]", "Speed: " & $CPUs[$i][1] & @CRLF & "Name: " & $CPUs[$i][2] & @CRLF & "ID: " & $CPUs[$i][3] & @CRLF & "VendorID: " & $CPUs[$i][4] & @CRLF & "Architecture: " & $CPUs[$i][5]) Next Func _ComputerGetCPUs(ByRef $aCPUInfo)     Local $HKLMCentralProc = "HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor"     Local $CentralProcKey     Dim $aCPUInfo[1][6], $i = 1         While 1         $CentralProcKey = RegEnumKey($HKLMCentralProc, $i)         If @error <> 0 Then ExitLoop         ReDim $aCPUInfo[UBound($aCPUInfo) + 1][6]         $aCPUInfo[$i][1] = RegRead($HKLMCentralProc & "\" & $CentralProcKey, "~MHz") / 1000         $aCPUInfo[$i][2] = StringStripWS(RegRead($HKLMCentralProc & "\" & $CentralProcKey, "ProcessorNameString"), 1)         $aCPUInfo[$i][3] = RegRead($HKLMCentralProc & "\" & $CentralProcKey, "Identifier")         $aCPUInfo[$i][4] = RegRead($HKLMCentralProc & "\" & $CentralProcKey, "VendorIdentifier")         $aCPUInfo[$i][5] = @ProcessorArch         $i += 1     WEnd     $aCPUInfo[0][0] = UBound($aCPUInfo, 1) - 1 EndFunc


I hope that helps you in your testing. It is faster than typing it out yourself.

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)


#8 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 09:09 PM

Would anyone be interested in a _ComputerGetMem and/or _ComputerGetProcesses?

The reason I ask is they are already returned in a full and complete array by MemGetStats, and ProcessList respectively.

Please give me your opinions on it.

@Reaper HGN
I am unsure how I should go about coding the _ComputerGetEventLog. I dont know where the data is stored. :-/

I have looked on MSDN, and they have C++ examples of how to get the EventLog information, but I am unable to find many more resources on how to obtain that information. I may be looking in the wrong places or searching with the wrong terms.

Any pointers in the right direction would be greatly appreciated.

Thanks,
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)


#9 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 09:30 PM

I added a header and error checkin to _ComputerGetDrives. Please let me know if this is too much in your opinion and why, or if there is a better way to do that.

Thanks,
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)


#10 Reaper HGN

Reaper HGN

    Wayfarer

  • Active Members
  • Pip
  • 97 posts

Posted 19 July 2006 - 09:41 PM

@JSThePatriot,
do you have a zip with the library and any changes you have made?

#11 Reaper HGN

Reaper HGN

    Wayfarer

  • Active Members
  • Pip
  • 97 posts

Posted 19 July 2006 - 09:59 PM

I took your test code and ran it on a system with 2 HT cpus. I get the image you see below. Note that the processor info message box comes up 4 times (once for each processor). The HT processors count as two processors.

#12 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 10:09 PM

I took your test code and ran it on a system with 2 HT cpus. I get the image you see below. Note that the processor info message box comes up 4 times (once for each processor). The HT processors count as two processors.


Awesome glad to know it's working. I need to add some error checking for processors that are under GHz range.

Thank you very much for that information.
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)


#13 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 19 July 2006 - 10:11 PM

@JSThePatriot,
do you have a zip with the library and any changes you have made?

I actually have all the changes reflected in the first post, and my only file is a single compInfo.au3 file that I have been using to collect data at work and for realtime testing.

Attached File  compInfo.au3   11.34KB   1654 downloads

Please note that I wont be updating this attachment. All updates will be reflected in the first post for ease. I may include this script in the top post once I have it completely done.

Thanks,
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)


#14 Reaper HGN

Reaper HGN

    Wayfarer

  • Active Members
  • Pip
  • 97 posts

Posted 19 July 2006 - 10:28 PM

Would anyone be interested in a _ComputerGetMem and/or _ComputerGetProcesses?

The reason I ask is they are already returned in a full and complete array by MemGetStats, and ProcessList respectively.

Please give me your opinions on it.

@Reaper HGN
I am unsure how I should go about coding the _ComputerGetEventLog. I dont know where the data is stored. :-/

I have looked on MSDN, and they have C++ examples of how to get the EventLog information, but I am unable to find many more resources on how to obtain that information. I may be looking in the wrong places or searching with the wrong terms.

Any pointers in the right direction would be greatly appreciated.

Thanks,
JS


I have looked around and didnt find anything difinitive. However, I did find some reference to a method in advapi32 called GetEventLogInformation. There is also an eventlog.dll that may have something in it. Using dllcall, we may be able to piggyback on one of those DLLs.

#15 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 20 July 2006 - 02:59 AM

I have looked around and didnt find anything difinitive. However, I did find some reference to a method in advapi32 called GetEventLogInformation. There is also an eventlog.dll that may have something in it. Using dllcall, we may be able to piggyback on one of those DLLs.


Before I piggy on a DLL I think I would write a plugin since msdn does have the needed C++ code for it all, and then I would know which functions are available and what not.

I would prefer at this time for these UDF's to be completely based on AutoIt. Maybe a plugin in the future would be a great addition to be able to do all the tasks at a possible "faster" rate of speed due to the plugin architecture.

Thanks for the info.

What do you think about the _ComputerGetMem and _ComputerGetProcesses

Thanks again for everything,
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)


#16 Reaper HGN

Reaper HGN

    Wayfarer

  • Active Members
  • Pip
  • 97 posts

Posted 20 July 2006 - 04:59 PM

Before I piggy on a DLL I think I would write a plugin since msdn does have the needed C++ code for it all, and then I would know which functions are available and what not.

I would prefer at this time for these UDF's to be completely based on AutoIt. Maybe a plugin in the future would be a great addition to be able to do all the tasks at a possible "faster" rate of speed due to the plugin architecture.

Thanks for the info.

What do you think about the _ComputerGetMem and _ComputerGetProcesses

Thanks again for everything,
JS



I understand the "all AutoIT" thing. I personally dont know how to program plugins, so sticking with native AutoIT seems entirely reasonable. I havent messed with the other functions yet. Ill give that a try and let you know.

#17 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 20 July 2006 - 09:45 PM

I understand the "all AutoIT" thing. I personally dont know how to program plugins, so sticking with native AutoIT seems entirely reasonable. I havent messed with the other functions yet. Ill give that a try and let you know.


I appreciate your on going support. I have created a plugin in the past, and am working on adding to it at the moment so creating another wouldnt be too hard.

Again I appreciate it all.
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)


#18 Skrip

Skrip

    Psychonaut

  • Active Members
  • PipPipPipPipPipPip
  • 2,346 posts

Posted 21 July 2006 - 04:02 AM

I can't get the first UDF to work, can you give me an example?

We're trapped in the belly of this horrible machine.And the machine is bleeding to death...


#19 JSThePatriot

JSThePatriot

    carpe diem. vita brevis.

  • MVPs
  • 3,692 posts

Posted 21 July 2006 - 04:02 PM

Let me know if the below helps at all.

AutoIt         
Dim $Drives _ComputerGetDrives($Drives) ;Defaults to "FIXED" If @error Then     $error = @error     $extended = @extended     Switch $extended         Case 1             _ErrorMsg("DriveGetDrive Error!")         Case 2             _ErrorMsg("DriveGetFileSystem Error!")         Case 3             _ErrorMsg("DriveGetLabel Error!")         Case 4             _ErrorMsg("DriveGetSerial Error!")         Case 5             _ErrorMsg("DriveSpaceFree Error!")         Case 6             _ErrorMsg("DriveSpaceTotal Error!")     EndSwitch EndIf For $i = 1 To $Drives[0][0] Step 1     MsgBox(0, "Drive: " & $Drives[$i][0], "FileSystem: " & $Drives[$i][1] & @CRLF & "Label: " & $Drives[$i][2] & @CRLF & "Serial #: " & $Drives[$i][3] & @CRLF & "Free Space: " & Round($Drives[$i][4] / 1024, 2) & "GB" & @CRLF & "Total Space: " & Round($Drives[$i][5] / 1024, 2) & "GB") Next Func _ErrorMsg($message, $time = 0)     MsgBox(48 + 262144, "Error!", $message, $time) EndFunc ;=============================================================================== ; Description:      Returns the drive information based on $sDriveType in a two ;                   dimensional array. First dimension is the index for each set ;                   of drive information. ; Parameter(s):     $aDriveInfo - By Ref - Drive information in an array. ;                   $sDriveType -   Type of drive to return the information on. ;                                   Options: "ALL", "CDROM", "REMOVABLE", "FIXED", ;                                   "NETWORK", "RAMDISK", or "UNKNOWN" ;                                   Defaults to "FIXED" drives. ; Requirement(s):   None ; Return Value(s):  On Success - Returns array of drive information. ;                       $aDriveInfo[0][0] = Number of Drives ;                       The second dimension is as follows: ($i starts at 1) ;                           [$i][0] - Drive Letter (ex. C:\) ;                           [$i][1] - File System ;                           [$i][2] - Label ;                           [$i][3] - Serial Number ;                           [$i][4] - Free Space ;                           [$i][5] - Total Space ;                   On Failure - Return 0 - SetError - 1 ;                               SetExtended: 1 = DriveGetDrive      Error ;                                            2 = DriveGetFileSystem Error ;                                            3 = DriveGetLabel      Error ;                                            4 = DriveGetSerial     Error ;                                            5 = DriveSpaceFree     Error ;                                            6 = DriveSpaceTotal    Error ; Author(s):        Jarvis Stubblefield (support "at" vortexrevolutions "dot" com) ; Note(s): ; ;=============================================================================== Func _ComputerGetDrives(ByRef $aDriveInfo, $sDriveType = "FIXED")     Local $drive     $drive = DriveGetDrive($sDriveType)     If NOT @error Then         Dim $aDriveInfo[UBound($drive)][6]         $aDriveInfo[0][0] = $drive[0]         For $i = 1 To $aDriveInfo[0][0] Step 1             $aDriveInfo[$i][0] = StringUpper($drive[$i] & "\")             $aDriveInfo[$i][1] = DriveGetFileSystem($drive[$i])             If @error Then SetError(1, 2, 0)             $aDriveInfo[$i][2] = DriveGetLabel($drive[$i])             If @error Then SetError(1, 3, 0)             $aDriveInfo[$i][3] = DriveGetSerial($drive[$i])             If @error Then SetError(1, 4, 0)             $aDriveInfo[$i][4] = DriveSpaceFree($drive[$i])             If @error Then SetError(1, 5, 0)             $aDriveInfo[$i][5] = DriveSpaceTotal($drive[$i])             If @error Then SetError(1, 6, 0)         Next     Else         SetError(1, 1, 0)     EndIf EndFunc


I hope the above helps you to be able to use my UDF's. I do appreciate your post and will assist you in any way I can.

Thanks again,
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)


#20 Skrip

Skrip

    Psychonaut

  • Active Members
  • PipPipPipPipPipPip
  • 2,346 posts

Posted 21 July 2006 - 08:12 PM

Works great, and can I incorporate these UDF's into my computer details program? V3 is still under construction.

got this on _computergetusers()

C:\AutoIt3\comp_UDF_TEST.au3 (96) : ==> Variable used without being declared.: Local $objDomain = ObjGet("WinNT://" & $cI_Compname & "" ) Local $objDomain = ObjGet("WinNT://" & ^ ERROR


_ComputerGetUsers($Usernames) For $i = 1 To $Usernames[0][0] Step 1     MsgBox(0, "Drive: " & $Usernames[$i][0], "FileSystem: " & $Usernames[$i][1] & @CRLF & "Label: " & $Usernames[$i][2] & @CRLF & "Serial #: " & $Usernames[$i][3] & @CRLF & "Free Space: " & Round($Usernames[$i][4] / 1024, 2) & "GB" & @CRLF & "Total Space: " & Round($Usernames[$i][5] / 1024, 2) & "GB") Next Func _ComputerGetUsers(ByRef $Usernames)     Dim $Usernames[1]     Local $i = 1     $oMyError = ObjEvent("AutoIt.Error", "ComError")     Local $objDomain = ObjGet("WinNT://" & $cI_Compname & "" )     Dim $filter[2] = ["user"]     $objDomain.Filter = $filter     For $aUser In $objDomain         ReDim $Usernames[UBound($Usernames) + 1]         $Usernames[$i] = $aUSer.Name         $i += 1     Next         $Usernames[0] = UBound($Usernames) - 1 EndFunc

Should that work? (Yes i am using beta)

Edited by Firestorm, 21 July 2006 - 08:20 PM.

We're trapped in the belly of this horrible machine.And the machine is bleeding to death...





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users