如何通过代码关闭硬盘、关闭光驱、关闭USB电源、CPU降频?

时间:2023-01-24 16:10:45
如何通过代码实现如下功能:
1、关闭硬盘
2、关闭光驱
3、关闭USB电源
4、CPU降频

69 个解决方案

#1


sf先占了

#2


关注一下,感觉有点难度,要是C或C++那是可以。

#3


API调用应该都差不多

#4



void CloseLCD(object sender, EventArgs e)
         {
             SendMessage(this.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);    // 2 为关闭显示器, -1则打开显示器
         }
        SendMessage#region SendMessage
        public const uint WM_SYSCOMMAND = 0x0112;
        public const uint SC_MONITORPOWER = 0xF170;
        [DllImport("user32")]
        public static extern IntPtr SendMessage(IntPtr hWnd, uint wMsg, uint wParam, int lParam);
        #endregion

#5



using System; 
  2using System.Drawing; 
  3using System.Collections; 
  4using System.ComponentModel; 
  5using System.Windows.Forms; 
  6using System.Data; 
  7 
  8namespace CDDoor 
  9{ 
 10    /**//// <summary> 
 11    /// Form1 的摘要说明。 
 12    /// </summary> 
 13    public class Form1 : System.Windows.Forms.Form 
 14    { 
 15        private System.Windows.Forms.Button button1; 
 16        /**//// <summary> 
 17        /// 必需的设计器变量。 
 18        /// </summary> 
 19        private System.ComponentModel.Container components = null; 
 20 
 21        [System.Runtime.InteropServices.DllImport("winmm.dll", EntryPoint="mciSendStringA")]  
 22        private static extern long CDdoor(string lpstrCommand, string lpstrReturnString, long uReturnLength, long hwndCallback); 
 23 
 24        private bool CDOpen = true; 
 25 
 26        public Form1() 
 27        { 
 28            InitializeComponent(); 
 29 
 30            this.button1.Text = "点击关闭光驱";  
 31            CDdoor("set CDAudio door open", "0", 0, 0);  
 32        } 
 33 
 34        /**//// <summary> 
 35        /// 清理所有正在使用的资源。 
 36        /// </summary> 
 37        protected override void Dispose( bool disposing ) 
 38        { 
 39            if( disposing ) 
 40            { 
 41                if (components != null)  
 42                { 
 43                    components.Dispose(); 
 44                } 
 45            } 
 46            base.Dispose( disposing ); 
 47        } 
 48 
 49        Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码 
 50        /**//// <summary> 
 51        /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
 52        /// 此方法的内容。 
 53        /// </summary> 
 54        private void InitializeComponent() 
 55        { 
 56            this.button1 = new System.Windows.Forms.Button(); 
 57            this.SuspendLayout(); 
 58            //  
 59            // button1 
 60            //  
 61            this.button1.Location = new System.Drawing.Point(104, 128); 
 62            this.button1.Name = "button1"; 
 63            this.button1.TabIndex = 0; 
 64            this.button1.Click += new System.EventHandler(this.button1_Click); 
 65            //  
 66            // Form1 
 67            //  
 68            this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); 
 69            this.ClientSize = new System.Drawing.Size(292, 273); 
 70            this.Controls.Add(this.button1); 
 71            this.Name = "Form1"; 
 72            this.Text = "Form1"; 
 73            this.ResumeLayout(false); 
 74 
 75        } 
 76        #endregion 
 77 
 78        /**//// <summary> 
 79        /// 应用程序的主入口点。 
 80        /// </summary> 
 81        [STAThread] 
 82        static void Main()  
 83        { 
 84            Application.Run(new Form1()); 
 85        } 
 86 
 87        private void button1_Click(object sender, System.EventArgs e) 
 88        { 
 89            if (CDOpen == false)  
 90            {  
 91                CDdoor("set CDAudio door open", "0", 0, 0);  
 92                CDOpen = true;  
 93                this.button1.Text = "点击关闭光驱";  
 94            }  
 95            else  
 96            {  
 97                CDdoor("set CDAudio door closed", "0", 0, 0);  
 98                CDOpen = false;  
 99                this.button1.Text = "点击打开光驱";  
100            } 
101        } 
102    } 
103} 
104 

