永利官网ylg客户端利用js在网页上记下鼠标划圈的小程序

大功告成,忽然间觉得清爽了很多。

问题分析与实现

这个小程序的难点在于如何知道鼠标完成了一个转圈的动作,而且人工使用鼠标划圈时也不会是一个标准的圆,通常都是很不规律的。这点上我网上找了找发现浏览器的鼠标手势实现了。

而且我找了一个人实现的手势识别,是通过计算两个点形成的角度来判断,我开始也觉得这种方法不错。但是我在具体实现的时候想到了另一个方法。

我的实现方法:把一个圆分为4个等分,也就是扇区:左上,左下,右上,右下。然后通过记录鼠标经过的点与前一个点坐标来判断是在哪个扇区,只要四个扇区都经过了就表示划了一个圆。这样做的话对鼠标轨迹要求不高,只要走的方向对就行了。

永利官网ylg客户端 1

  (2).使得字符在屏幕上不断移动:

官方文档中文版

先看几张图体会一下:

Spin-Wheel

实现鼠标在网页上转圈时记录转动圈数的小程序,每转一圈记录一次,同时要是顺时针方向的。

  由于屏幕保护都是Windows程序,所以编译的时候,要产生Windows程序,编译的命令如下:

具体步骤

  1. 下载并安装autohotkey。

  2. 在你觉得合适的地方鼠标右键-新建-autohotkey
    script(脚本);或者创建一个别的文件,再把后缀改成ahk也可以

  3. 一个新建的ahk文档里面会有这些东西

    #NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn  ; Enable warnings to assist with detecting common errors.
    SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
    

    不用管这些

  4. 在下面输入

    !j::
       Send, {Down}
    Return
    
    !l::
       Send, {Right}
    Return
    
    !h::
       Send, {Left}
    Return
    
    !k::
       Send, {Up}
    Return
    

    这几句话是把↑改成了alt+k;↓为alt+j;←为alt+h;→为alt+l。如果想用ctrl代替alt,就把!
    换成^ 。其他的+ 代表shift,#
    代表windows键,更详细的看这个。如果不需要其他功能了,直接保存并关闭,跳到第
    步。

  5. 永利官网ylg客户端,加入修改回车的功能。键盘左侧的Capslock(锁定大小写)键使用频率相对还是不高的,而回车键的位置又有点坑,改之。直接复制这段这两行。

    $CapsLock::Enter
    
    LAlt & Capslock::SetCapsLockState, % GetKeyState("CapsLock", "T") ? "Off" : "On"
    

    ylg娱乐官网,这样,左侧的Capslock键就成了回车,以后小量的大写字母用shift+字母,如果有大量的大写字母的输入,用alt+Capslock
    ,跟之前Capslock是一样的。

  6. autohotkey也可以用快捷键启动软件,例如

    !o::
       Run, C:Program FilesEverythingEverything.exe
    Return
    

    现在alt+o就是启动everything的快捷键了。同样的,如果想用ctrl代替alt,就把!
    换成^ 。其他的+ 代表shift,#
    代表windows键,更详细的看这个。如果想启动其他的软件,就把上面的路径换成你想启动的那个软件的路径机就可以了。

  7. 保存,关闭

  8. 在编辑好的文件点击鼠标右键,选择编译脚本,也可能是Compile
    script,也可能是Compile脚本,都是一样的。编译之后就会生成一个.exe的文件,把这个文件放到开机启动文件夹中(C:ProgramDataMicrosoftWindowsStart
    MenuProgramsStartUp),每次开机就可以自动启动了。

永利官网ylg客户端 2

最后发一下代码

代码我丢到github上了,

  二.C#编写字幕显示屏保程序的关键步骤以及解决方法:

autohotkey官网

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesExplorer]
"NoInternetOpenWith"=dword:00000001
"NoFileAssociate"=dword:00000001

然后考虑顺时针问题

上面说了每个扇区的计算方式,但是这个如果不考虑时针方向是不成立的,上面的计算方式必须是顺时针才行。如果是逆时针则要反过来计算,所以一旦鼠标逆时针转到,那么也会计算扇区,只不过计算的扇区就不是自己想要的结果啦。

在此我的解决方法是,在计算了扇区后进行一次检查,如果发现前一个扇区不是连续的就说明时针方向错了,重新开始记录轨迹。还是以上面那个图为例子:

当P1-P3开始移动后,说明在【右上扇区】,然后判断前一个扇区是否有经过,如果没有经过说明当前扇区可能是开始扇区,然后判断后一个扇区是否有经过,如果没有经过说明确实是首扇区,是正常的轨迹。反之则说明鼠标转反了。

其他的扇区以此类推。

移动,还可以变换字符进入屏幕的位置。从而也丰富了屏幕保护的内容。其实要实现这些判断,首先还必须知道屏幕的工作区域,因为只有先知道屏幕的工作区域

autohotkey官方文档

但是,我还是觉得不爽。

如何计算扇区

那么来看看如何知道是在哪个扇区呢?因为鼠标在刚开始时只是在某一个点上,只有移动了一段距离后才知道在哪。我们看一下下面的图:
永利官网ylg客户端 3

这里面我标识了10个点,我们可以发现鼠标在经过这10个点说明就是画了一个圈,对吧。然后我们看这些点有哪些规律?

比如,假如我们鼠标是从P1开始移动的,然后移动到P2,再到P3,可以发现x轴是越来越大的,同时y轴也是越来越大。也就是说我们只要将鼠标移动的轨迹记录下来,然后逐个点进行分析,只要符合上面规律的就可以理解为在【右上扇区】。

同理,我们再看P3->P6,则发现x轴是越来越小,而y轴是越来越大的,说明是【右下扇区】,后面两个扇区以此类推。

程序中,判断鼠标是否移动的思路是通过二个全局变量记录下,程序刚刚运行的时候的鼠标的位置(即:X和Y),当鼠标移动的时候,判断移动后的位置和记录的

实在很佩服自己就那样默默忍受了很多很多年。其实这些东西在网上小小的一搜,5分钟就能搞定。

// 把鼠标刚刚开始移动的位置给记录下来
if ( ixStart == 0 && iyStart == 0 )
{
ixStart = e.X ;
iyStart = e.Y ;
return ;
}
//判断自屏幕保护程序运行后,鼠标的位置是否变动
else if ( e.X != ixStart || e.Y != iyStart )
{
Cursor .Show ( ) ; 
timerSaver.Enabled = false ;
Application .Exit ( ) ;
};

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

就完成了从编写到配置的全部工作了。

双击桌面上的00.reg ,点确定,到提示成功导入。

也就设定了在屏幕上要移动的字符。定时器每隔一段时间,都把Label组件的横坐标减去一个定值,这样在定时器的驱动下,Label组件的位置就变换了,带来的视

永利官网ylg客户端 4

  屏幕保护程序的扩展名虽然是”scr”,但其实是一个可执行的”exe”文件。但他又是一个比较独特的”exe”文件。下面就来探讨一下,用C#是如何编写屏幕保护


  三.总结:

发表评论

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