我可以通過COM庫庫FaxComLib發送傳真(添加引用 - > COM選項卡 - > faxcom 1.0類型庫)並且傳真成功。FaxComLib FaxJob隊列狀態總是「待定」
我的問題是雖然我可以發送傳真,但我似乎無法從傳真隊列中獲得準確的狀態。 FaxJob對象的QueueStatus屬性始終返回「Pending」。
的環境:Windows 2003 R2企業瓦特/ SP2 - 也嘗試在Windows 2008 R2具有相同的結果
這裏是我的原型代碼:
public void GetFaxStatus(int queueNum)
{
FaxServer faxServer = new FaxServer();
faxServer.Connect("myfaxservername");
bool isInQueue = false;
FaxJobs faxJobs = (FaxJobs)faxServer.GetJobs();
for (int i = 1; i <= faxJobs.Count; i++)
{
FaxJob j = (FaxJob)faxJobs.Item[i];
MessageBox.Show(faxJobs.Item[i].GetType().ToString() + "\r\n" + CreateStatus(j));
if (j.JobId == queueNum)
{
MessageBox.Show("Found Job:\r\n" + CreateStatus(j));
isInQueue = true;
}
}
if (isInQueue == false)
{
MessageBox.Show("Fax is no longer in queue.(...or does not exist)");
}
faxServer.Disconnect();
}
static string CreateStatus(FaxJob job)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(string.Format("Billing Code: {0}", job.BillingCode));
sb.AppendLine(string.Format("Device Status: {0}\r\n", job.DeviceStatus));
sb.AppendLine(string.Format("Queue Status: {0}", job.QueueStatus));
sb.AppendLine(string.Format("Display Name: {0}", job.DisplayName));
sb.AppendLine(string.Format("Fax Number: {0}", job.FaxNumber));
sb.AppendLine(string.Format("Job Id: {0}", job.JobId));
sb.AppendLine(string.Format("Tsid: {0}", job.Tsid));
sb.AppendLine(string.Format("Type: {0}", job.Type));
sb.AppendLine(string.Format("Page Count: {0}", job.PageCount));
return sb.ToString();
}
當我運行的作業失敗(重試超出上限),我得到這個:
這是我曾經獲得的任何傳真作業的唯一狀態;在任何狀態下。難道我做錯了什麼?我配置了傳真服務器嗎?你能幫我解釋一下我的問題嗎?
謝謝。 -Jason
這無疑是您的傳真服務提供商的問題。聯繫製造商尋求支持。 –
我們使用的是本地傳真調制解調器和內置的Windows傳真服務。真的沒有很多可配置的設置,我不知道我應該轉向哪個製造商。這裏沒有第三方參與。 –
你的'for loop'顯示如何枚舉FaxJobs救了我! MSFT文檔sux btw。 – Flea