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 }
随机推荐
- POJ 2686 Traveling by Stagecoach 壮压DP
大意是有一个人从某个城市要到另一个城市(点数<=30) 然后有n个马车票,相邻的两个城市走的话要消耗掉一个马车票. 花费的时间呢,是马车票上有个速率值,用边/速率就是花的时间. 问最后这个人花费 ...
- Microsoft Azure 大计算 – 宣布收购 GreenButton
数据以及令人不可思议的计算能力,正在改变我们日常业务的经营方式,从科学和工程到媒体和金融,各行各业的客户正逐渐意识到什么是可能的.我们对整个基因组进行分析,以研制新药物.我们构建金融和保险模型, ...
- NOI2015 Day1
NOI2015 Day1 程序自动分析 题目描述:给出等式或不等式\(n\)条,问\(n\)条式子是否成立. solution: 用并查集处理等式,在判断不等式是否成立. 时间复杂度:\(O(n)\) ...
- python中判断readline读到文件末尾
fp = open('somefile.txt') while True: line = fp.readline() if not line: #等价于if line == "": ...
- saiku之固定维度(必选维度)
工作中遇到的问题,记录下来方便以后查找. 在saiku中如何设定固定维度? 找到WorkspaceDropZone.js文件,在synchronize_query: function(){}方法中的“ ...
- 基于Hadoop的大数据平台实施记——整体架构设计
大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃进了大 ...
- hdu-4468-Spy-KMP+贪心
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4468 题目意思: 给你一个串r,求一个串s,使得s的前缀1+s的前缀2+s的前缀3+...+s的前缀 ...
- C# OR/Mapping 数据处理模式学习
为什么要提出O/R Mapping概念 程序语言已经由面向过程的模型全面转向为面向对象的模型,UML的出现更加革新了软件开发方法论.然而数据库模型却从未随着开发语言的进步而随之革新,仍然使用面向关系的 ...
- XX秘籍
第一课 一个男人在他妻子洗完澡后准备进浴室洗澡.这时,门铃响了. 妻子迅速用浴巾裹住自己冲到门口. 当她打开门时,邻居鲍勃站在那儿. 在她开口前,鲍勃说,“你如果把浴巾拿掉,我给你800美元.” 想了 ...
- 【图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法
简介: 本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD).绝对误差和算法(SAD).误差平方和算法(SSD).平均误差平方和算法(MSD).归一化积相关算法(NCC).序贯相似性检测算 ...