COMライブラリFaxComLib(参照の追加 - > COMタブ - > faxcom 1.0タイプライブラリ)からFAXを送信できます。FaxComLib FaxJobキューステータスが常に「保留中」
私の問題は、私がファックスを送信できる間、ファックスキューから正確なステータスを返すことができないことです。 FaxJobオブジェクトのQueueStatusプロパティは、常に「保留中」を返します。
環境:Windows 2003のR2のEnterprise 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();
}
私は仕事のためにそれを実行します失敗した(制限を超えたリトライ)、私はこの取得:
私が今までどんなファックスジョブのために得る唯一のステータスです
。任意のステータスで。私は何か間違っているのですか? FAXサーバーを間違って設定しましたか?あなたは私のために私の問題にどのような光を当てることができますか?
ありがとうございました。 -Jason
これは、間違いなくFAXサービスプロバイダの問題です。サポートについては、製造元に問い合わせてください。 –
私たちは、ローカルのFAXモデムと組み込みのWindows FAXサービスを使用しています。実際に設定可能な設定はあまり多くありません。私はどのメーカーに向かうべきかわかりません。ここには第三者が関与していません。 –
FaxJobsで列挙する方法を示す 'forループ'は私を救った! MSFTのドキュメントsux btw。 – Flea