J'essaie de créer un programme en C# qui surveille l'heure du processeur d'une application. Je voudrais avoir une fonctionnalité dans ce programme où l'icône de la barre des tâches est en fait un nombre représentant le temps du processeur (comme ce que coretemp a). Comment pourrais-je faire quelque chose comme ça?Comment faire une valeur numérique changeante pour une icône de la barre des tâches en C#?
0
A
Répondre
2
Vous devez utiliser les classes dans l'espace de noms System.Drawing
.
Créez un Bitmap
, utilisez Graphics.FromImage
pour dessiner dessus, puis appelez le Icon.FromHandle(myBitmap.GetHicon())
.
Vous pouvez ensuite définir l'icône en tant que propriété Icon
de votre formulaire.
EDIT: Comme ceci:
using (var image = new Bitmap(16, 16))
using (var g = Graphics.FromImage(image)) {
g.DrawString(...);
myForm.Icon = Icon.FromHandle(image.GetHicon());
}
Vous pouvez exécuter ceci dans une minuterie pour mettre à jour en permanence l'icône.
Vous pouvez obtenir l'utilisation du processeur comme ceci:
int usage;
using (var cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total")) {
cpu.NextValue(); //First value is 0
usage = cpu.NextValue();
}
Ok, donc si je lis ce droit, je ferais quelque chose comme ceci: Bitmap b = new Bitmap (Graphics.FromImage (someImage)) Icône.fromHandle (b.getHIcon()); Je suppose que ma seule préoccupation maintenant est comment obtenir l'image elle-même - est-il un moyen facile de dire à C# de transformer la valeur du temps du processeur dans une image à utiliser? La façon dont je vois cela, et corrigez-moi si je me trompe, c'est que Graphics.FromImage() insinue que je dois faire les icônes de nombre moi-même. Merci pour toute l'aide jusqu'à présent, cependant. (Et désolé si le code ci-dessus est difficile à lire, je ne suis pas sûr si je peux insérer des blocs de code dans les commentaires.) – Waffles
Wow, ça a marché! Merci beaucoup, j'ai vraiment appris quelque chose à ce sujet aujourd'hui. :) – Waffles