我想通过 windows服务 实现...
比如 服务打开的 时候 
判断程序 程序没打开 就控制 鼠标不能动...
然后 服务打开程序后 鼠标才能动...我只知道 窗体 的 鼠标 控制...没打开窗体 怎么控制...谢谢先!

解决方案 »

  1.   

    那和.NET平台好像没有关联哦
    在Windows上操作鼠标?
      

  2.   

    肯定要用上API了`~  服务启动的时候鼠标就能运行`没有启动就不能运行` 
      

  3.   

    就是几个API,很简单的。看看就懂了。
    using System;
    using System.Threading;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;namespace MouseControl
    {
        class MouseControl
        {
            /// <summary>
            /// 鼠标控制参数
            /// </summary>
            const int MOUSEEVENTF_LEFTDOWN = 0x2;
            const int MOUSEEVENTF_LEFTUP = 0x4;
            const int MOUSEEVENTF_MIDDLEDOWN = 0x20;
            const int MOUSEEVENTF_MIDDLEUP = 0x40;
            const int MOUSEEVENTF_MOVE = 0x1;
            const int MOUSEEVENTF_ABSOLUTE = 0x8000;
            const int MOUSEEVENTF_RIGHTDOWN = 0x8;
            const int MOUSEEVENTF_RIGHTUP = 0x10;
            
            /// <summary>
            /// 鼠标的位置
            /// </summary>
            public struct PONITAPI
            {
                public int x, y;
            }        [DllImport("user32.dll")]
            public static extern int GetCursorPos(ref PONITAPI p);        [DllImport("user32.dll")]
            public static extern int SetCursorPos(int x, int y);        [DllImport("user32.dll")]
            public static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);        [STAThread]
            static void Main()
            {
                PONITAPI p = new PONITAPI();
                GetCursorPos(ref p);
                Console.WriteLine("鼠标现在的位置X:{0}, Y:{1}", p.x, p.y);
                Console.WriteLine("Sleep 1 sec...");
                Thread.Sleep(1000);            p.x = (new Random()).Next(Screen.PrimaryScreen.Bounds.Width);
                p.y = (new Random()).Next(Screen.PrimaryScreen.Bounds.Height);
                Console.WriteLine("把鼠标移动到X:{0}, Y:{1}", p.x, p.y);
                SetCursorPos(p.x, p.y);
                GetCursorPos(ref p);
                Console.WriteLine("鼠标现在的位置X:{0}, Y:{1}", p.x, p.y);
                Console.WriteLine("Sleep 1 sec...");
                Thread.Sleep(1000);            Console.WriteLine("在X:{0}, Y:{1} 按下鼠标左键", p.x, p.y);
                mouse_event(MOUSEEVENTF_LEFTDOWN, p.x, p.y, 0, 0);
                Console.WriteLine("Sleep 1 sec...");
                Thread.Sleep(1000);            Console.WriteLine("在X:{0}, Y:{1} 释放鼠标左键", p.x, p.y);
                mouse_event(MOUSEEVENTF_LEFTUP, p.x, p.y, 0, 0);
                Console.WriteLine("程序结束,按任意键退出....");
                Console.ReadKey();
            }
        }
    }