首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows API PostMessage / GetMessage

Windows API PostMessage / GetMessage
EN

Stack Overflow用户
提问于 2015-06-26 20:51:04
回答 1查看 664关注 0票数 1

我正在开发一个使用VB.net发送传真的小应用程序。

我可以让传真发送没有任何问题,我想做的是检查传真的进度,因为它正在发送。

为了发送传真,我使用的是Snappy软件。根据他们的OLH:

*跟踪传真进度

您可以使用AppWindow、AppMsgNumber和AutoJobID属性跟踪提交到snappy fax进行处理的传真的进度。将AppWindow属性设置为应用程序窗口的窗口句柄。将AppMsgNumber设置为所需的消息编号,通常为WM_APP +(您选择的某个数字)。

将AutoJobID属性设置为一个唯一的整数id,您可以在应用程序内部使用该id,以了解snappy fax发送到应用程序的状态消息中引用了哪个传真作业。在您的应用程序中设置一个消息处理程序,以接收和处理在AppMsgNumber中设置的消息编号,该消息编号是从snappy传真发送到在AppWindow中指定的窗口句柄的。

当通过快速传真启动传真作业时,它将向您的应用程序发送一条消息,如下所示:

PostMessage(AppWindow,AppMsgNumber,1,LParam(AutoJobId))

注意: wParam为1表示作业正在启动(传输将开始),所引用的作业在lparam中发送当传真作业成功或失败完成时,snappy fax将向您的应用程序发送一条消息,如下所示:

PostMessage(AppWindow,AppMsgNumber,ErrorCode,LParam(AutojobId))*

我的问题是,基本上,VB.NET可以做这种事情吗?

如果Snappy软件使用PostMessage()向我的应用程序发送消息,这是否意味着我必须使用GETMessage()来获取这些消息?

如果这些是愚蠢的问题,我很抱歉,但我是VB新手。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-06-26 23:15:22

您可以在主窗体(或与AppWindow属性一起使用的任何窗体)中覆盖WndProc()。在这里,您将检查AppMsgNumber值的m.Msg,然后获取m.WParamm.LParam值。类似于:

代码语言:javascript
复制
Public Class Form1

    Private Const WM_APP As Integer = &H8000
    Private Const WM_FAXMSG As Integer = WM_APP + 9999 ' set by you, send this  in the `AppMsgNumber` parameter when you register for feedback

    Protected Overrides Sub WndProc(ByRef m As Message)
        Select Case m.Msg
            Case WM_FAXMSG
                Dim Status As Integer = m.WParam.ToInt32
                Dim FaxID As Integer = m.LParam.ToInt32
                Debug.Print("Status: " & Status)
                Debug.Print("FaxID: " & FaxID)
        End Select

        MyBase.WndProc(m)
    End Sub

End Class
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31073655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档