C#边学边玩之修复网吧火箭下载器源码,C#操作系统服务、运行外部程序源码参考
上一篇讲的是使用C#停止/启动系统服务。源码里面有相关写好的函数,大家可以拿去直接开发其他相关功能,比如,隔一段时间自动重启下某个容易出错的服务。今天咱们来写一个比较实用的小工具——调节显示器的亮度小工具。
目前网上很多同类工具了,网吧系统里游戏菜单一般也自带同类工具,但是自己写,知道原理,无后门、无增值、无广告这样的三无绿色工具,那只有高端网维才能体会到的酸爽。而且本工具支持微调,从0-255之间的亮度值都能设置,对于吹毛求疵的网咖顾客来讲,这个很适合他们。
实际测试效果很明显,显示器刷的一下变亮了,再刷一下变暗了。
public static unsafe bool SetBrightness(int brightness) { InitializeClass(); if (brightness > 255) brightness = 255; if (brightness < 0) brightness = 0; short* gArray = stackalloc short[3 * 256]; short* idx = gArray; for (int j = 0; j < 3; j++) { for (int i = 0; i < 256; i++) { int arrayVal = i * (brightness + 128); if (arrayVal > 65535) arrayVal = 65535; *idx = (short)arrayVal; idx++; } } bool retVal = SetDeviceGammaRamp(hdc, gArray); return retVal; }
程序初始化时获取系统的HDC句柄,然后调用SetDeviceGammaRam来实现屏幕亮度的调节。SetDeviceGammaRam本身是支持从0-65535之间的值级别的微调。SetDeviceGammaRam这个函数是系统级别的gdi32.dll提供的一个调节显示器亮度的接口。代码里直接引用这个dll后就可以使用!
C#操作系统非常方便的,因为系统是微软的,C#开发语言也是微软的,所以很方便的。而且C#资料比较多,官网的知识库、文档非常充沛,只要你用心,学起来还是挺轻松的。