Jump to content

Creating a system info dumper. Need help!


Recommended Posts

Hello im currently creating a System info dumper for my Web server but i dont know how to make a loop (so it repeat continiously)

and how do i refresh a gui?

Thanks for answers!

This is what i have so far

#include <GUIConstants.au3>
$driveamount = DriveGetDrive( "all" )
$drivec = DriveSpaceTotal( "c:\" )
$drivefreec = DriveSpaceFree( "c:\" )
$drived = DriveSpaceTotal( "d:\" )
$drivefreed = DriveSpaceFree( "d:\" )
$mem = MemGetStats()

GUICreate("Test",500,500)
GUISetState (@SW_SHOW)




GUICtrlCreateLabel("Minne Tilgjengelig: " & $mem[1] & "kb",90,1,500,50)

GUICtrlCreateLabel("Brukt Minne: " & $mem[2] & "kb",90,20,500,50)

GUICtrlCreateLabel("Minne i Prosent: " & $mem[0] & "kb",90,40,500,50)

GUICtrlCreateLabel("Pagefile Tilgjengelig: " & $mem[4] & "kb",90,60,500,50)

GUICtrlCreateLabel("Total Pagefile: " & $mem[3] & "kb",90,80,500,50)

GUICtrlCreateLabel("Antall Harddisker: " & $driveamount[0] & " harddisker",90,100,500,50)

GUICtrlCreateLabel("Total Plass C:\: " & $drivec & "kb",90,120,500,50)

GUICtrlCreateLabel("Ledig Plass C:\: " & $drivefreec & "kb",90,140,500,50)

GUICtrlCreateLabel("Total Plass D:\: " & $drived & "kb",90,160,500,50)

GUICtrlCreateLabel("Ledig Plass D:\: " & $drivefreed & "kb",90,180,500,50)

GUICtrlCreateLabel("OS Type: " & @OSType,90,210,500,50)
GUICtrlCreateLabel("OS Version: " & @OSVersion,90,230,500,50)
GUICtrlCreateLabel("OS Build: " & @OSBuild,90,250,500,50)
GUICtrlCreateLabel("Processor Type: " & @ProcessorArch,90,270,500,50)
GUICtrlCreateLabel("Computer Name: " & @ComputerName,90,290,500,50)


FileDelete("stats.php")
$file = FileOpen("stats.php", 1)

; Check if file opened for writing OK
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf
FileWrite($file, "<?" & @CRLF )
FileWrite($file, "$minnetilgjengelig = " & $mem[1] & ";" & @CRLF  )
FileWrite($file, "$bruktminne = " & $mem[2] & ";" & @CRLF  )
FileWrite($file, "$minneprosent = " & $mem[0] & ";" & @CRLF  )
FileWrite($file, "$pagefiletilgjengelig = " & $mem[4] & ";" & @CRLF  )
FileWrite($file, "$totalpagefile = " & $mem[3] & ";" & @CRLF  )
FileWrite($file, "$antallharddisk = " & $driveamount[0] & ";" & @CRLF  )
FileWrite($file, "$totalhddc = " & $drivefreec & ";" & @CRLF  )
FileWrite($file, "$ledighddc = " & $mem[2] & ";" & @CRLF  )
FileWrite($file, "$totalhddd = " & $drived & ";" & @CRLF  )
FileWrite($file, "$ledighddd = " & $drivefreed & ";" & @CRLF  )
FileWrite($file, "$ostype = " & @OSType & ";" & @CRLF  )
FileWrite($file, "$osversion = " & @OSVersion & ";" & @CRLF  )
FileWrite($file, "$osbuild = " & @OSBuild & ";" & @CRLF  )
FileWrite($file, "$processortype = " & @ProcessorArch & ";" & @CRLF  )
FileWrite($file, "$computername = " & @ComputerName & ";" & @CRLF  )
FileWrite($file, "?>" & @CRLF )

FileClose($file)

While 1
    $msg = GUIGetMsg()
    
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
Link to comment
Share on other sites

You can optimize flickering by updating labels only when their value is different then written value - in UpdateGUI()

#include <GUIConstants.au3>

Global $driveamount,$drivec,$drivefreec,$drived,$drivefreed,$mem
Global $start

GUICreate("Test",500,500)
GUISetState (@SW_SHOW)
$label1 = GUICtrlCreateLabel("Minne Tilgjengelig: kb",90,1,500,50)
$label2 = GUICtrlCreateLabel("Brukt Minne: kb",90,20,500,50)
$label3 = GUICtrlCreateLabel("Minne i Prosent: kb",90,40,500,50)
$label4 = GUICtrlCreateLabel("Pagefile Tilgjengelig: kb",90,60,500,50)
$label5 = GUICtrlCreateLabel("Total Pagefile: kb",90,80,500,50)
$label6 = GUICtrlCreateLabel("Antall Harddisker:  harddisker",90,100,500,50)
$label7 = GUICtrlCreateLabel("Total Plass C:\: kb",90,120,500,50)
$label8 = GUICtrlCreateLabel("Ledig Plass C:\: kb",90,140,500,50)
$label9 = GUICtrlCreateLabel("Total Plass D:\: kb",90,160,500,50)
$label10 = GUICtrlCreateLabel("Ledig Plass D:\: kb",90,180,500,50)
$label11 = GUICtrlCreateLabel("OS Type: " & @OSType,90,210,500,50)
$label12 = GUICtrlCreateLabel("OS Version: " & @OSVersion,90,230,500,50)
$label13 = GUICtrlCreateLabel("OS Build: " & @OSBuild,90,250,500,50)
$label14 = GUICtrlCreateLabel("Processor Type: " & @ProcessorArch,90,270,500,50)
$label15 = GUICtrlCreateLabel("Computer Name: " & @ComputerName,90,290,500,50)

GetInfo()

$start = TimerInit()
While 1
    $msg = GUIGetMsg()
    
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    
    If TimerDiff($start) > 1000 Then ; once a second
        $start = TimerInit()
        GetInfo()
    EndIf
Wend

Func GetInfo()
    $driveamount = DriveGetDrive( "all" )
    $drivec = DriveSpaceTotal( "c:\" )
    $drivefreec = DriveSpaceFree( "c:\" )
    $drived = DriveSpaceTotal( "d:\" )
    $drivefreed = DriveSpaceFree( "d:\" )
    $mem = MemGetStats()
    
    UpdateGUI()
    WriteInfo()
EndFunc

Func UpdateGUI()
    GUICtrlSetData($label1, "Minne Tilgjengelig: " & $mem[1] & "kb")
    GUICtrlSetData($label2, "Brukt Minne: " & $mem[2] & "kb")
    GUICtrlSetData($label3, "Minne i Prosent: " & $mem[0] & "kb")
    GUICtrlSetData($label4, "Pagefile Tilgjengelig: " & $mem[4] & "kb")
    GUICtrlSetData($label5, "Total Pagefile: " & $mem[3] & "kb")
    GUICtrlSetData($label6, "Antall Harddisker: " & $driveamount[0] & " harddisker")
    GUICtrlSetData($label7, "Total Plass C:\: " & $drivec & "kb")
    GUICtrlSetData($label8, "Ledig Plass C:\: " & $drivefreec & "kb")
    GUICtrlSetData($label9, "Total Plass D:\: " & $drived & "kb")
    GUICtrlSetData($label10, "Ledig Plass D:\: " & $drivefreed & "kb")
EndFunc

Func WriteInfo()
    FileDelete("stats.php")
    $file = FileOpen("stats.php", 1)

    ; Check if file opened for writing OK
    If $file = -1 Then
        MsgBox(0, "Error", "Unable to open file.")
        Exit
    EndIf
    FileWrite($file, "<?" & @CRLF )
    FileWrite($file, "$minnetilgjengelig = " & $mem[1] & ";" & @CRLF  )
    FileWrite($file, "$bruktminne = " & $mem[2] & ";" & @CRLF  )
    FileWrite($file, "$minneprosent = " & $mem[0] & ";" & @CRLF  )
    FileWrite($file, "$pagefiletilgjengelig = " & $mem[4] & ";" & @CRLF  )
    FileWrite($file, "$totalpagefile = " & $mem[3] & ";" & @CRLF  )
    FileWrite($file, "$antallharddisk = " & $driveamount[0] & ";" & @CRLF  )
    FileWrite($file, "$totalhddc = " & $drivefreec & ";" & @CRLF  )
    FileWrite($file, "$ledighddc = " & $mem[2] & ";" & @CRLF  )
    FileWrite($file, "$totalhddd = " & $drived & ";" & @CRLF  )
    FileWrite($file, "$ledighddd = " & $drivefreed & ";" & @CRLF  )
    FileWrite($file, "$ostype = " & @OSType & ";" & @CRLF  )
    FileWrite($file, "$osversion = " & @OSVersion & ";" & @CRLF  )
    FileWrite($file, "$osbuild = " & @OSBuild & ";" & @CRLF  )
    FileWrite($file, "$processortype = " & @ProcessorArch & ";" & @CRLF  )
    FileWrite($file, "$computername = " & @ComputerName & ";" & @CRLF  )
    FileWrite($file, "?>" & @CRLF )

    FileClose($file)
EndFunc
Link to comment
Share on other sites

You could also do something like this (Pretty much the same as Zedna):

#include <GUIConstants.au3>
$driveamount = DriveGetDrive( "all" )
$drivec = DriveSpaceTotal( "c:\" )
$drivefreec = DriveSpaceFree( "c:\" )
$drived = DriveSpaceTotal( "d:\" )
$drivefreed = DriveSpaceFree( "d:\" )
$mem = MemGetStats()

GUICreate("Test",500,500)
GUISetState (@SW_SHOW)
$TotalRAM = GUICtrlCreateLabel("Minne Tilgjengelig: " & $mem[1] & "kb",90,1,500,50)
$AvaRAM = GUICtrlCreateLabel("Brukt Minne: " & $mem[2] & "kb",90,20,500,50)
$PageFile = GUICtrlCreateLabel("Minne i Prosent: " & $mem[0] & "kb",90,40,500,50)
$AvaPageFile = GUICtrlCreateLabel("Pagefile Tilgjengelig: " & $mem[4] & "kb",90,60,500,50)
$Virtual = GUICtrlCreateLabel("Total Pagefile: " & $mem[3] & "kb",90,80,500,50)
$AvaVirtual = GUICtrlCreateLabel("Antall Harddisker: " & $driveamount[0] & " harddisker",90,100,500,50)
$DriveC = GUICtrlCreateLabel("Total Plass C:\: " & $drivec & "kb",90,120,500,50)
$DriveCFree = GUICtrlCreateLabel("Ledig Plass C:\: " & $drivefreec & "kb",90,140,500,50)
$DRiveD = GUICtrlCreateLabel("Total Plass D:\: " & $drived & "kb",90,160,500,50)
$DRiveDFree = GUICtrlCreateLabel("Ledig Plass D:\: " & $drivefreed & "kb",90,180,500,50)

$OS = GUICtrlCreateLabel("OS Type: " & @OSType,90,210,500,50)
$OSVersion = GUICtrlCreateLabel("OS Version: " & @OSVersion,90,230,500,50)
$OSBuild = GUICtrlCreateLabel("OS Build: " & @OSBuild,90,250,500,50)
$PRocessorType = GUICtrlCreateLabel("Processor Type: " & @ProcessorArch,90,270,500,50)
$ComputerName = GUICtrlCreateLabel("Computer Name: " & @ComputerName,90,290,500,50)

$Timerstart = TimerInit()
While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    If TimerDiff($Timerstart) > 1000 Then; once a second
        $Timerstart = TimerInit()
        GetStats()
    EndIf
Wend

Func GetStats()
FileDelete("stats.php")
$file = FileOpen("stats.php", 1)

If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf
$driveamount = DriveGetDrive( "all" )
$drivec = DriveSpaceTotal( "c:\" )
$drivefreec = DriveSpaceFree( "c:\" )
$drived = DriveSpaceTotal( "d:\" )
$drivefreed = DriveSpaceFree( "d:\" )

GUICtrlSetData($TotalRAM, "Minne Tilgjengelig: " & $mem[1] & "kb")
GUICtrlSetData($AvaRAM, "Brukt Minne: " & $mem[2] & "kb")
GUICtrlSetData($PageFile, "Minne i Prosent: " & $mem[0] & "kb")
GUICtrlSetData($AvaPageFile, "Pagefile Tilgjengelig: " & $mem[4] & "kb")
GUICtrlSetData($Virtual, "Total Pagefile: " & $mem[3] & "kb")
GUICtrlSetData($AvaVirtual, "Antall Harddisker: " & $driveamount[0] & " harddisker")
GUICtrlSetData($DriveC, "Total Plass C:\: " & $drivec & "kb")
GUICtrlSetData($DriveCFree, "Ledig Plass D:\: " & $drivefreed & "kb")

GUICtrlSetData($DRiveD , "Total Plass D:\: " & $drived & "kb")
GUICtrlSetData($DRiveDFree, "Ledig Plass D:\: " & $drivefreed & "kb")
GUICtrlSetData($OS, "OS Type: " & @OSType)
GUICtrlSetData($OSVersion, "OS Version: " & @OSVersion)
GUICtrlSetData($PRocessorType, "Processor Type: " & @ProcessorArch)
GUICtrlSetData($ComputerName, "Computer Name: " & @ComputerName)

FileWrite($file, "<?" & @CRLF )
FileWrite($file, "$minnetilgjengelig = " & $mem[1] & ";" & @CRLF  )
FileWrite($file, "$bruktminne = " & $mem[2] & ";" & @CRLF  )
FileWrite($file, "$minneprosent = " & $mem[0] & ";" & @CRLF  )
FileWrite($file, "$pagefiletilgjengelig = " & $mem[4] & ";" & @CRLF  )
FileWrite($file, "$totalpagefile = " & $mem[3] & ";" & @CRLF  )
FileWrite($file, "$antallharddisk = " & $driveamount[0] & ";" & @CRLF  )
FileWrite($file, "$totalhddc = " & $drivefreec & ";" & @CRLF  )
FileWrite($file, "$ledighddc = " & $mem[2] & ";" & @CRLF  )
FileWrite($file, "$totalhddd = " & $drived & ";" & @CRLF  )
FileWrite($file, "$ledighddd = " & $drivefreed & ";" & @CRLF  )
FileWrite($file, "$ostype = " & @OSType & ";" & @CRLF  )
FileWrite($file, "$osversion = " & @OSVersion & ";" & @CRLF  )
FileWrite($file, "$osbuild = " & @OSBuild & ";" & @CRLF  )
FileWrite($file, "$processortype = " & @ProcessorArch & ";" & @CRLF  )
FileWrite($file, "$computername = " & @ComputerName & ";" & @CRLF  )
FileWrite($file, "?>" & @CRLF )

FileClose($file)

EndFunc
Edited by MattWise

[sub]Quantum mechanics: The dreams stuff is made of[/sub]

Link to comment
Share on other sites

You could also create a process counter using the PDH.DLL that resides in C:\windows\system32.

I'm unsure if you want to go with that complexity or if you would prefer using the Computer Info UDF.

[sub]Quantum mechanics: The dreams stuff is made of[/sub]

Link to comment
Share on other sites

Here's a quick example

#include "CompInfo.au3"

Dim $OSs
_ComputerGetOSs($OSs)

For $i = 1 To $OSs[0][0] Step 1
 MsgBox(0, "Test _ComputerGetOSs", "Name: " & $OSs[$i][0] & @CRLF & _
   "Boot Device: " & $OSs[$i][1] & @CRLF & _
   "Build Number: " & $OSs[$i][2] & @CRLF & _
   "Build Type: " & $OSs[$i][3] & @CRLF & _
   "Description: " & $OSs[$i][4] & @CRLF & _
   "Code Set: " & $OSs[$i][5] & @CRLF & _
   "Country Code: " & $OSs[$i][6] & @CRLF & _
   "Creation Class Name: " & $OSs[$i][7] & @CRLF & _
   "CSCreation Class Name: " & $OSs[$i][8] & @CRLF & _
   "CSD Version: " & $OSs[$i][9] & @CRLF & _
   "CS Name: " & $OSs[$i][10] & @CRLF & _
   "Current Time Zone: " & $OSs[$i][11] & @CRLF & _
   "Data Execution Prevention_32BitApplications: " & $OSs[$i][12] & @CRLF & _
   "Data Execution Prevention_Available: " & $OSs[$i][13] & @CRLF & _
   "Data Execution Prevention_Drivers: " & $OSs[$i][14] & @CRLF & _
   "Data Execution Prevention_SupportPolicy: " & $OSs[$i][15] & @CRLF & _
   "Debug: " & $OSs[$i][16] & @CRLF & _
   "Distributed: " & $OSs[$i][17] & @CRLF & _
   "Encryption Level: " & $OSs[$i][18] & @CRLF & _
   "Foreground Application Boost: " & $OSs[$i][19] & @CRLF & _
   "Free Physical Memory: " & $OSs[$i][20] & @CRLF & _
   "Free Space In Paging Files: " & $OSs[$i][21] & @CRLF & _
   "Free Virtual Memory: " & $OSs[$i][22] & @CRLF & _
   "Install Date: " & $OSs[$i][23] & @CRLF & _
   "Large System Cache: " & $OSs[$i][24] & @CRLF & _
   "Last Boot Up Time: " & $OSs[$i][25] & @CRLF & _
   "Local Date Time: " & $OSs[$i][26] & @CRLF & _
   "Locale: " & $OSs[$i][27] & @CRLF & _
   "Manufacturer: " & $OSs[$i][28] & @CRLF & _
   "Max Number Of Processes: " & $OSs[$i][29] & @CRLF & _
   "Max Process Memory Size: " & $OSs[$i][30] & @CRLF & _
   "Number Of Licensed Users: " & $OSs[$i][31] & @CRLF & _
   "Number Of Processes: " & $OSs[$i][32] & @CRLF & _
   "Number Of Users: " & $OSs[$i][33] & @CRLF & _
   "Organization: " & $OSs[$i][34] & @CRLF & _
   "OS Language: " & $OSs[$i][35] & @CRLF & _
   "OS Product Suite: " & $OSs[$i][36] & @CRLF & _
   "OS Type: " & $OSs[$i][37] & @CRLF & _
   "Other Type Description: " & $OSs[$i][38] & @CRLF & _
   "Plus Product ID: " & $OSs[$i][39] & @CRLF & _
   "Plus Version Number: " & $OSs[$i][40] & @CRLF & _
   "Primary: " & $OSs[$i][41] & @CRLF & _
   "Product Type: " & $OSs[$i][42] & @CRLF & _
   "Quantum Length: " & $OSs[$i][43] & @CRLF & _
   "Quantum Type: " & $OSs[$i][44] & @CRLF & _
   "Registered User: " & $OSs[$i][45] & @CRLF & _
   "Serial Number: " & $OSs[$i][46] & @CRLF & _
   "Service Pack Major Version: " & $OSs[$i][47] & @CRLF & _
   "Service Pack Minor Version: " & $OSs[$i][48] & @CRLF & _
   "Size Stored In Paging Files: " & $OSs[$i][49] & @CRLF & _
   "Status: " & $OSs[$i][50] & @CRLF & _
   "Suite Mask: " & $OSs[$i][51] & @CRLF & _
   "System Device: " & $OSs[$i][52] & @CRLF & _
   "System Directory: " & $OSs[$i][53] & @CRLF & _
   "System Drive: " & $OSs[$i][54] & @CRLF & _
   "Total Swap Space Size: " & $OSs[$i][55] & @CRLF & _
   "Total Virtual Memory Size: " & $OSs[$i][56] & @CRLF & _
   "Total Visible Memory Size: " & $OSs[$i][57] & @CRLF & _
   "Version: " & $OSs[$i][58] & @CRLF & _
   "Windows Directory: " & $OSs[$i][59])
 
 $os = StringSplit($OSs[$i][0], "|")
 MsgBox(32, "Computer Info", $os[1] & " v." & $OSs[$i][58] & @CRLF & $OSs[$i][9])
Next
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...