none
使用C# 关闭硬盘电源 RRS feed

全部回复

  • [System.Runtime.InteropServices.DllImport("coredll")]
            public extern static int KernelIoControl(int dwIoControlCode, IntPtr lpInBuf, int nInBufSize, IntPtr lpOutBuf, int nOutBufSize, ref int lpBytesReturned);

    [System.Runtime.InteropServices.DllImport("coredll")]
            public extern static void keybd_event(byte bVK, byte bScan, byte dwFlags, byte dwExtraInfo);

    private void Shutdownbtn_Click(object sender, EventArgs e)//真关机
            {
                int IOCTL_HAL_SHUTDOWN = 0x1012000;//关机
                int bytesReturned = 0;

                byte VK_OFF = 0xdf;
                byte KEYEVENTF_KEYUP = 2;

                KernelIoControl(IOCTL_HAL_SHUTDOWN, IntPtr.Zero, 0, IntPtr.Zero, 0, ref bytesReturned);

                keybd_event(VK_OFF, 0, 0, 0);
                keybd_event(VK_OFF, 0, KEYEVENTF_KEYUP, 0);//关机

            }

    From http://hi.baidu.com/litongshun/blog/item/f014ecbf13f8740e19d81fae.html

    2010年8月25日 3:15
    版主
  • Thank you.

    但是有个问题 我提问的问题是关闭硬盘 指的是在硬盘某些分钟不用后 硬盘停止转动,此时 CPu 内存等还是可以工作的,而您给的Source 我还没有试 但是从注释来看 是关机的意思,关闭硬盘不等于关机的阿。

    2010年8月25日 7:14