摇动鼠标

好。 这是一个虚荣的应用程序,但我今天在工作场所有一个场景,我仍然在训练班,并且设备准备好每10分钟锁定一次。 好吧,如果教练对聊天感到高兴 - 与转换幻灯片相比 - 设备肯定会安全。

我当然会编写一个小应用程序,它只有一个任务栏符号,没有做任何事情,但每4分钟将鼠标重新定位1个像素。

我可以用Delphi(我的可靠语言)用3种方法做到这一点,但我正在为C#工作而搬到C#,我当然也会认识到那里的阻力最小的过程。

0
2019-05-03 23:56:12
资源 分享
答案: 3

“正确”的意思是这样做是为了回复WM_SYSCOMMAND消息。 在C#中,这看起来类似于以下内容:

protected override void WndProc(ref Message m)
{
    // Abort screensaver and monitor power-down
    const int WM_SYSCOMMAND = 0x0112;
    const int SC_MONITOR_POWER = 0xF170;
    const int SC_SCREENSAVE = 0xF140;
    int WParam = (m.WParam.ToInt32() & 0xFFF0);

    if (m.Msg == WM_SYSCOMMAND &&
        (WParam == SC_MONITOR_POWER || WParam == SC_SCREENSAVE)) return;

    base.WndProc(ref m);
}

根据MSDN,如果按计划在Vista或更高版本上启用了屏幕保护程序密码,则此功能将无效。 尽管实际上我没有检查过鼠标,但是可能以编程方式重新定位鼠标的操作也被忽略了。

0
2019-12-03 04:18:22
资源

对于C#3.5

因此,如果没有通知图标,您肯定会要求在工作主管手动结束此申请

using System;
using System.Drawing;
using System.Windows.Forms;

static class Program
{
    static void Main()
    {
        Timer timer = new Timer();
        // timer.Interval = 4 minutes
        timer.Interval = (int)(TimeSpan.TicksPerMinute * 4 / TimeSpan.TicksPerMillisecond);
        timer.Tick += (sender, args) => { Cursor.Position = new Point(Cursor.Position.X + 1, Cursor.Position.Y + 1); };
        timer.Start();
        Application.Run();
    }
}
0
2019-05-07 17:33:40
资源

类似于此的东西需要起作用(但是,你 肯定会的 打算改变这段时期)。

public Form1()
{
    InitializeComponent();
    Timer Every4Minutes = new Timer();
    Every4Minutes.Interval = 10;
    Every4Minutes.Tick += new EventHandler(MoveNow);
    Every4Minutes.Start();
}

void MoveNow(object sender, EventArgs e)
{
    Cursor.Position = new Point(Cursor.Position.X - 1, Cursor.Position.Y - 1);
}
0
2019-05-07 17:09:18
资源