#6


mark

#7


学习、收藏

#8


mark..

#9


先mark

#10


yagebu1983 所提供的是打开、关闭光驱的门,而不是电源

#11


引用 7 楼 xiaotuni 的回复:
学习、

收藏

#12


找找相应的API。

#13


這些要求啊,winAPI,頭疼,收藏了。以后用得著呢

#14


API很强大
没用过

#15


up

#16


API实现不了吧.
关闭硬盘得IFS驱动,关闭USB得WDM驱动,光驱不知道.

#17


找找相应的api调用

#18


呵呵,留位研究

#19


该回复于2008-09-27 10:16:52被版主删除

#20


关注。。

#21


收藏下,这也太强悍了啊.

#22


引用 9 楼 wdgphc 的回复:
先mark
。。

#23


关注下
呵呵,这些知识都不知从哪去接触

#24


up

#25


up

#26


ding

#27


mark强悍啊

#28


up

#29


up

#30


Eject USB disks using C#http://www.codeproject.com/KB/system/usbeject.aspx

#31


已阅

#32


学习 收藏!

#33


mark~

#34


api,不过感觉在.net下调api有点怪怪的,要不直接用vc++2005写非托管代码

#35


mark

#36


mark~~~

#37


藏了~~

#38


学习了,,
见识了

#39


还没有找到方法

#40


mark

#41


用VC我知道怎么写,因为THINKPAD有一款笔记本可以检查电脑是否处于振动状态,如果是,那么关闭硬盘并停止转动,还有,所有的电脑都有节能功能,就是自动关闭电源,用C#不知道,如果想这C++代码,我可以找找,以前写过,不知道放哪里了,应该可以找回来的.

#42


其他的可能会有办法。。。 CPU降频能实现吗?

#43


能有C++的也可以的。

#44


mark

#45


mark

#46


难道想做木马么?

#47


C#写这些怪怪的

#48


up

#49


这里交流气氛不错。

#50


up

显示器的开关、待机等我倒是有

#1


sf先占了

#2


关注一下,感觉有点难度,要是C或C++那是可以。

#3


API调用应该都差不多

#4



void CloseLCD(object sender, EventArgs e)
         {
             SendMessage(this.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 2);    // 2 为关闭显示器, -1则打开显示器
         }
        SendMessage#region SendMessage
        public const uint WM_SYSCOMMAND = 0x0112;
        public const uint SC_MONITORPOWER = 0xF170;
        [DllImport("user32")]
        public static extern IntPtr SendMessage(IntPtr hWnd, uint wMsg, uint wParam, int lParam);
        #endregion

#5



