【发布时间】:2017-03-10 22:54:44
【问题描述】:
项目背景简介...我正在运行一个网络应用程序,它允许用户控制和读取连接到服务器机器(在我的例子中是英特尔 NUC)的设备中的数据。
我的问题是我试图检测在后台线程中运行的 System.Windows.Form 内的全局鼠标事件。
private static Thread serviceThread;
private IKeyboardMouseEvents mouseEvents;
private int currentPixel = 0;
private List<byte> rgb = new List<byte> { 255, 0, 0 };
public static void StartService()
{
serviceThread?.Abort();
serviceThread = new Thread(() =>
{
Application.Run(new TiltWheelService());
});
serviceThread.Start();
}
public TiltWheelService()
{
mouseEvents = Hook.GlobalEvents();
mouseEvents.MouseDown += OnMouseDown;
mouseEvents.MouseWheel += OnMouseScrollWheel;
}
现在,当我通过 IIS Express 通过 Visual Studio 2017(在调试或发布中)运行应用程序时,它会启动我的应用程序,启动 Chrome 实例,并成功创建一个 Windows 窗体,我能够监听任何鼠标事件(在本例中为鼠标向下和滚动)并用它做我想做的事。
但是,当我将其发布到本地运行的 IIS 管理器时,Windows 窗体永远不会出现,并且我无法监听鼠标事件。
任何建议都会有所帮助!
【问题讨论】: