C'est avec plaisir que je vous partage mon premier script avec GUI.
Voici l'utilité de celui-ci :
Le script permet d'afficher (en permanence) des informations du système sous forme de popup dans le but :
- D'avoir un œil sur l'utilisation de la mémoire et du processeur
- D'afficher les informations permettant au support technique de l'entreprise de prendre la main à distance
En effet, le script sera déployé sur un parc d'environ 200 postes de travail, et les informations affichées permettront aux utilisateurs appelant le support, de communiquer facilement les informations système de base.
Le script affiche :
- L'adresse IP locale
- Le nom de l'ordinateur
- Le nom de l'utilisateur connecté
- Le système d'exploitation, la version du service pack et l'architecture du processeur
- La taille de l'écran
- L'utilisation de la mémoire et du processeur
Voici une capture d'écran :
Et voici le code source :
#include <GUIConstantsEx.au3>
#include <FontConstants.au3>
#include <WindowsConstants.au3>
#include <ColorConstantS.au3>
#include <MsgBoxConstants.au3>
Opt("GUICloseOnESC", 0) ; Désactive la fermeture du programme via la touche ESCAPE
DisplaySystemInfo()
Func DisplaySystemInfo()
$FenPosSizeX = @DesktopWidth - 300
$FenPosSizeY = @DesktopHeight - 153
$aMem = MemGetStats()
$Form1 = GUICreate("",300,110,$FenPosSizeX,$FenPosSizeY,$WS_POPUP,$WS_EX_TOOLWINDOW)
GUISetBkColor("0xfff7b2")
GUISetFont(9, $FW_NORMAL, $GUI_FONTNORMAL, "Courier New")
WinSetTrans($Form1, "", 170)
Local $iOldOpt = Opt("GUICoordMode", 2)
GUICtrlCreateLabel("Adresse IP : " & @IPAddress1, 5, 5, 300)
GUICtrlCreateLabel("Nom de l'ordinateur : " & @ComputerName, -1, -5)
GUICtrlCreateLabel("Utilisateur : " & @UserName, -1, -5)
GUICtrlCreateLabel("Système : " & @OSVersion & " - " & @OSServicePack & " - " & @OSArch, -1, -5)
GUICtrlCreateLabel("Taille écran : " & @DeskTopWidth & "x" & @DesktopHeight, -1, -5)
GUICtrlCreateLabel("Mémoire : " & $aMem[0] & "% " & "Processeur : ", -1, -5)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
;Exit
EndSwitch
; Récupère l'utilisation de la mémoire
$aMem = MemGetStats()
GUICtrlSetData(-1,"Mémoire : " & $aMem[0] & "% " & "Processeur : "&_Processor_Usage())
Sleep(1000)
WEnd
$iOldOpt = Opt("GUICoordMode", $iOldOpt)
Opt("GUICloseOnESC", 0)
EndFunc
Func _Processor_Usage()
Local $s_Text = ''
Dim $Obj_WMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\cimv2');
If (IsObj($Obj_WMIService)) And (Not @error) Then
Dim $Col_Items = $Obj_WMIService.ExecQuery('SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor')
Local $Obj_Item
For $Obj_Item In $Col_Items
Local $s_Text = $Obj_Item.PercentProcessorTime & '%'
Next
Return String($s_Text)
Else
Return 0
EndIf
EndFunc