我正在开发一个使用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新手。
谢谢
发布于 2015-06-26 23:15:22
您可以在主窗体(或与AppWindow属性一起使用的任何窗体)中覆盖WndProc()。在这里,您将检查AppMsgNumber值的m.Msg,然后获取m.WParam和m.LParam值。类似于:
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 Classhttps://stackoverflow.com/questions/31073655
复制相似问题