using System; 
  2using System.Drawing; 
  3using System.Collections; 
  4using System.ComponentModel; 
  5using System.Windows.Forms; 
  6using System.Data; 
  7 
  8namespace CDDoor 
  9{ 
 10    /**//// <summary> 
 11    /// Form1 的摘要说明。 
 12    /// </summary> 
 13    public class Form1 : System.Windows.Forms.Form 
 14    { 
 15        private System.Windows.Forms.Button button1; 
 16        /**//// <summary> 
 17        /// 必需的设计器变量。 
 18        /// </summary> 
 19        private System.ComponentModel.Container components = null; 
 20 
 21        [System.Runtime.InteropServices.DllImport("winmm.dll", EntryPoint="mciSendStringA")]  
 22        private static extern long CDdoor(string lpstrCommand, string lpstrReturnString, long uReturnLength, long hwndCallback); 
 23 
 24        private bool CDOpen = true; 
 25 
 26        public Form1() 
 27        { 
 28            InitializeComponent(); 
 29 
 30            this.button1.Text = "点击关闭光驱";  
 31            CDdoor("set CDAudio door open", "0", 0, 0);  
 32        } 
 33 
 34        /**//// <summary> 
 35        /// 清理所有正在使用的资源。 
 36        /// </summary> 
 37        protected override void Dispose( bool disposing ) 
 38        { 
 39            if( disposing ) 
 40            { 
 41                if (components != null)  
 42                { 
 43                    components.Dispose(); 
 44                } 
 45            } 
 46            base.Dispose( disposing ); 
 47        } 
 48 
 49        Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码 
 50        /**//// <summary> 
 51        /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
 52        /// 此方法的内容。 
 53        /// </summary> 
 54        private void InitializeComponent() 
 55        { 
 56            this.button1 = new System.Windows.Forms.Button(); 
 57            this.SuspendLayout(); 
 58            //  
 59            // button1 
 60            //  
 61            this.button1.Location = new System.Drawing.Point(104, 128); 
 62            this.button1.Name = "button1"; 
 63            this.button1.TabIndex = 0; 
 64            this.button1.Click += new System.EventHandler(this.button1_Click); 
 65            //  
 66            // Form1 
 67            //  
 68            this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); 
 69            this.ClientSize = new System.Drawing.Size(292, 273); 
 70            this.Controls.Add(this.button1); 
 71            this.Name = "Form1"; 
 72            this.Text = "Form1"; 
 73            this.ResumeLayout(false); 
 74 
 75        } 
 76        #endregion 
 77 
 78        /**//// <summary> 
 79        /// 应用程序的主入口点。 
 80        /// </summary> 
 81        [STAThread] 
 82        static void Main()  
 83        { 
 84            Application.Run(new Form1()); 
 85        } 
 86 
 87        private void button1_Click(object sender, System.EventArgs e) 
 88        { 
 89            if (CDOpen == false)  
 90            {  
 91                CDdoor("set CDAudio door open", "0", 0, 0);  
 92                CDOpen = true;  
 93                this.button1.Text = "点击关闭光驱";  
 94            }  
 95            else  
 96            {  
 97                CDdoor("set CDAudio door closed", "0", 0, 0);  
 98                CDOpen = false;  
 99                this.button1.Text = "点击打开光驱";  
100            } 
101        } 
102    } 
103} 
104 

#6


mark

#7


学习、收藏

#8


mark..

#9


先mark

#10


yagebu1983 所提供的是打开、关闭光驱的门,而不是电源

#11


引用 7 楼 xiaotuni 的回复:
学习、

收藏

#12


找找相应的API。

#13


這些要求啊,winAPI,頭疼,收藏了。以后用得著呢

#14


API很强大
没用过

#15


up

#16


API实现不了吧.
关闭硬盘得IFS驱动,关闭USB得WDM驱动,光驱不知道.

#17


找找相应的api调用

#18


呵呵,留位研究

#19


该回复于2008-09-27 10:16:52被版主删除

#20


关注。。

#21


收藏下,这也太强悍了啊.

#22


引用 9 楼 wdgphc 的回复:
先mark
。。

#23


关注下
呵呵,这些知识都不知从哪去接触

#24


up

#25


up

#26


ding

#27


mark强悍啊

#28


up

#29


up

#30


Eject USB disks using C#http://www.codeproject.com/KB/system/usbeject.aspx

#31


已阅

#32


学习 收藏!

#33


mark~

#34


api,不过感觉在.net下调api有点怪怪的,要不直接用vc++2005写非托管代码

#35


mark

#36


mark~~~

#37


藏了~~

#38


学习了,,
见识了

#39


还没有找到方法

#40


mark

#41


用VC我知道怎么写,因为THINKPAD有一款笔记本可以检查电脑是否处于振动状态,如果是,那么关闭硬盘并停止转动,还有,所有的电脑都有节能功能,就是自动关闭电源,用C#不知道,如果想这C++代码,我可以找找,以前写过,不知道放哪里了,应该可以找回来的.

#42


其他的可能会有办法。。。 CPU降频能实现吗?

#43


能有C++的也可以的。

#44


mark

#45


mark

#46


难道想做木马么?

#47


C#写这些怪怪的

#48


up

#49


这里交流气氛不错。

#50


up

显示器的开关、待机等我倒是有