sesefeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2766回复:16

打印机开发疑问

楼主#
更多 发布于:2003-06-20 22:16
我请教各位高手,在用unitool开发打印机驱动程序中,怎么来扩展打印机属性页,以加上我自己打印机的特殊特性,以及这个数据是怎么发给打印机的,谢谢各位~!

最新喜欢:

caesuncaesun
lynhoo751030
驱动牛犊
驱动牛犊
  • 注册日期2003-06-19
  • 最后登录2003-07-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-23 15:28
例子:
 win2000 ddk\\src\\print\\oemdll\\oemui

我也真在看,共同研究
y5318
驱动中牛
驱动中牛
  • 注册日期2001-09-18
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分14分
  • 威望22点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-06-23 18:48
 你可以将你的特殊参数作成另一个属性叶,然后调用CMMTDLL将你的属性叶添加到公共属性叶上面
sesefeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-24 07:23
谢谢楼上几位的关注,方法我也知道,只是实际做的时候有很多问题,不只那里能提供一个详细的例子,要98下的,2000下的我还未考虑,另外98下的TTY的例子太复杂。
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-25 13:53
谢谢楼上几位的关注,方法我也知道,只是实际做的时候有很多问题,不只那里能提供一个详细的例子,要98下的,2000下的我还未考虑,另外98下的TTY的例子太复杂。


TTY的例子并不很复杂,其中关于用户界面这一部分的代码功能也不全,DM_MODIFY, DM_UPDATE 和DM_COPY的功能都没有自己实现,建议看看95ddk中的hpplot的例子,那个例子完整的把这一部分东西做了,很有参考价值,TTY的例子其实很像这个例子,其中很多变量名都一样,估计也是参考这个例子。我现在也在做这个东西,不过还有一些问题没有解决
sesefeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-25 22:12
谢谢楼上的回答,我也在找95ddk,能给一个下在的地方吗,还有,能帮我解释一下黑标的用法吗,以及如何开发带有黑标的打印机驱动?谢谢了,要分尽管开口,呵呵。
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-25 22:45
谢谢楼上的回答,我也在找95ddk,能给一个下在的地方吗,还有,能帮我解释一下黑标的用法吗,以及如何开发带有黑标的打印机驱动?谢谢了,要分尽管开口,呵呵。
 


下载的地方我记不清楚了,你可以自己搜索一下,我吧hpplot的例子放在附件里了,你可以看看
黑标是什么,我也是刚刚开始做驱动程序,不清楚
附件名称/大小 下载次数 最后更新
2003-06-25_hpplot.rar (93KB)  21
sesefeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-26 22:25
太感谢你了,我找了很久了,以后多交流。
sesefeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-27 07:25
另外,我怎么编译这个例子,我的环境是98ddk + vc1.52能编译所有的98下的例子。谢谢!
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-27 13:10
另外,我怎么编译这个例子,我的环境是98ddk + vc1.52能编译所有的98下的例子。谢谢!


用98ddk不能编译这个例子,我前一段时间试过,估计要装95ddk,或者自己把makefile修改一下,不知道源代码有没有对95ddk环境的依赖性
sesefeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-30 22:45
谢谢terrificskyfox关注
还想请教一个问题:我想让打印机开始打印之前,想让打印机接受我自己的命令设置,再开始打印,应该在那里发这个命令呢?谢谢!
terrificskyfox
驱动小牛
驱动小牛
  • 注册日期2003-03-12
  • 最后登录2014-04-28
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望11点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-07-02 21:05
谢谢terrificskyfox关注
还想请教一个问题:我想让打印机开始打印之前,想让打印机接受我自己的命令设置,再开始打印,应该在那里发这个命令呢?谢谢!


你是说你想在你做的属性页中设置好各种选项然后让打印机按照你的设置来执行打印任务是么?
在属性页的设置中可以使用DEVMODE的private数据来设置这些选项,然后在DM_UPDATE的处理中将它们写入注册表,在打印的过程中利用这些设置的数据就可以了
sesefeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-07-04 07:33
十分感谢terrificskyfox的回答,可是在DEVMODE结构体中,我没有发现有private数据项,请问是不是将DEVMODE扩展呢,即增加新的数据成员,还有,“在打印的过程中利用这些数据”具体指那些函数呢?另外,我想增加自己的属性页,于是我写了如下代码到ExtDeviceModePropSheet:

HINSTANCE hInstCommon;
PROPSHEETPROC PSProc;
CREATEPROC    CreateProc;
FARPROC       InitProc;
PROPSHEETPAGE psp;
HPROPSHEETPAGE hpage;

    if(((hInstCommon=LoadLibrary(\"COMMCTRL.DLL\")) < HINSTANCE_ERROR) ||
(!(PSProc=(PROPSHEETPROC)GetProcAddress(hInstCommon,
   SHELL_PROPSHEET))) ||
(!(CreateProc=(CREATEPROC)GetProcAddress(hInstCommon,
   SHELL_CREATEPAGE))) ||
(!(InitProc=GetProcAddress(hInstCommon,
   COMMCTRL_INIT))))
{
MessageBox(hWnd, \"Hello\",\"Hello\", MB_OK);
}
InitProc();

_fmemset((LPSTR)&psp,0,sizeof(PROPSHEETPAGE));
psp.dwSize = sizeof(PROPSHEETPAGE);
psp.hInstance = hInst;
psp.pszTemplate = MAKEINTRESOURCE(TEST1);
//psp.pszTitle    = L\"Setup Dlg\";
    psp.pfnDlgProc = procs;
psp.lParam = (LPARAM)lParam;
psp.pfnCallback = lpfnAdd;

if(hpage = CreateProc(&psp))
lpfnAdd(hpage,lParam);
    return UniExtDeviceModePropSheet(hWnd, hInst, lpDevName, lpPort,dwReserved, lpfnAdd, lParam);

但是没有出现我自定义的属性页,为什么?还请指教!谢谢!
hxy2003
驱动牛犊
驱动牛犊
  • 注册日期2003-07-17
  • 最后登录2007-10-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-01-03 14:57
GZ
fssf0078
驱动牛犊
驱动牛犊
  • 注册日期2004-01-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-01-15 21:36
设计主要有以下几方面的问题需要研究
1.win操作系统下打印机驱动模型的基本结构
 
2.打印机驱动的基本结构
 
3.用户模式与内核模式的区别
 
4.用vc++和winDDK编译驱动的方法(编译参数的设置)
 
5.打印机驱动必须实现的函数的功能
 
6.打印机命令\\打印机驱动的数据流
 
7.安装文件的编写
请问要怎么实现这个方案呢?
QQ:9582583 Email:fssf0078@163.com
sesefeng
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2005-10-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-01-16 16:30
你是新来的吧,没有你这样问的,要自己研究了之后,再来问,笼统的问了这么一堆,说明你什么都不会,还想不劳而获!!!!
fssf0078
驱动牛犊
驱动牛犊
  • 注册日期2004-01-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-02-01 10:04
就是现在关于驱动开发的问题我什么都不会,让我怎么入手?这个软件也是我刚刚知道的,我知道你了解的多,呵呵,就请你给我点指导好不好???谢谢了!!!!!!!!!!!高手!!!!!!!!!!!!!!!
QQ:9582583 Email:fssf0078@163.com
游客

返回顶部