2

C# 中是否有任何类似于 WndProc 方法的方法来侦听操作系统消息。我不能使用 WndProc,因为我的类既不是 Form 也不是继承自 Control(其 DLL)

protected override void WndProc(ref System.Windows.Forms.Message m)
    {
        switch (m.Msg)
        {
            // listen os messages


            // Ueye Message
            case uEye.IS_UEYE_MESSAGE:
                //fetch frame
                break;
        }
        base.WndProc(ref m);
    }
4

5 回答 5

1

如果你想监听特定的消息,WMI会做。我曾经有一个项目(请参阅对问题的评论)监听可移动 USB 驱动器并且 WMI 工作得很好。

您也可以使用互操作,但我觉得它很乱,但 YMMV。

于 2011-04-08T06:58:54.440 回答
1

在没有可见窗口的情况下接收窗口消息的标准方法是创建一个不可见窗口来接收消息。

于 2011-04-08T07:02:31.197 回答
0

如果您有表单(可见或其他),请查看Form.WndProc.

如果没有,您可以尝试使用Application.AddMessageFilter添加消息过滤器来监控 Windows 消息。

于 2011-04-08T08:55:35.953 回答
0

您应该使用Windows.Interop

有权访问 Win API

于 2011-04-08T06:47:20.987 回答
0

检查这个:http ://social.msdn.microsoft.com/Forums/en-IE/winforms/thread/b44f06fb-fc4a-4fac-87cd-48b2953ea5fa

似乎可以覆盖WndProc,但我自己没有尝试过!

于 2011-04-08T07:03:50.240 回答