2012-05-18 33 views
7

Tôi biết điều này đã được hỏi trước đây, nhưng tôi dường như không thể làm cho nó hoạt động. Tôi đã kêu gọi như sau:Đặt tốc độ quạt ở C#

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

Và tôi đã cố gắng này (tôi biết đó là thảm hại, nhưng nó là tốt nhất tôi tìm thấy):

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

Làm thế nào tôi có thể thiết lập tốc độ quạt của máy tính qua C# ?

+1

Những fan hâm mộ nào bạn muốn thiết lập? Hầu hết các máy tính đều có rất nhiều máy tính. Và tại sao bạn muốn làm điều này? Nó sẽ không dễ dàng hơn nhiều khi sử dụng một tiện ích như SpeedFan? –

+0

@DavidHeffernan, điểm tốt, Và tôi không biết rằng SpeedFan Utility thậm chí còn tồn tại. – funerr

+0

có thể trùng lặp của [C# điều khiển tốc độ FAN] (http://stackoverflow.com/questions/9391181/c-sharp-control-fan-speed) –

Trả lời

2

nên không PInvoke bạn có một cái gì đó như thế:

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

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

Ngoài ra đây là một phương pháp ++ C để làm như vậy. Bạn có thể đặt rằng trong một DLL và gọi nó từ C mã của bạn #

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

+0

Đó là một khai báo pinvoke hợp lệ. Nhưng chức năng đó không tồn tại cho đến nay như tôi có thể nói. Liệu tôi có sai? –

+1

Tôi nhận được một lỗi trong phần unit64, nó nói rằng nó không thể tìm thấy một định nghĩa cho nó. – funerr

Các vấn đề liên quan