需要引用的dl,如下信息,早起使用的是FXSCOM.DLL,现在微软提供了相应的扩展,其程序集为,FXSCOMEX.dll

FXSCOMEX.dll 提供跟加健全的方法,可以说所有关于传真的操作都在这个dll中。

以下是传真中使用的主要方法:

  1. 首先定义一个封装传真人相关信息的Bean
  //定义传真需要封装的传真人相关的信息
public class FaxPeopleBean
{
public string Name;
public string FaxNumber;
public string Company; public DateTime ScheduleTime; public FaxPeopleBean()
{
ScheduleTime = QLOAParams.DtSqlDbMinValue;
}
}

  2. 发送传真的方法

         public object sendFaxBatchDoc(FaxPeopleBean recipient, FaxPeopleBean sender, List<string> docList)
{
bool isConnected=false;
FaxServer objFaxServer=null;
try
{
objFaxServer = new FaxServer();
FaxDocument objFaxDocument = new FaxDocument();
Object jobIds;//每次发送后,都会返回一个传真作业id,用于监控此传真的发送情况
//Connect to the fax server
objFaxServer.Connect(""); //""代表连接到本地机器服务,也可以使用其它网络传真服务器
isConnected = true;
SetOutgoingQueue(objFaxServer);
objFaxDocument.Sender.Name = sender.Name;
objFaxDocument.Sender.Company = sender.Company;
objFaxDocument.Sender.FaxNumber = sender.FaxNumber;
if (sender.ScheduleTime != QLOAParams.DtSqlDbMinValue)
{
// Specify that the fax is to be sent at a particular time
objFaxDocument.ScheduleType = FAXCOMEXLib.FAX_SCHEDULE_TYPE_ENUM.fstSPECIFIC_TIME;
//CDate converts the time to the Date data type
objFaxDocument.ScheduleTime = sender.ScheduleTime;
} //Set the fax priority
objFaxDocument.Priority = FAXCOMEXLib.FAX_PRIORITY_TYPE_ENUM.fptHIGH;
// 'Add the recipient
objFaxDocument.Recipients.Add(recipient.FaxNumber, recipient.Name);
string[] files = docList.ToArray();
object bodys = files;
objFaxDocument.Bodies = bodys;
int result = objFaxDocument.ConnectedSubmit2(objFaxServer, out jobIds);
return jobIds;
}
finally
{
if (isConnected && objFaxServer!=null)
{
objFaxServer.Disconnect();
}
}
}

  3. 用于设置传真的一些属性,必须连接过后才可以设置

       public void SetOutgoingQueue(FaxServer objFaxServer)
{
FaxOutgoingQueue objFaxOutgoingQueue;
//'Get the outgoing queue object
objFaxOutgoingQueue = objFaxServer.Folders.OutgoingQueue; //'Refresh the queue object
objFaxOutgoingQueue.Refresh();
objFaxOutgoingQueue.Retries = ; //重试10次后不再发生
objFaxOutgoingQueue.RetryDelay = ; //The Branding property is a Boolean value that indicates whether the fax service generates a brand (banner)
//at the top of outgoing fax transmissions. A brand contains transmission-related information, such as the transmitting
//station identifier, date, time, and page count.
objFaxOutgoingQueue.Branding = true;
}

  4. 取消某个传真的发送

        public void CancelOutgoingQueue(string faxJobid)
{
FaxServer objFaxServer = new FaxServer();
FaxOutgoingQueue objFaxOutgoingQueue;
FaxOutgoingJob objFaxOutgoingJob;
//'Connect to the fax server
objFaxServer.Connect(""); //'Get the outgoing queue object
objFaxOutgoingQueue = objFaxServer.Folders.OutgoingQueue;
//'Refresh the queue object
objFaxOutgoingQueue.Refresh(); try
{
objFaxOutgoingJob = (FaxOutgoingJob)objFaxOutgoingQueue.GetJob(faxJobid); //找不到时会发生异常
objFaxOutgoingJob.Cancel();
}
catch { }
objFaxServer.Disconnect();
}

  5.  需要对传真发送情况进行监控

