Statistiques disque(s) dur(s)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 829 fois - Téléchargée 15 fois

Contenu du snippet

Voilà un moment que je n'avais pas posté ici, alors ayant un manque d'imagination sur le coup, je reprends simplement l'idée de ma dernière source avec quelques modifications.

Vous pouvez avoir les statistiques d'un disque dur, ou de l'ensemble des disques détectés sur votre machine. Avec possibilité d'envoyer ces informations sur la fenêtre active de votre mIRC.

Afin de simplifier l'utilisation, ce script détecte dès l'ouverture du dialog les disques branchés.

Source / Exemple :


dialog ddstats {
  title "Statistiques des disques durs"
  size -1 -1 141 184
  option dbu
  tab "Unitaire", 1, 3 1 134 166
  box "Sélection", 3, 6 18 127 37, tab 1
  text "Lettre du volume à scanner.", 6, 37 29 69 8, tab 1
  button "Analyser", 7, 51 40 37 11, tab 1
  box "Statistiques", 8, 6 59 127 104, tab 1
  text "Nom du volume :", 9, 11 69 41 8, tab 1
  text "Type de volume :", 10, 11 80 42 8, tab 1
  text "Espace total :", 11, 11 91 34 8, tab 1
  text "Espace libre :", 12, 11 102 33 8, tab 1
  text "", 13, 53 69 53 8, tab 1
  text "", 14, 54 80 53 8, tab 1
  text "", 15, 46 91 60 8, tab 1
  text "", 16, 45 102 45 8, tab 1
  text "Jauge de l'espace occupé :", 17, 11 114 71 8, tab 1
  text "", 19, 19 125 100 8, tab 1
  button "Envoyer sur la fenêtre active", 18, 32 147 77 12, tab 1
  text "|", 20, 17 125 1 8, tab 1
  text "0 %", 21, 13 133 12 8, tab 1
  text "|", 22, 119 125 1 8, tab 1
  text "100 %", 23, 114 133 17 8, tab 1
  text "", 24, 64 133 18 8, tab 1
  combo 5, 11 29 22 9, tab 1 drop size
  tab "Total", 2
  box "Statistiques globales", 25, 6 37 127 126, tab 2
  text "Nombre de volumes :", 26, 11 47 53 8, tab 2
  text "Lettres des volumes scannés :", 27, 11 58 78 8, tab 2
  text "", 28, 11 69 117 8, tab 2
  text "Espace total :", 29, 11 80 35 8, tab 2
  text "", 30, 47 80 52 8, tab 2
  text "Espace libre :", 31, 11 91 34 8, tab 2
  text "Espace occupé :", 32, 11 102 41 8, tab 2
  text "", 33, 46 91 48 8, tab 2
  text "", 34, 65 47 20 8, tab 2
  text "", 35, 53 102 48 8, tab 2
  text "Jauge de l'espace occupé :", 36, 11 116 67 8, tab 2
  text "|", 37, 17 126 1 8, tab 2
  text "", 38, 19 126 100 8, tab 2
  text "|", 39, 119 126 1 8, tab 2
  text "0 %", 40, 14 134 12 8, tab 2
  text "100 %", 41, 112 134 18 8, tab 2
  text "", 42, 62 134 20 8, tab 2
  button "Envoyer sur la fenêtre active", 43, 32 147 77 12, tab 2
  button "Lancer une analyse complète", 44, 35 21 75 12, tab 2
  button "Fermer", 4, 53 170 37 12, default ok
}
on *:dialog:ddstats:*:*: {
  if ($devent == init) {
    did -b $dname 18,43
    var %i 1
    set %dnb 0
    while (%i < 26) {
      var %chr $chr($calc(97+%i))
      if (($disk(%chr).size != 0) && ($disk(%chr).size)) { 
        var %dd $upper(%chr) $+ :
        set %dlist $addtok(%dlist,%dd,32)
        inc %dnb 
        didtok $dname 5 32 %dd
      }
      inc %i
    }
  }
  elseif ($devent == sclick) {
    if ($did == 7) {
      if (!$did(5).seltext) { did -b $dname 18 | did -r $dname 13,14,15,16,19,24 | halt }
      set %per.cent $int($calc(100 - $calc(100 * $calc($disk($did(5).seltext).free / 1073741824) / $calc($disk($did(5).seltext).size / 1073741824))))
      did -e $dname 18
      did -a $dname 13 $iif($disk($did(5).seltext).label == $null,Unnamed,$disk($did(5).seltext).label)
      did -a $dname 14 $iif($disk($did(5).seltext).type == fixed,Interne,Externe)
      did -a $dname 15 $round($calc($disk($did(5).seltext).size / 1073741824),2) Go
      did -a $dname 16 $round($calc($disk($did(5).seltext).free / 1073741824),2) Go
      did -a $dname 19 $str(|,$calc(%per.cent / 2))
      did -a $dname 24 %per.cent % 
    }
    elseif ($did == 18) {
      msg $active 1· Statistiques pour le volume $did(5).seltext
      msg $active 1· Nom du volume : $did(13)
      msg $active 1· Type de volume : $did(14)
      msg $active 1· Espace total : $did(15)
      msg $active 1· Espace libre : $did(16)
      var %i 0, %max = $int($calc(%per.cent / 5))
      while (%i < 20) {
        if (%i < %max) {
          var %jauge %jauge 4|
        }
        else {
          var %jauge %jauge 3|
        }
        inc %i
      }
      msg $active 1· Jauge de l'espace occupé : %jauge 1 $did(24)
    }
    elseif ($did == 44) {
      var %j 0
      while (%j < $numtok(%dlist,32)) {
        inc %j
        var %size $calc($round($calc($disk($gettok(%dlist,%j,32)).size / 1073741824),2) + %size)
        var %free.size $calc($round($calc($disk($gettok(%dlist,%j,32)).free / 1073741824),2) + %free.size)
      }
      set %gper.cent $int($calc(100 - $calc(100 * %free.size / %size)))
      did -e $dname 43
      did -a $dname 34 %dnb
      did -a $dname 28 %dlist
      did -a $dname 30 %size Go
      did -a $dname 33 %free.size Go
      did -a $dname 35 $calc(%size - %free.size) Go
      did -a $dname 38 $str(|, $int($calc(%gper.cent / 2)))
      did -a $dname 42 %gper.cent %
    }
    elseif ($did == 43) {
      msg $active 1· Statistiques pour l'ensemble des volumes
      msg $active 1· Nombre de volumes analysés : $did(34)
      msg $active 1· Noms des volumes détectés : $did(28)
      msg $active 1· Espace total : $did(30)
      msg $active 1· Espace libre : $did(33)
      msg $active 1· Espace occupé : $did(35)
      var %i 0, %max = $int($calc(%gper.cent / 5))
      while (%i < 20) {
        if (%i < %max) {
          var %jauge %jauge 4|
        }
        else {
          var %jauge %jauge 3|
        }
        inc %i
      }
      msg $active 1· Jauge de l'espace occupé : %jauge 1 %gper.cent %
    }
  }
  elseif ($devent == close) { unset %per.cent | unset %gper.cent | unset %dnb | unset %dlist }
}
alias ddstats dialog $iif($dialog(ddstats),-v,-m ddstats) ddstats 
menu channel {
  Stats:/ddstats
}

