Kroutí myši

hlasů
35

OK. To je trochu marnost app, ale měl jsem situaci dnes v práci, kde jsem byl ve třídě školení a stroj byl nastaven pro zamknutí každých 10 minut. No, v případě, že trenéři dostali nadšeni mluvit - v protikladu k výměně jednotlivých záběrů - stroj by zamknout.

Chtěl bych napsat malinký aplikaci, která nemá nic jiného než ikony na hlavním panelu, který nedělá nic, ale pohybovat myší o 1 obrazový bod za 4 minuty.

Mohu dělat, že do 3 způsoby s Delphi (moje silná jazyk), ale já jsem se přestěhoval do C # pro práci a chtěl bych znát cestu nejmenšího odporu tam.

Položena 05/08/2008 v 03:51
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
23

pro C # 3.5

bez NotifyIcon proto budete muset ručně ukončit tuto aplikaci ve Správci úloh

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();
    }
}
Odpovězeno 05/08/2008 v 04:00
zdroj uživatelem

hlasů
12

„Správná“ způsob, jak to udělat, je reagovat na WM_SYSCOMMAND zprávě. V C # to vypadá asi takto:

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

Podle MSDN , pokud je spořič obrazovky heslem povoleno politiky na Vista nebo vyšší, to nebude fungovat. Pravděpodobně programově pohybem myši je také ignorován, i když nebyly testovány to.

Odpovězeno 17/08/2008 v 21:29
zdroj uživatelem

hlasů
9

Když pracuji z domova, to já svázáním myši kabel ke stolnímu ventilátorem, který osciluje zleva doprava. Udržuje myši do pohybu a udržuje pracovní stanici do režimu spánku.

Odpovězeno 09/12/2011 v 21:29
zdroj uživatelem

hlasů
2

Něco takového by měl pracovat (i když, budete se chtít změnit interval).

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);
}
Odpovězeno 05/08/2008 v 04:07
zdroj uživatelem

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