干掉windows无脑设定:“始终使用选用的次序展开这种文件”、“使用Web服务查找正确的程序”

先看几张图体会一下:

Spin-Wheel

福寿康宁鼠标在网页上转来转去时记下转动圈数的小程序,每转一圈记录贰次,同期倘诺顺时针方向的。

  (1).设定程序的窗体切合屏幕爱戴的渴求:

劳苦功高告成,忽地间以为安适了重重。

末段发一下代码

代码笔者丢到github上了,

  个中”ixStar”和”iyStart”正是记录程序运转的时候,鼠标的开场地点。

图片 1

主题素材剖判与贯彻

本条小程序的难题在于如何知道鼠标达成了多少个转换体制的动作,并且人工使用鼠标划圈时也不会是三个正式的圆,常常都是非常不公理的。这一点上本人网络找了找发现浏览器的坐骨神经痛势达成了。

再者笔者找了一人完成的手势识别,是经过估测计算四个点产生的角度来决断,笔者起来也认为这种方法不错。可是本人在切实落到实处的时候想到了另一个措施。

笔者的贯彻格局:把二个圆分为4个等分,相当于扇区:左上,左下,右上,右下。然后经过记录鼠标经过的点与前二个点坐标来判断是在哪些扇区,只要四个扇区都由此了就意味着划了叁个圆。那样做的话对鼠标轨迹需要不高,只要走的可行性对就行了。

图片 2

this.Name = “ScreenSaver” ;
//窗体运维后无界限
this.FormBorderStyle = FormBorderStyle.None ;
//程序运维后不出示在任务栏上
this.ShowInTaskbar = false ;
//窗体运营后,最大化,充满整个荧屏

图片 3

怎样计算扇区

那正是说来看看哪些精通是在哪个扇区呢?因为鼠标在刚起始时只是在某五个点上,独有移动了一段距离后才明白在哪。大家看一下下边包车型大巴图:
图片 4

这其中作者标记了11个点,大家得以发掘鼠标在通过那11个点表达就是画了二个圈,对啊。然后大家看那么些点有啥样规律?

举个例子说,若是大家鼠标是从P1起始运动的,然后移动到P2,再到P3,能够窥见x轴是进一步大的,同有时间y轴也是更进一竿大。也正是说我们只要将鼠标移动的轨道记录下来,然后每种点打开深入分析,只要顺应地方规律的就能够知道为在【右上扇区】。

同理,大家再看P3->P6,则发掘x轴是更小,而y轴是越来越大的,表达是【右下扇区】,前边四个扇区由此及彼。

  (4).对Windows对荧屏爱抚设定参数的响应:

加一张效果图:

下一场思考顺时针难点

地点说了每一种扇区的企图方式,不过那么些只要不考虑时针方向是不树立的,下面的计量办法必需是顺时针才行。假使是逆时针则要扭转总计,所以只要鼠标逆时针转到,那么也会总括扇区,只然而总括的扇区就不是友好想要的结果啦。

在此小编的消除措施是,在图谋了扇区后开展三次检查,假诺发现前二个扇区不是接连的就评释时针方向错了,重新开始记录轨道。照旧以上边那些图为例子:

当P1-P3初阶活动后,表明在【右上扇区】,然后决断前贰个扇区是还是不是有经过,若无经过证实当前扇区可能是起首扇区,然后判别后贰个扇区是还是不是有经过,若无通过认证确实是首扇区,是常规的轨迹。反之则证实鼠标转反了。

其它的扇区由此及彼。

  显示器珍贵程序的恢弘名即使是”scr”,但实质上是三个可进行的”exe”文件。但她又是二个比较非常的”exe”文件。上边就来探究一下,用C#是什么编写显示屏爱慕

而是我们大家都在想,以后没时间,作者还要做xxxx事呢,反正多点两下鼠标而已。

,在力所能致落实对Label组件的横坐标和纵坐标的设定工作。上面正是完成此步骤地切实代码:

骨子里很钦佩本身就那么默默忍受了众多过多年。其实这几个事物在网络小小的一搜,5分钟就能够消除。

前后相继中,判定鼠标是不是移动的思路是透过一个全局变量记录下,程序刚刚运维的时候的鼠标的职责(即:X和Y),当鼠标移动的时候,判定移动后的职位和记录的

图片 5

   (2)..Net Framework SDK 正式版

上述是废话,下边才是内容:

//得到计算机显示器的行事区域
Rectangle ssWorkArea = Screen.GetWorkingArea ( this ) ;
lblMarquee.Location = new Point ( ssWorkArea.Width – iDistance ,
lblMarquee.Location.Y ) ;
//呈现标签
lblMarquee.Visible = true ;
// 扩张2个象素点,你可以由此修改speed的值来改动标签的运动速度
iDistance += speed ;
// 如若标签已经走出显示器,则把标签的职位重一直到显示屏的左手
if ( lblMarquee.Location.X <= -( lblMarquee.Width ) )
{
//Reset the distance to 0.
iDistance = 0 ;
//判别标签的职位是或不是在顶端,借使在,则重向来到核心
if ( lblMarquee.Location.Y == 0)
lblMarquee.Location = new Point ( lblMarquee.Location.X , (
ssWorkArea.Height / 2 ) ) ;
//判定标签的地点是不是在宗旨,假诺在,则重平素到尾部 
else if ( lblMarquee.Location.Y == ssWorkArea.Height / 2 )
lblMarquee.Location = new Point ( lblMarquee.Location.X ,
ssWorkArea.Height – lblMarquee.Height ) ;
//重一向到顶端 
else
lblMarquee.Location = new Point ( lblMarquee.Location.X , 0 ) ;


  由于荧屏保养都以Windows程序,所以编写翻译的时候,要产生Windows程序,编写翻译的通令如下:

双击桌面上的00.reg ,点分明,到升迁成功导入。

设定,就能够满意显示器爱抚的渴求,具体如下:

而是,作者也许感觉痛楚。

  在荧屏爱抚运维的时候,当键盘被按动,恐怕鼠标移动,荧屏爱戴都会关闭。在实质上的顺序设计中,检查实验键盘是不是被按动,通过”KeyDown”事件就足以看清。在

图片 6

if (args [ 0 ].Substring ( 0 , 2 ).Equals ( “/c” ) )
{
MessageBox.Show(“此荧屏保养并未有可供设置的选项!”,”用C#创设显示器爱慕” ,
MessageBoxButtons.OK ,MessageBoxIcon.Information ) ;
Application.Exit ( ) ;
}
else if ( args [ 0 ] == “/a” )
{
MessageBox.Show(“此显示屏爱惜并未有可供设定口令的选项!”,”用C#创制荧屏爱慕”
,
MessageBoxButtons.OK ,MessageBoxIcon.Information ) ;
Application.Exit ( ) ;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注