FAXCOMEXLib.FaxServer _faxServer= new FaxServer();
_faxServer.Connect("");
_faxServer.OnOutgoingJobChanged +=FaxServer_OnOutgoingJobChanged;
 _faxServer.ListenToServerEvents( FAXCOMEXLib.FAX_SERVER_EVENTS_TYPE_ENUM.fsetFXSSVC_ENDED | FAXCOMEXLib.FAX_SERVER_EVENTS_TYPE_ENUM.fsetOUT_QUEUE;

  6. 监控的方法在这里

     public void FaxServer_OnOutgoingJobChanged(FAXCOMEXLib.IFaxServer pFaxServer, string bstrJobId, FAXCOMEXLib.IFaxJobStatus pJobStatus)
{         //根据pJobStatus 枚举可以实时的获取,传真的发生情况,具体的操作代码可以写作这里
     }

FAXCOM和FXSCOMEX 传真编程的更多相关文章

  1. C#编程总结(八)数字签名

    C#编程总结(八)数字签名 在日常工作中,有很多文件需要领导审阅.签名和盖章,由于公司业务开展,跨地域.跨国业务也日益普遍,领导签名盖章变得很麻烦,开始的时候人们通过邮寄.传真等方式来解决,但是耗费时 ...

  2. C#编程之委托与事件四(二)【转】

    C#编程之委托与事件(二)       我在上一篇文章(C#编程之委托与事件(一) )中通过示例结合的方法介绍了委托,在本文中,我同样以代码示例的方式来介绍C#里的事件机制. 二.事件   1.了解概 ...

  3. JAVA的面向对象编程--------课堂笔记

    面向对象主要针对面向过程. 面向过程的基本单元是函数.   什么是对象:EVERYTHING IS OBJECT(万物皆对象)   所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么 ...

  4. (转)C++ 编程规范

    转载地址:http://www.cnblogs.com/len3d/archive/2008/02/01/1061902.html C/C++编码规范 今天人们越来越明白软件设计更多地是一种工程,而不 ...

  5. 使用非java代码编程

    使用非JAVA代码     JAVA语言及其标准API(应用程序编程接口)应付应用程序的编写已绰绰有余.但在某些情况下,还是必须使用非JAVA编码.例如,我们有时要访问操作系统的专用特性,与特殊的硬件 ...

  6. 小白的CTF学习之路8——节约内存的编程方式

    今天第二更,废话不说上干货 上一章我们学习了内存和cpu间的互动方式,了解到内存的空间非常有限,所以这样就需要我们在编程的时候尽可能的节省内存空间,用最少的空间发挥最大的效果,以下是几种节约内存的方法 ...

  7. JAVA的面向对象编程

    JAVA的面向对象编程 面向对象主要针对面向过程. 面向过程的基本单元是函数. 什么是对象:EVERYTHING IS OBJECT(万物皆对象) 全部的事物都有两个方面: 有什么(属性):用来描写叙 ...

  8. Android 网络编程 记录

    简单介绍 看了深入理解Android网络编程感觉不错.今天对Android网络编程进行了要点记录. 内容 Android基于网络技术和编程实践 要点 定义 描写叙述 IP协议 用于报文交换网络的一种面 ...

  9. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

随机推荐

  1. Python爬虫某招聘网站的岗位信息

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:阿尔法游戏 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  2. asp.net core webapi Session 跨域

    在ajax 请求是也要加相应的东西 $.ajax({ url:url, //加上这句话 xhrFields: { withCredentials: true } success:function(re ...

  3. Ubuntu上mysql, 通过python连接报错Can't connect to MySQL server on xxx (10061)

    通过sqlyog连接ubuntu上的mysql报错 试了试python直接连接也报同样的错 那应该就是ubuntu上mysql服务自己的问题了 查看mysql 版本 mysql -V root@clo ...

  4. 移动端Vue组件库-Vant学习

    全局引入 import Vant from 'vant'; //嫌麻烦就全部一次导出,虽然包会稍微有点大 import 'vant/lib/index.css'; //注意导入全局的这个css,否则布 ...

  5. Joomla 3.4.6 Remote Code Execution漏洞复现

    0x00:简介 Joomla是一套全球有名的CMS系统. Joomla基于PHP语言加上MySQL数据库所开发出来的WEB软件系统,目前最新版本是3.9.12. Joomla可以在多种不同的平台上部署 ...

  6. 使用hexo和coding建立静态博客站点

    背景 由于工作性质的原因,做技术的总想记录和分享一下自己的学习和成长历程,向这世界证明我来过.写文章,发博客,一开始使用51cto,广告太多,看起来让人很痛苦:接着试用了博客园,广告少一些,但感觉还是 ...

  7. 纯css画三角形

    纯css画三角形与border元素相关 设置border的属性 width: 100px; height: 100px; border-style: solid; border-width: 100p ...

  8. .NET Core 3 WPF MVVM框架 Prism系列之对话框服务

     本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的对话框服务,这也是prism系列的最后一篇完结文章,下面是Prism系列文章的索引: .NET Core 3 WPF MVVM框 ...

  9. PyTorch中在反向传播前为什么要手动将梯度清零?

    对于torch中训练时,反向传播前将梯度手动清零的理解 简单的理由是因为PyTorch默认会对梯度进行累加.至于为什么PyTorch有这样的特点,在网上找到的解释是说由于PyTorch的动态图和aut ...

  10. DBeaver数据表的拷贝过程

    通过DBeaver工具链接数据库后,我们就可以通过菜单或者命令功能来实现我们想要的目的. (一)创建数据库 新建数据库,如下图所示:  ——> 在点击“确定”按钮后,可能会遇到失败,此时,我们可 ...