Conclusion :


Histoire d'éviter un freeze de quelques secondes au moment du scan des disques, le lecteur A: n'est tout simplement pas vérifié (Cette lettre étant, la plupart du temps, allouée au lecteur de disquette).

Me semble avoir tout dit, messieurs dames, à vos commentaires !

A voir également

Ajouter un commentaire

Commentaires

cs_KiNdErMaXi
Messages postés
1052
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
30 novembre 2009
2 -
J'aurai deux choses à dire :
- dommage d'utiliser l'alias /stats qui est à l'origine une commande serveur pour les ircop
- la liste de sélection du lecteur à analyser ferait mieux d'être déroulante (plus pratique, plus de visibilité)
Nort0n
Messages postés
41
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
18 octobre 2010
-
Effectivement, j'avais oublié cette commande. L'alias a été modifié pour "ddstats".
Je passerai la sélection en liste déroulante dans l'après-midi.
WorldDMT
Messages postés
882
Date d'inscription
jeudi 6 juillet 2006
Statut
Membre
Dernière intervention
6 janvier 2012
1 -
Salut
j'ai pas trop regardé le fonctionnement mais j'ai quelques ptit commentaires

j'ai pas mIRC ici pour me rassurer mais je pense bien que

did -b $dname 18 | did -b $dname 43 devient

did -b $dname 18,43

pour eviter des msg d'erreurs au lieu de
alias ddstats { dialog -m ddstats ddstats } met plutot

alias ddstats dialog $iif($dialog(ddstats),-v,-m ddstats) ddstats

utilise didtok pour le combo 5

exp: didtok $dname 5 32 data1 data2 data3 ...
Nort0n
Messages postés
41
Date d'inscription
jeudi 27 novembre 2003
Statut
Membre
Dernière intervention
18 octobre 2010
-
Concernant les did 18 et 43, effectivement, une étourderie de ma part.
J'ai ajouté le second onglet un peu plus tard et ai ajouté cette ligne à la va vite.

L'alias, bien vu. J'avais pas testé d'ouvrir le dialog si celui-ci était déjà ouvert. J'me coucherai moins con ce soir.

Effectivement le didtok est plus approprié que le did -a pour un combo. Même chose que précédemment, j'me coucherai moins con.
uaip
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
-
Salut,
Sympa, même si je trouve la finalité assez inutile. (le panneau de config Windows est là pour ça).
Une remarque, qui n'a rien à voir. En supposant que (d'après le screen), E soit ta partition de swap, je te plains si tu venais à chopper un virus :)

Cordialement, uaip.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.