문제

좋아요.이것은 약간 허영심이 강한 앱이지만 오늘 직장에서 훈련 수업을 듣고 기계가 10분마다 잠기도록 설정되어 있는 상황이 있었습니다.글쎄요, 트레이너가 슬라이드를 바꾸는 대신 대화에 흥미를 가지면 기계가 잠길 것입니다.

저는 4분마다 마우스를 1픽셀씩 움직이는 작업 표시줄 아이콘만 있는 작은 앱을 작성하고 싶습니다.

저는 Delphi(나의 강력한 언어)를 사용하여 3가지 방법으로 이를 수행할 수 있지만 업무를 위해 C#으로 전환하고 있으며 거기에서 저항이 가장 적은 경로를 알고 싶습니다.

도움이 되었습니까?

해결책

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();
    }
}

다른 팁

이를 수행하는 "올바른" 방법은 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 이상에서 정책에 따라 화면 보호기 비밀번호가 활성화된 경우 작동하지 않습니다.아마도 프로그래밍 방식으로 마우스를 움직이는 것도 무시되지만, 이것을 테스트하지는 않았습니다.

집에서 일할 때는 왼쪽에서 오른쪽으로 회전하는 데스크탑 팬에 마우스 코드를 묶어서 작업합니다.마우스가 계속 움직이고 워크스테이션이 절전 모드로 전환되는 것을 방지합니다.

이와 같은 것이 작동해야 합니다(그러나 당신은 ~ 할 것이다 간격을 변경하고 싶습니다).

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);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top