Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

PC-FAXで初期値に宛先を与えたい

この質問と全く同じ。

detail.chiebukuro.yahoo.co.jp

富士ゼロックスの複合機はパソコンからダイレクトにFAXを送信する機能がありますが、当然ながらFAX番号を指定しなければなりません。
現在つくっている業務アプリでは、FAX送付先をデータとして保有しているので、その番号を使って宛先指定を自動で行い、送信も自動としたいのです

FAXドライバーを入れると、Windowsのプリンタのアイコンみたいのが1個できる。そいつに印刷指示を与えると、こういう画面が出る。

https://www.fujifilm.com/fb/support/mf/dc4_c2260/images/1810_g010.jpg

宛先を与えて送信開始を押すと、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するという荒業が出来る可能性がちょっとある。

オチもないけど、再燃する可能性があるのでメモ。