Performance Counter - Win32 Exception
-
Ich wollte da mit dem Performance Counter die CPU-Auslastung anzeigen lassen, mittels folgendem Code:
private void timer1_Tick(object sender, EventArgs e) { progressBar1.Value = (int)performanceCounter1.NextValue(); }
Bei MachineName ist der Punkt eingetragen, ansonsten die üblichen Werte (Kategorie Prozessor usw).
das ergibt mir aber folgende Exception:System.ComponentModel.Win32Exception was unhandled Message="%1 ist keine zulässige Win32-Anwendung" Source="System" ErrorCode=-2147467259 NativeErrorCode=193 StackTrace: bei System.Diagnostics.CounterSampleCalculator.LoadPerfCounterDll() bei System.Diagnostics.CounterSampleCalculator.ComputeCounterValue(CounterSample oldSample, CounterSample newSample) bei System.Diagnostics.CounterSample.Calculate(CounterSample counterSample, CounterSample nextCounterSample) bei System.Diagnostics.PerformanceCounter.NextValue() bei netTaskmanager.Form1.timer1_Tick(Object sender, EventArgs e) in D:\C-Programme\netTaskmanager\netTaskmanager\Form1.cs:Zeile 52. bei System.Windows.Forms.Timer.OnTick(EventArgs e) bei System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) bei System.Windows.Forms.Application.Run(Form mainForm) bei netTaskmanager.Program.Main() in D:\C-Programme\netTaskmanager\netTaskmanager\Program.cs:Zeile 17. bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() bei System.Threading.ThreadHelper.ThreadStart_Context(Object state) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ThreadHelper.ThreadStart()
Was ist denn hier falsch??
Danke
-
Er kann vermutlich die perfcounter.dll nicht laden, Zugriffsrechte fehlen oder die Datei fehlt oder ist defekt.
Ich würde mal versuchen das entsprechende .NET-Framework neu zu installieren...(Die perfcounter.dll gehört zum .NET-Framework, liegt meistens in "C:\WINDOWS\Microsoft.NET\Framework\{.net-version}\perfcounter.dll")
-
Danke! In dem Fall werde ich das Projekt mal auf meinem PC ausprobieren. Bei dem auf dem ich es probiert habe ist das Windows so ziemlich mühsam...