この質問と全く同じ。
富士ゼロックスの複合機はパソコンからダイレクトにFAXを送信する機能がありますが、当然ながらFAX番号を指定しなければなりません。 現在つくっている業務アプリでは、FAX送付先をデータとして保有しているので、その番号を使って宛先指定を自動で行い、送信も自動としたいのです
FAXドライバーを入れると、Windowsのプリンタのアイコンみたいのが1個できる。そいつに印刷指示を与えると、こういう画面が出る。
宛先を与えて送信開始を押すと、FAXが複合機経由で送信される。 印刷データを与えることは余裕でできる。C#でFAXドライバーに対して印字命令を書くだけ。普通の印刷プログラムと全く同じ。
FAXモデムがある前提のコードが多くて辛い
FAXモデムをWinows10にインストールした状態のコードばっかり見つかる。こんな感じ。これは自分のマシンもしくはWindowsのマシンに入ってるFAXモデムに対する送信命令であって、PC-FAX経由ではない。
public static void SendFaxV3(string printer, string _documentName, string _fileName, string _recipientName, string _faxNumber) { if (_faxNumber != "") { FAXCOMEXLib.FaxServer faxServer = new FAXCOMEXLib.FaxServer(); faxServer.Connect(printer); FAXCOMEXLib.FaxDocument faxdoc = new FAXCOMEXLib.FaxDocumentClass(); faxdoc.Body = _fileName; faxdoc.DocumentName = _documentName; faxdoc.Priority = FAXCOMEXLib.FAX_PRIORITY_TYPE_ENUM.fptNORMAL; faxdoc.Body = _fileName; faxdoc.Subject = _documentName; faxdoc.DocumentName = _documentName; faxdoc.Recipients.Add(_faxNumber, _recipientName); faxdoc.ConnectedSubmit(faxServer); } }
そういうことするにはね、ライブラリを買わないとダメなんですよって話なのかな〜。
男ならWindows32APIだろ
印刷命令を出したあと、ウインドウハンドルで、最前列にいるはずであろうウインドウを捕まえ、フォーカスを当て、TABで移動してSendMessageするという荒業が出来る可能性がちょっとある。
オチもないけど、再燃する可能性があるのでメモ。