阅读:3627回复:15
请教一个打印驱动的初级问题,请各位大佬多多指教
我是驱动的新手,可能很多问题说不清楚,请进来帮助我的各位多多指教,对于有帮助的回答,分数一定送出。
我安装的是win2kddk。 目前我想通过以下步骤实现打印机的监控,主要是截获打印内容,参考了一些资料,大概思路是这样的:修改oemdll的输出为bitmap,然后在调用真正的打印接口。 1。修改oemdll的输出为bitmap 首先要编译oemdll,我把ddk下的oemdll文件拷贝到其他目录,并进行编译,具体目录为“G:DriverDemosoemdll”,然后build, 现生成的i386文件目录下有一堆lib,dll,esp文件。 现在我想知道,生成的dll怎么跟虚拟打印机关联,说白了,我做到这一步,下面应该怎么做,请指教! 2,怎么修改oemdll使其输出的是bitmap? 我参考了一些资料,也在oemuni和oemui目录下的源文件中找到了控制输出的部分(但不知是否正确) 在class IOemUni的pubic声明部分 STDMETHOD(TextOutAsBitmap)(THIS_ SURFOBJ *pso, STROBJ *pstro, FONTOBJ *pfo, CLIPOBJ *pco, RECTL *prclExtra, RECTL *prclOpaque, BRUSHOBJ *pboFore, BRUSHOBJ *pboOpaque, POINTL *pptlOrg, MIX mix); 在HRESULT __stdcall IOemUni::GetImplementedMethod(PSTR pMethodName)函数里面 case 'T': if (!strcmp(NAME_TextOutAsBitmap, pMethodName)) { Result = S_OK; } else if (!strcmp(NAME_TTDownloadMethod, pMethodName)) { Result = S_OK; } else if (!strcmp(NAME_TTYGetInfo, pMethodName)) { Result = S_OK; } break; 我想TextOutAsBitmap函数就是我要找的了,但是他具体是怎么操作的,或者说在哪个部分可以调用这个函数来改变输出格式就不知道了,在interface.cpp文件里有 HRESULT __stdcall IOemUni::TextOutAsBitmap( SURFOBJ *pso, STROBJ *NAME_o, FONTOBJ *pfo, CLIPOBJ *pco, RECTL *prclExtra, RECTL *prclOpaque, BRUSHOBJ *pboFore, BRUSHOBJ *pboOpaque, POINTL *pptlOrg, MIX mix) { VERBOSE(DLLTEXT("IOemUni::TextOutAsBitmap() entry.rn")); return E_NOTIMPL; } 具体怎么来实现这个输出还请给予帮助 3。实现输出后,怎么继续调用原来的打印接口(不知道我这句话描述的是不是清楚) 以上是我的问题的具体描述,有不当之处,敬请指教,感激不尽! [编辑 - 1/31/05 by Pregunta] |
|
|
沙发#
发布于:2005-01-29 11:45
具体安装请看一看目录内的inf
|
|
|
板凳#
发布于:2005-01-29 11:48
这种方法能实现你的功能吗
|
|
|
地板#
发布于:2005-01-29 11:51
应该能实现,我是参考FinePrint的思路做的,inf文件是一种摸版吧?你的意思是安装dll要用到inf文件?好的,我先看一下,顺便问一下,为什么我只能给出20分?谢谢你的回答!
|
|
|
地下室#
发布于:2005-01-29 12:33
inf里面有很多注册表的选项.....安装时系统通过inf文件才能找到你的驱动.......分数是发贴和回贴都会增加
|
|
5楼#
发布于:2005-01-29 12:37
inf里面有很多注册表的选项.....安装时系统通过inf文件才能找到你的驱动.......分数是发贴和回贴都会增加 谢谢你的回答,inf文件具体怎么安装呢? |
|
|
6楼#
发布于:2005-01-29 13:03
你可以手动安装....inf文件..然后系统就会找到你的驱动...也可以通过函数调用....封装到installsheild中
|
|
7楼#
发布于:2005-01-29 13:22
你可以手动安装....inf文件..然后系统就会找到你的驱动...也可以通过函数调用....封装到installsheild中 老兄,照顾一下新手,有没有手动安装的资料可参考,封装到installsheild暂时就不用这个方法了,我还初在摸索阶段 |
|
|
8楼#
发布于:2005-01-29 15:15
ok,安装的问题已经解决了,我测试了一下,可以截获打印的文本,word,以及图片保存成.pdf格式到本地
[编辑 - 1/31/05 by Pregunta] |
|
|
9楼#
发布于:2005-01-29 15:47
哈哈.......兄弟具体怎么做的.....说说看么....
挺不错的....这么快呀 |
|
10楼#
发布于:2005-01-31 08:36
目前能实现的是本地打印的截获,共享和远程的还没测试,如果也可以,这倒是个简单易行的方法 :)
你可以试一下,编译oemdll,安装他自带的inf文件即可~~ 输出bitmap格式的文件我还没实现,但我想基本的效果是达到了 |
|
|
11楼#
发布于:2005-02-02 18:36
感觉应该用language monitor or port monitor 来做
|
|
12楼#
发布于:2005-02-03 08:08
感觉应该用language monitor or port monitor 来做 这个倒没有接触过,据说这个也不好实现 :( 现在我想对虚拟打印的过程跟踪调试一下,各位有没有好的建议? 多谢了 |
|
|
13楼#
发布于:2005-02-18 10:08
现在发现新的问题,用这种方法只能实现以Adobo FDF打印驱动为基础的打印截获,其他驱动则不行,看来好是要按照原定思路进行,哪位有更好的办法吗? 具体如何“修改oemdll的输出为bitmap”还请做过的朋友指点!
|
|
|
14楼#
发布于:2005-02-19 21:01
这个倒没有接触过,据说这个也不好实现 :( 我也想呀,兄弟如果找到方法了,麻烦也告诉俺一声. |
|
|
15楼#
发布于:2005-02-21 08:06
一起讨论吧,现在找参考资料,真是头痛
|
|
|