求助关于faxcom.dll的问题。

wengfengli 2006-08-30 04:44:53
我的程序在传真号码空闲的时候已经传真成功了,但请问怎么知道我传真的号码是否遇忙呢?有什么返回值的吗?

代码:
Dim objFaxSev As New FAXCOMLib.FaxServer
Dim objFaxDoc As FAXCOMLib.FaxDoc
Dim b As Long
Dim strFile As String
Dim Y As Variant
Dim j As Integer

strFile = "C:\temp1.txt" '\'file name
objFaxSev.Connect Winsock1.LocalHostName '\'localhost name
Set objFaxDoc = objFaxSev.CreateDocument(strFile)

Y = Split(Trim(sFaxNo), ",")
For j = 0 To UBound(Y)
objFaxDoc.FaxNumber = Trim(Y(j))
objFaxDoc.CoverpageSubject = "AAA"
objFaxDoc.CoverpageName = "BBB"

b = objFaxDoc.Send()
Next
...全文
497 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cangwu_lee 2007-03-12
  • 打赏
  • 举报
回复
C# -> vb6 大概转了一下,多多指教


call me.m_faxServer.Connect(me.m_FaxMachine)

dim objFaxPorts as FaxPorts

set objFaxPorts = this.m_faxServer.GetPorts()

int count = objFaxPorts.Count
if count > 0 then
set m_faxPort = faxPorts(1)
else
raise FaxException_4
end if

dim objFaxDoc as FaxDoc
set objFaxDoc = me.m_faxServer.CreateDocument(FileName)
objFaxDoc.FaxNumber = FaxNumber

objFaxDoc.SenderFax = SenderNumber

me.m_JobID = objFaxDoc.Send()

dim faxJobs as objFaxJobs
dim faxJob as objFaxJob

while true
set objFaxJobs = me.m_faxServer.GetJobs();

for i = 1 to objFaxJobs.Count

set objFaxJob = objFaxJobs(i)

if objFaxJob.JobId = this.m_JobID then
if objFaxJob.QueueStatus = "Retrying" then
end if
elseif objFaxJob.QueueStatus = "No Line" then
elseif objFaxJob.QueueStatus = "Pending" then
end if

next ' For

'handle exit code here

wend '' while


固执的染色体 2007-03-12
  • 打赏
  • 举报
回复
mark
wengfengli 2006-09-01
  • 打赏
  • 举报
回复
其实我已经换成vb了,但是得到的status无论是否发送成功,总是“未知”!
不知道为什么?
happy_sea 2006-09-01
  • 打赏
  • 举报
回复
继续关注。。。
wengfengli 2006-09-01
  • 打赏
  • 举报
回复
哪位高人可以指点一下?
happy_sea 2006-08-31
  • 打赏
  • 举报
回复
麻烦哪位大侠把我上面转贴的那段C#代码转成VB的吧,我只能大体猜到什么意思,可实在是没有能力把它转成VB代码。。。 -_-!!
wengfengli 2006-08-31
  • 打赏
  • 举报
回复
各位大哥:有没有用vb写的?我只会vb!
hn123 2006-08-30
  • 打赏
  • 举报
回复
关注。。。

---------
www.vicmiao.com
努力就有美好时光!
happy_sea 2006-08-30
  • 打赏
  • 举报
回复
好像objFaxSev有一个GetJobs方法可以获得faxJobs,而faxJobs中的每一个faxJob都有一个QueueStatus属性可能与你的要求有关。你研究一下下面这段C#的代码,我看不大懂。
this.m_faxServer.Connect(this.m_FaxMachine);



FaxPorts faxPorts = (FaxPorts)this.m_faxServer.GetPorts();



int count = faxPorts.Count;
if(count > 0)
{
m_faxPort = (FaxPort)faxPorts.get_Item(1);
}
else
{
throw new FaxException(4);
}




FaxDoc faxDoc = (FaxDoc)this.m_faxServer.CreateDocument(FileName);
faxDoc.FaxNumber = FaxNumber;




faxDoc.SenderFax = SenderNumber;

this.m_JobID = faxDoc.Send();

while(true)
{
FaxJobs faxJobs = (FaxJobs)this.m_faxServer.GetJobs();

for(int i = 1; i<= faxJobs.Count; i++)
{
FaxJob faxJob = (FaxJob)faxJobs.get_Item(i);
if(faxJOb.JobId == this.m_JobID)
{
if(faxJob.QueueStatus == "Retrying")
{
//
}
else if(faxJob.QueueStatus == "No Line")
{
//
}
else if(faxJob.QueueStatus == "Pending")
{
//
}
........
}

}

}

迈克揉索芙特 2006-08-30
  • 打赏
  • 举报
回复
检查电话是否占线

****************
Private Sub Openport()
'初始化Modem
If Not MSComm1.PortOpen Then
MSComm1.CommPort = 3
MSComm1.RThreshold = 1
MSComm1.OutBufferSize = 1024
MSComm1.InBufferSize = 1024
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
End If
End Sub


*******
Private Function Waiting(strings As String, waittime As Integer) As String
'接收Modem的返回信息
Dim Endtime As Long
Dim receivestring As String
Endtime = Timer + waittime
receivestring = ""
errorcode = 0
Do
DoEvents
If MSComm1.InBufferCount Then
receivestring = receivestring + MSComm1.Input
If InStr(1, receivestring, strings) Then
Exit Do
End If
End If
If Timer >= Endtime Or errorcode Then
errorcode = 1
Exit Do
End If
Loop
Waiting = receivestring
End Function

********* '判断本地Modem
Call Openport
MSComm1.Output = "AT" + Chr(13)
mywin = Waiting("OK", 5)
If errorcode Then
'Modem未准备好,电话占线
Endif
*********
'判断对方Modem
MSComm1.Output = "ATDT" + vbdialno + Chr(13)
wait = Waiting("CONNECT", 10)
If errorcode Then
'对方Modem未准备好,占线
Endif

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