Wackeln mit der Maus

  • OK. Dies ist ein bisschen eine Eitelkeits-App, aber ich hatte heute bei der Arbeit eine Situation, in der ich in einer Schulung war und die Maschine alle 10 Minuten gesperrt war. Wenn sich die Trainer auf das Reden freuen würden - im Gegensatz zum Wechseln der Folien - würde die Maschine blockieren.

    Ich möchte eine Teenager-App schreiben, die nur eine Taskleiste hat Symbol, das nichts weiter tut, als die Maus alle 4 Minuten um 1 Pixel zu bewegen.

    Ich kann das mit Delphi (meiner starken Sprache) auf drei Arten tun, aber ich ziehe für die Arbeit zu C # und möchte gerne den Weg des geringsten Widerstands dort kennenlernen.

    06 February 2013
    Fionnuala
4 answers
  • für C # 3.5

    ohne notifyicon Daher müssen Sie diese Anwendung im Task-Manager manuell beenden

     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();
        }
    }
     
    05 August 2008
    lubos hasko
  • Der "richtige" Weg, dies zu tun, besteht darin, auf die WM_SYSCOMMAND-Nachricht zu antworten. In C # sieht das ungefähr 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 das Kennwort für den Bildschirmschoner in Vista oder höher aktiviert ist, funktioniert dies nicht. Das programmgesteuerte Bewegen der Maus wird vermutlich ebenfalls ignoriert, obwohl ich dies nicht getestet habe.

    18 August 2008
    Zooba
  • Wenn ich von zu Hause aus arbeite, binde ich das Mauskabel an einen Desktop-Lüfter, der von links nach rechts schwingt. Dadurch bleibt die Maus in Bewegung und die Workstation kann nicht in den Ruhezustand versetzt werden.

    21 May 2012
    yoozer8mkral
  • So etwas sollte funktionieren (obwohl Sie das Intervall ändern möchten).

     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);
    }
     
    05 December 2012
    Alex Essilfiemusefan