Как использовать FAXCOMLib в службе Windows? - PullRequest
3 голосов
/ 17 октября 2011

Я реализовал программу для отправки факсимильных сообщений. Я использую FAXCOMLib, и он работает, когда я вызываю его в формах Windows. Теперь я хочу позвонить в службу Windows, и это моя проблема.

Код прост:

            FaxServer faxServer = new FaxServer();
            faxServer.Connect(Environment.MachineName);

            object obj = faxServer.CreateDocument("D:\\test.bmp");
            FaxDoc fd = (FaxDoc)obj;

            fd.FaxNumber = "123xxxxx";
            fd.RecipientName = "Tester";
            fd.DisplayName = "TestFax";
            fd.SenderName = "Annadurai";

            int i = fd.Send();

            lp.Debug("Sent" + i.ToString()); // Log fax id 

            faxServer.Disconnect();

В обоих случаях код возвращает идентификатор, но в окнах форм факс добавляется в «Факс и сканирование Windows», в службе Windows - НЕ. Зачем? Что я должен сделать, чтобы это работало?

Я использую Windows 7.

1 Ответ

1 голос
/ 26 июня 2013

Согласно документации, FAXCOMLIB работает только в настольных приложениях:

Applies to: desktop apps only

http://msdn.microsoft.com/en-us/library/windows/desktop/ms692375(v=vs.85).aspx

Только настольное приложение - плохое описание, поскольку оно подразумевает что угодно, кроме веб-приложений. У меня есть следующий код, запущенный в консольном приложении, и он работает нормально, так что, очевидно, он считается рабочим столом:

    FaxServer server = new FaxServer();
    server.Connect("");
    FaxDoc document = server.CreateDocument(@"C:\RHDSetup.log");
    document.FaxNumber = @"111-111-1111";
    long jobId = document.Send();
...