Comment puis-je obtenir en c#, la fréquence du PROCESSEUR (exemple : 2 ghz) ?
C'est simple mais je ne trouve pas dans les variables d'environnement.
Merci 🙂
À quelle fréquence voulez-vous dire? L'actuel, ou au maximum? Je veux dire le maximum
var searcher =newManagementObjectSearcher("select MaxClockSpeed from Win32_Processor");foreach(var item in searcher.Get()){var clockSpeed =(uint)item["MaxClockSpeed"];}
si vous souhaitez obtenir d'autres champs de regarder la classe Win32_processor
Il fonctionne très bien 😀 je obtenir la fréquence en Hz Vous vous attendiez à être en Ghz? semble de retour en MHz MaxClockSpeed type de Données: uint32 type d'Accès: Lecture seule Qualificatifs: Unités (Mégahertz) Je l'ai fait pour le convertir, var clockSpeed = 0.001f * (uint)item["MaxClockSpeed"];
using System.Management;uint currentsp ,Maxsp;publicvoidCPUSpeed(){
using(ManagementObjectMo=newManagementObject("Win32_Processor.DeviceID='CPU0'")){
currentsp =(uint)(Mo["CurrentClockSpeed"]);Maxsp=(uint)(Mo["MaxClockSpeed"]);}}
CurrentClockSpeed sonne comme l'actuel, pas le maximum 🙂 vous devez utiliser un disposer déclaration. à l'aide de(ManagementObject Mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'")) { ... } il suffit de remplacer CurrentClockSpeed par MaxClockSpeed et vous avez terminé Nakhli -- ok, alors c'est la meilleure solution vous devriez upvote mon commentaire alors 😛
Vous pouvez l'obtenir via WMI, mais c'est assez lent, donc, si vous allez être sur plus d'une occasion, je vous suggère de cache - quelque chose comme:
namespace Helpers{
using System.Management;publicstaticclassHardwareHelpers{privatestaticuint? maxCpuSpeed =null;publicstaticuintMaxCpuSpeed{
get
{return maxCpuSpeed.HasValue? maxCpuSpeed.Value:(maxCpuSpeed =GetMaxCpuSpeed()).Value;}}privatestaticuintGetMaxCpuSpeed(){
using (var managementObject =newManagementObject("Win32_Processor.DeviceID='CPU0'")){var sp =(uint)(managementObject["MaxClockSpeed"]);return sp;}}}}
si vous souhaitez obtenir d'autres champs de regarder la classe Win32_processor
Vous vous attendiez à être en Ghz?
semble de retour en MHz MaxClockSpeed type de Données: uint32 type d'Accès: Lecture seule Qualificatifs: Unités (Mégahertz)
Je l'ai fait pour le convertir,
var clockSpeed = 0.001f * (uint)item["MaxClockSpeed"];
OriginalL'auteur wiero
Essayer ce code
CurrentClockSpeed
sonne comme l'actuel, pas le maximum 🙂vous devez utiliser un disposer déclaration. à l'aide de(ManagementObject Mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'")) { ... }
il suffit de remplacer CurrentClockSpeed par MaxClockSpeed et vous avez terminé
Nakhli -- ok, alors c'est la meilleure solution
vous devriez upvote mon commentaire alors 😛
OriginalL'auteur Amir Ismail
On pourrait prendre les informations de la base de registre, mais je ne sais pas si il fonctionne sur Windows XP ou plus (le mien est Windows 7).
se lit comme
pour moi.
Quelque chose comme ce code peut récupérer les informations (pas testé):
(source: ici)
OriginalL'auteur Matten
Vous pouvez l'obtenir via WMI, mais c'est assez lent, donc, si vous allez être sur plus d'une occasion, je vous suggère de cache - quelque chose comme:
OriginalL'auteur Steven Robbins