Wackeln mit der Maus

stimmen
35

OK. Das ist ein bisschen einer Eitelkeit app, aber ich hatte eine Situation heute bei der Arbeit, wo ich in einer Ausbildung Klasse war und die Maschine wurde eingestellt alle 10 Minuten zu sperren. Nun, wenn die Trainer begeistert reden bekommen - im Gegensatz zu den Bildwechseln - die Maschine würde perren.

Ich möchte eine Teeny App schreiben, die nichts anderes als ein Symbol der Taskleiste hat, die nichts tut, aber die Maus um 1 Pixel alle 4 Minuten zu bewegen.

Ich kann auf 3 Arten mit Delphi (meine starke Sprache), aber ich bin bewegt, um C # für die Arbeit tun, und ich möchte dort den Weg des geringsten Widerstandes kennen.

Veröffentlicht am 05/08/2008 um 03:51
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
23

für C # 3.5

ohne NotifyIcon deshalb müssen Sie diese Anwendung im Task-Manager beenden, manuell

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();
    }
}
Beantwortet am 05/08/2008 um 04:00
quelle vom benutzer

stimmen
12

Der „richtige“ Weg, dies zu tun ist, um die WM_SYSCOMMAND Nachricht zu antworten. In C # sieht das etwa so aus:

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

Laut MSDN , wenn der Bildschirmschoner Passwort durch Politik auf Vista oder höher aktiviert ist, wird dies nicht funktionieren. Vermutlich programmatisch Bewegen der Maus auch ignoriert, obwohl ich nicht getestet haben.

Beantwortet am 17/08/2008 um 21:29
quelle vom benutzer

stimmen
9

Als ich von zu Hause aus arbeiten, tue ich dies mit der Maus Kabel an einen Desktop-Fan zu binden, die nach rechts links schwingen. Es hält die Maus zu bewegen und hält die Workstation von dem Einschlafen.

Beantwortet am 09/12/2011 um 21:29
quelle vom benutzer

stimmen
2

So etwas sollte (obwohl Sie arbeiten werden wollen das Intervall ändern).

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);
}
Beantwortet am 05/08/2008 um 04:07
quelle vom benutzer

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