用C#做了一个程序,用来截获另一个进程(A程序)中的打印的数据(数据为文本信息),我的实现方法是这样的。
1 安装一个虚拟打印机,端口设为:“D:\1\1.dat”
2 发现A程序被启动后将打印机设为虚拟打印机,实时监测【“D:\1\1.dat”】文件是否存在,
  当有打印发生时,将[1.dat]文件解析,重新以另一种格式输出到真实打印机。我用的实时监测方法有两种,但都存在问题:一种是用TIMER实时检查D盘那个目录下的文件是存在否?另一种是用C#的FILESYSTEMWATCHER的CREATE 和CHANGE事件来监听。
当A程序打印文本时,如果打印一页时一切正常,问题是打印多页时监测到的【“D:\1\1.dat”】文件里的内容使终是第二页
的内容。初步认为是打印两页时第二页把第一页的数据替换了,当监测到【1.dat】时已经是第二页的文件了。不知道说的清不清楚,还请高手帮个忙!!!!