Jump to content
Sign in to follow this  
dryper

Creating a system info dumper. Need help!

Recommended Posts

dryper

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

Share this post


Link to post
Share on other sites
Zedna

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

Share this post


Link to post
Share on other sites
dryper

thank you. this is what i needed!

btw is there any way to show CPU load , free, total .ect?

Share this post


Link to post
Share on other sites
DarkMatter

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]

Share this post


Link to post
Share on other sites
DarkMatter

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]

Share this post


Link to post
Share on other sites
dryper

if anyone can help me with the UDF think i can use that... i have no idea how it works.. ive placed all the files where it should be but i have NO idea how to code it :S

Share this post


Link to post
Share on other sites
LIMITER

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

Share this post


Link to post
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
Sign in to follow this  

×