Wiggling mouse-ul

voturi
35

O.K. Acesta este un pic de o aplicatie de vanitate, dar am avut o situație de astăzi, la locul de muncă în cazul în care am fost într-o clasă de formare, iar aparatul a fost setat pentru a bloca la fiecare 10 minute. Ei bine, în cazul în care formatorii am entuziasmat despre vorbesc -, spre deosebire de schimbarea diapozitivelor - aparatul va bloca în sus.

Aș vrea să scrie o aplicație Teeny care nu are decât o pictogramă din bara de activități care nu face altceva decât să mutați mouse-ul cu 1 pixel la fiecare 4 minute.

Pot face acest lucru în 3 moduri cu Delphi (limba mea puternic), dar eu mă mut la C # pentru muncă și aș vrea să știu calea minimei rezistențe acolo.

Întrebat 05/08/2008 la 03:51
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
23

pentru C # 3.5

fără notifyicon, prin urmare, va trebui să pună capăt această aplicație în task manager manual

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();
    }
}
Publicat 05/08/2008 la 04:00
sursa de către utilizator

voturi
12

Modul „corect“ de a face acest lucru este de a răspunde la mesajul WM_SYSCOMMAND. În C # acest lucru arata ceva de genul:

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

Potrivit MSDN , dacă parola screensaver - ul este activat de politica pe Vista sau de mai sus, acest lucru nu va funcționa. Probabil programatică se deplasează mouse - ul este , de asemenea , ignorat, deși nu am testat acest lucru.

Publicat 17/08/2008 la 21:29
sursa de către utilizator

voturi
9

Când lucrez acasă, eu fac acest lucru prin legarea cablul mouse-ului la un ventilator desktop care pendulează stânga la dreapta. Se păstrează deplasarea mouse-ul și păstrează stația de lucru de la a merge la culcare.

Publicat 09/12/2011 la 21:29
sursa de către utilizator

voturi
2

Ceva de genul asta ar trebui să funcționeze (deși, va dori să schimbe intervalul).

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);
}
Publicat 05/08/2008 la 04:07
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more