2012-05-18 11 views
7

So che è stato chiesto prima, ma non riesco proprio a farlo funzionare. ho chiamato il seguente:Imposta velocità ventilatore in C#

using System.Management; 
using System.Management.Instrumentation; 
using System.Runtime.InteropServices; 

E ho provato questo (lo so che è patetico, ma è la migliore che ho trovato):

[DllImport("Cimwin32.dll")] 
     private void button1_Click(object sender, EventArgs e) 
     { 
      uint32 SetSpeed(//??? 
       [in] uint64 300 
      ); 
     } 

Come è possibile impostare la velocità della ventola del computer via C# ?

+1

Quale fan si desidera impostare? La maggior parte dei computer ne ha molti. E perché vuoi farlo? Non sarebbe molto più facile usare un'utilità come SpeedFan? –

+0

@DavidHeffernan, buoni punti, e non sapevo nemmeno che SpeedFan Utility esistesse. – funerr

+0

possibile duplicato di [C# control FAN speed] (http://stackoverflow.com/questions/9391181/c-sharp-control-fan-speed) –

risposta

2

Non dovrebbe il tuo PInvoke essere qualcosa di simile:

[DllImport("Cimwin32.dll")] 
static extern uint32 SetSpeed(in uint64 sp); 

private void button1_Click(object sender, EventArgs e) 
{ 
      SetSpeed(300); 
} 

Anche qui un metodo C++ per farlo. Si potrebbe mettere che in una DLL e chiamare dal codice C#

How can I control my PC's fan speed using C++ in Vista?

+0

Questa è una dichiarazione pinvoke valida. Ma quella funzione non esiste per quanto posso dire. Ho sbagliato? –

+1

Ricevo un errore nella sezione unit64, dice che non è in grado di trovare una definizione per questo. – funerr