windows系统操作类和演示程序(关机,关闭显示器,打开屏幕保护程序,打开光驱等)
/// <summary>
/// 系统控制类,关机,关闭显示器,打开屏幕保存程序等
/// </summary>
public class SystemPowerController
{
private const int WM_SYSCOMMAND = 0x112; //系统消息
private const int SC_SCREENSAVE = 0xF140; //启动屏幕保护消息
private const int SC_MONITORPOWER = 0xF170; //关闭显示器的系统命令
private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff); //广播消息,所有顶级窗体都会接收 [System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam); [System.Runtime.InteropServices.DllImport(@"user32.dll", EntryPoint = "ExitWindowsEx", CharSet = System.Runtime.InteropServices.CharSet.Ansi)]
private static extern int ExitWindowsEx(int uFlags, int dwReserverd); [System.Runtime.InteropServices.DllImport("winmm.dll", EntryPoint = "mciSendStringA")]
private static extern int mciSendString(string lpstrCommand, StringBuilder lpstrReturnString, int uReturnLenght, IntPtr hwndCallback); /// <summary>
/// 显示器操作,打开、关闭、省电状态
/// </summary>
/// <param name="power">指示对显示器用何种操作</param>
public void MonitorPower(MonitorPowerType power)
{
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (int)power);
} /// <summary>
/// 开启屏幕保护程序
/// </summary>
public void ScreenSave()
{
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_SCREENSAVE, 0);
} /// <summary>
/// 系统操作,注销windows、关机、重启
/// </summary>
/// <param name="exit">指示对windows进行何种操作</param>
public void ExitWindows(ExitWindowsType exit)
{
try
{
switch (exit)
{
case ExitWindowsType.Exit://注销
ExitWindowsEx(0, 0);
break;
case ExitWindowsType.Off://关机
HideShutdownUi(" -s -t 0");
break;
case ExitWindowsType.Restart://重启
HideShutdownUi(" -r -t 0");
break;
}
}
catch (Exception)
{
throw;
}
} private void HideShutdownUi(string arguments)
{
//声明一个程序信息类
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
//设置外部程序名
Info.FileName = "Shutdown.exe";
//设置隐藏窗口
Info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
//设置外部程序的启动参数(命令行参数)为test.txt
Info.Arguments = arguments;
//设置外部程序工作目录为 C:\
//Info.WorkingDirectory = "C:\\";
//声明一个程序类
System.Diagnostics.Process Proc;
try
{
//
//启动外部程序
//
Proc = System.Diagnostics.Process.Start(Info);
}
catch (System.ComponentModel.Win32Exception exc)
{
throw exc;
}
} /// <summary>
/// 打开或关闭光驱
/// </summary>
/// <param name="open">true:打开,false:关闭</param>
public void CDDriver(bool open)
{
if (open)
mciSendString("set cdaudio door open", null, 0, IntPtr.Zero);
else
mciSendString("set cdaudio door closed", null, 0, IntPtr.Zero);
}
} /// <summary>
/// 显示器操作枚举
/// </summary>
public enum MonitorPowerType
{
/// <summary>
/// 打开显示器
/// </summary>
POWER_ON = -1,
/// <summary>
/// 进入省电状态
/// </summary>
POWER_SAVE = 1,
/// <summary>
/// 关闭显示器
/// </summary>
POWER_OFF = 2
} /// <summary>
/// 系统操作枚举
/// </summary>
public enum ExitWindowsType
{
/// <summary>
/// 注销windows
/// </summary>
Exit,
/// <summary>
/// 关机
/// </summary>
Off,
/// <summary>
/// 重启系统
/// </summary>
Restart
}
自己在网上查阅的所需资源整理后封装成的windows系统操作类,测试全通过,放心使用。
windows系统操作类和演示程序(关机,关闭显示器,打开屏幕保护程序,打开光驱等)的更多相关文章
- 使用 WPF 开发一个 Windows 屏幕保护程序
最近有小伙伴问我如何可以让 Windows 静置一段时间不操作之后,显示一个特殊的界面.我想了想,屏幕保护程序可以做到这一点,而且,屏幕保护程序的开发也是非常简单的. 本文将介绍如何为 Windows ...
- windows屏幕保护程序opengl模板
Visual Studio 2013 屏幕保护程序opengl模板 ScreenSaver.cpp #define VC_EXTRALEAN #include <windows.h> #i ...
- Windows系统操作指令汇总
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本) 1. appwiz.cpl:程序和功能 2. calc:启动计算器 3. certmgr ...
- windows系统操作
1.怎么更新补丁 有些软件的运行需要windows要安装相关的补丁,除了去微软官网下载补丁外,可以用windows自带的“系统更新”来完成,省去找补丁下载以及研究系统缺少哪些补丁. 控制面板--> ...
- Windows系统批处理命令实现计划关机
操作步骤: 1.新建一个文本文件,粘贴下面代码,保存为shutdown.bat @echo off echo 请输入延迟关机分钟数 echo 小于1分钟将视为立即关机,负数为取消关机 set /p t ...
- 【日常小问题】windows系统操作技巧
如何将文件夹视图设置为“详细信息” @2015.3.30 这段时间刚换了电脑,资源管理器视图模式为“大图标”,很不符合俺的操作习惯.修改之—— 1.打开一个文件夹,设置为详细信息显示. 2.点击工具- ...
- windows系统中Dotnet core runtime 安装后,无法启动次程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll的解决方法
因为dotnet core runtime依赖vc++2015,如果系统未安装vc++2015则会报上面的错误 解决方案:先下载安装vc++2015再安装dotnet core runtime, vc ...
- windows系统下.NET CORE c# 通过bat脚本发布iis应用程序,半智能点击式ci/cd
这里以git为例子讲解: 第一个 pullCode.bat 文件是 拉取代码 git pull 第二个 publish.bat 脚本,编译代码,并发布指定文件夹 dotnet publish &quo ...
- Windows 屏幕保护程序
{ 创建一个win32 窗口项目,不是控制台的 把exe改为src文件 复制到windows目录下 ok }
随机推荐
- Joseph(约瑟夫环)
Joseph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- 一个简单的游标删除SQL SERVER表
use databaseName declare @tblname char(100) declare @sql char(5000) declare table_cursor cursor for ...
- org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x0) was found in the CDATA sectio
偶尔有一次beyond compare比较部署文件时,发现有一个JSP文件结尾的地方有一大堆空白的二进制符号,当时没有管,就覆盖上去了. =================背景分割线========= ...
- 初探swift语言的学习笔记(闭包-匿名函数或block块代码)
使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButto ...
- 关于ajax的那些事
什么是ajax AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. Ajax包含下列技术:基于 ...
- [编程题] 最大的LeftMax与rightMax之差绝对值
[编程题] 最大的LeftMax与rightMax之差绝对值 给定一个长度为N的整型数组arr,可以划分成左右两个部分: 左部分arr[0..K],右部分arr[K+1..arr.length-1], ...
- dedecms导入编辑器
<?php GetEditor("info","",450,"Diy"); ?>
- 测试heightlight
var a = '综合型律师事务所'; if (a == '综合型律师事务所') { initradio('ls_classes', '综合型律师事务所'); } else { initradio(' ...
- poj2987 Firing
以前只是A过很简单的最大闭合权像hdu1565之类,完全的最大流模板题.但是都完全不太懂最大闭合权的定义及其用途. 关于最大流的基础知识,大家可以自己网上搜索关键字.有点基础的哥们妹们,推荐看看胡伯涛 ...
- linux grep 指定字符串的正则表达式
cat all_uuid_log | grep "[a-z0-9]\{32\}"