IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Récupérer la charge du CPU


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 70
    Par défaut Récupérer la charge du CPU
    Bonjour,

    Je voudrais savoir s'il est possible (et si oui comment) connaître le pourcentage de charge du CPU à partir d'un .bat.

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    peut-être en Vbscript avec un WMI je crois que c'est réalisable

  3. #3
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    salut,

    une chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CMD> wmic path Win32_Processor get LoadPercentage /every:1 /format:list

  4. #4
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Voici un Vbscript qui peut te renseigner sur pas mal d'infos sur ton CPU et la partie qui te concerne c'est la méthode .LoadPercentage
    Donc enregistre-le sous CPU.vbs et tester-le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    On Error Resume Next
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
    
    For Each objItem in colItems
    mess= mess & "AddressWidth: " & objItem.AddressWidth & vbCrLf
    mess= mess & "Architecture: " & objItem.Architecture & vbCrLf
    mess= mess & "Availability: " & objItem.Availability & vbCrLf
    mess= mess & "Caption: " & objItem.Caption & vbCrLf
    mess= mess & "ConfigManagerErrorCode: " & objItem.ConfigManagerErrorCode & vbCrLf
    mess= mess & "ConfigManagerUserConfig: " & objItem.ConfigManagerUserConfig & vbCrLf
    mess= mess & "CpuStatus: " & objItem.CpuStatus & vbCrLf
    mess= mess & "CreationClassName: " & objItem.CreationClassName & vbCrLf
    mess= mess & "CurrentClockSpeed: " & objItem.CurrentClockSpeed & vbCrLf
    mess= mess & "CurrentVoltage: " & objItem.CurrentVoltage & vbCrLf
    mess= mess & "DataWidth: " & objItem.DataWidth & vbCrLf
    mess= mess & "Description: " & objItem.Description & vbCrLf
    mess= mess & "DeviceID: " & objItem.DeviceID & vbCrLf
    mess= mess & "ErrorCleared: " & objItem.ErrorCleared & vbCrLf
    mess= mess & "ErrorDescription: " & objItem.ErrorDescription & vbCrLf
    mess= mess & "ExtClock: " & objItem.ExtClock & vbCrLf
    mess= mess & "Family: " & objItem.Family & vbCrLf
    mess= mess & "InstallDate: " & objItem.InstallDate & vbCrLf
    mess= mess & "L2CacheSize: " & objItem.L2CacheSize & vbCrLf
    mess= mess & "L2CacheSpeed: " & objItem.L2CacheSpeed & vbCrLf
    mess= mess & "LastErrorCode: " & objItem.LastErrorCode & vbCrLf
    mess= mess & "Level: " & objItem.Level & vbCrLf
    mess= mess & "LoadPercentage: " & objItem.LoadPercentage & vbCrLf
    mess= mess & "Manufacturer: " & objItem.Manufacturer & vbCrLf
    mess= mess & "MaxClockSpeed: " & objItem.MaxClockSpeed & vbCrLf
    mess= mess & "Name: " & objItem.Name & vbCrLf
    mess= mess & "OtherFamilyDescription: " & objItem.OtherFamilyDescription & vbCrLf
    mess= mess & "PNPDeviceID: " & objItem.PNPDeviceID & vbCrLf
    mess= mess & "PowerManagementCapabilities: " & objItem.PowerManagementCapabilities & vbCrLf
    mess= mess & "PowerManagementSupported: " & objItem.PowerManagementSupported & vbCrLf
    mess= mess & "ProcessorId: " & objItem.ProcessorId & vbCrLf
    mess= mess & "ProcessorType: " & objItem.ProcessorType & vbCrLf
    mess= mess & "Revision: " & objItem.Revision & vbCrLf
    mess= mess & "SocketDesignation: " & objItem.SocketDesignation & vbCrLf
    mess= mess & "Status: " & objItem.Status & vbCrLf
    mess= mess & "StatusInfo: " & objItem.StatusInfo & vbCrLf
    mess= mess & "Stepping: " & objItem.Stepping & vbCrLf
    mess= mess & "SystemCreationClassName: " & objItem.SystemCreationClassName & vbCrLf
    mess= mess & "SystemName: " & objItem.SystemName & vbCrLf
    mess= mess & "UniqueId: " & objItem.UniqueId & vbCrLf
    Next
    msgbox mess

  5. #5
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Voici en mode graphique avec un HTA en utilisant les couleurs suivant la charge de votre CPU% :

    • vert si CPU% < 20%
    • Orange si 20% < CPU% < 70%
    • Rouge si CPU% > 70%

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <html>
    <head>
    <title></title>
    <HTA:APPLICATION 
        ID="CPU%-AutoRefresh"
        APPLICATIONNAME="Usage CPU en %"
        BORDER="dialog"
        BORDERSTYLE="complex"
        CONTEXTMENU="no"
        SYSMENU="no"
        MAXIMIZEBUTTON="no"
        SCROLL="no" 
        ICON="Verifier.exe"
    >
    </head>
    <META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
    <SCRIPT LANGUAGE="VBScript">
    
        Sub Window_OnLoad
            CenterWindow 100,100
            Refresh 
            iTimerID = window.setInterval("Refresh", 1000)
        End Sub
        
       Sub CenterWindow(x,y)
            window.resizeTo x, y
            iLeft = window.screen.availWidth/2 - x/2
            itop = window.screen.availHeight/2 - y/2
            window.moveTo ileft, itop
        End Sub
        Sub Refresh
           strHTML = ""
           strComputer = "."
           Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
           Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Processor")
           
           For Each objProcess in colProcesses
           Self.document.title = "Usage CPU "& objProcess.LoadPercentage & " %"
           If objProcess.LoadPercentage < 20 Then
               strHTML ="<center><b><font color='LightGreen' size='6'>"& objProcess.LoadPercentage & " %</font>"
           ElseIf objProcess.LoadPercentage < 70 Then
               strHTML ="<center><b><font color='Orange' size='6'>"& objProcess.LoadPercentage & " %</font>"
            Else
               strHTML ="<center><b><font color='Red' size='6'>"& objProcess.LoadPercentage & " %</font>"
               End if
           Next
           UsageCPU.InnerHTML = strHTML
        End Sub
    
    </SCRIPT>
    <body STYLE="font:14 pt arial; color:white;filter:progid:DXImageTransform.Microsoft.Gradient
    (GradientType=1, StartColorStr='#000033', EndColorStr='#0000FF')"<span id = "UsageCPU"></span></body>
    </html>
    Donc juste vous copiez et collez ce code dans le Bloc-note et enregistrez-sous : CPU.hta

  6. #6
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Salut,

    merci du partage hackoofr, ah si seulement vous avez mis le SYSMENU à 'yes' ça nous aurrais éviter de killer ce maudit mshta

  7. #7
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut
    Citation Envoyé par I'm_HERE Voir le message
    Salut,
    merci du partage hackoofr, ah si seulement vous avez mis le SYSMENU à 'yes' ça nous aurrais éviter de killer ce maudit mshta
    Vive le Alt +F4 qui fait l'affaire



  8. #8
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    ou un bouton "fermer" dans le corps de l'html... mais bon, avec un taskmanager déjà très bon avec sa jauge près de l'horloge, l'intérêt du script n'est pas évident...

  9. #9
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    J'ai ajouté une procédure pour fermer l'application sans passer par le gestionnaire des tâches, et le programme devient alors,plus souple à terminer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Fermer()
    Question = MsgBox("Voulez-vous Fermer cette Application ?",VBYesNO+VbQuestion,"Fermeture de l'application")
    If Question = VbYes Then
    Window.close
    Else
        Exit Sub
    End If
    Cette procédure est appelé dans le Body avec l’événement ondblclick="Fermer()"
    Donc avec un simple Double-clique dans le body, on peut fermer l'application
    et le code complet devient alors comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <html>
    <head>
    <title></title>
    <HTA:APPLICATION 
        ID="CPU%-AutoRefresh"
        APPLICATIONNAME="Usage CPU en %"
        BORDER="dialog"
        BORDERSTYLE="complex"
        CONTEXTMENU="no"
        SYSMENU="no"
        MAXIMIZEBUTTON="no"
        SCROLL="no" 
        ICON="Verifier.exe"
    >
    </head>
    <META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
    <SCRIPT LANGUAGE="VBScript">
        Sub Window_OnLoad
            CenterWindow 100,100
            Refresh 
            iTimerID = window.setInterval("Refresh", 1000)
        End Sub
        
       Sub CenterWindow(x,y)
            window.resizeTo x, y
            iLeft = window.screen.availWidth/2 - x/2
            itop = window.screen.availHeight/2 - y/2
            window.moveTo ileft, itop
        End Sub
        Sub Refresh
           strHTML = ""
           strComputer = "."
           Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
           Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Processor")
           
           For Each objProcess in colProcesses
           Self.document.title = "Usage CPU "& objProcess.LoadPercentage & " %"
           If objProcess.LoadPercentage < 20 Then
               strHTML ="<center><b><font color='LightGreen' size='6'>"& objProcess.LoadPercentage & " %</font>"
           ElseIf objProcess.LoadPercentage < 70 Then
               strHTML ="<center><b><font color='Orange' size='6'>"& objProcess.LoadPercentage & " %</font>"
            Else
               strHTML ="<center><b><font color='Red' size='6'>"& objProcess.LoadPercentage & " %</font>"
               End if
           Next
           UsageCPU.InnerHTML = strHTML
        End Sub
        
    Sub Fermer()
    Question = MsgBox("Voulez-vous Fermer cette Application ?",VBYesNO+VbQuestion,"Fermeture de l'application")
    If Question = VbYes Then
    Window.close
    Else
        Exit Sub
    End If
    End Sub
    </SCRIPT>
    <body Title="Double-cliquer ici pour fermer cette Application !" ondblclick="Fermer()" STYLE="font:14 pt arial; color:white;filter:progid:DXImageTransform.Microsoft.Gradient
    (GradientType=1, StartColorStr='#000033', EndColorStr='#0000FF')"<span id = "UsageCPU"></span></body>
    </html>

Discussions similaires

  1. Réponses: 7
    Dernier message: 10/03/2008, 09h29
  2. Montée en charge du CPU sur liens sous IE7
    Par Neroptik dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 18/09/2007, 18h11
  3. Commandes pour charge disque / CPU / Mémoire
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 26/07/2007, 21h35
  4. Réponses: 4
    Dernier message: 15/02/2006, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo