找回密码
 加入
搜索
查看: 4794|回复: 7

请问有没有打印机设置相关的函数或DLL

[复制链接]
发表于 2009-1-23 21:47:34 | 显示全部楼层 |阅读模式
请问有没有打印机设置相关的函数或DLL?可以更改打印机的设置。
例如添加纸张或动态改变打印机设置
发表于 2009-1-23 21:50:27 | 显示全部楼层
AbortDoc 取消一份文档的打印
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
AddForm 为打印机的表单列表添加一个新表单
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号
AddMonitor 为系统添加一个打印机监视器
AddPort 启动“添加端口”对话框,允许用户在系统可用端口列表中加入一个新端口
AddPrinter 在系统中添加一台新打印机
AddPrinterConnection 连接指定的打印机
AddPrinterDriver 为指定的系统添加一个打印驱动程序
AddPrintProcessor 为指定的系统添加一个打印处理器
AddPrintProvidor 为系统添加一个打印供应商
AdvancedDocumentProperties 启动打印机文档设置对话框
ClosePrinter 关闭一个打开的打印机对象
ConfigurePort 针对指定的端口,启动一个端口配置对话框
ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接
DeleteForm 从打印机可用表单列表中删除一个表单
DeleteMonitor 删除指定的打印监视器
DeletePort 启动“删除端口”对话框,允许用户从当前系统删除一个端口
DeletePrinter 将指定的打印机标志为从系统中删除
DeletePrinterConnection 删除与指定打印机的连接
DeletePrinterDriver 从系统删除一个打印机驱动程序
DeletePrintProcessor 从指定系统删除一个打印处理器
DeletePrintProvidor 从系统中删除一个打印供应商
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息
DocumentProperties 打印机配置控制函数
EndDocAPI 结束一个成功的打印作业
EndDocPrinter 在后台打印程序的级别指定一个文档的结束
EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页
EndPagePrinter 指定一个页在打印作业中的结尾
EnumForms 枚举一台打印机可用的表单
EnumJobs 枚举打印队列中的作业
EnumMonitors 枚举可用的打印监视器
EnumPorts 枚举一个系统可用的端口
EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序
EnumPrinters 枚举系统中安装的打印机
EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型
EnumPrintProcessors 枚举系统中可用的打印处理器
Escape 设备控制函数
FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化
FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因
FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区
GetForm 取得与指定表单有关的信息
GetJob 获取与指定作业有关的信息
GetPrinter 取得与指定打印机有关的信息
GetPrinterData 为打印机设置注册表配置信息
GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息
GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么
GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录
OpenPrinter 打开指定的打印机,并获取打印机的句柄
PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框
PrinterProperties 启动打印机属性对话框,以便对打印机进行配置
ReadPrinter 从打印机读入数据
ResetDC 重设一个设备场景
ResetPrinter 改变指定打印机的默认数据类型及文档设置
ScheduleJob 提交一个要打印的作业
SetAbortProc 为Windows指定取消函数的地址
SetForm 为指定的表单设置信息
SetJob 对一个打印作业的状态进行控制
SetPrinter 对一台打印机的状态进行控制
SetPrinterData 设置打印机的注册表配置信息
StartDoc 开始一个打印作业
StartDocPrinter 在后台打印的级别启动一个新文档
StartPage 打印一个新页前要先调用这个函数
StartPagePrinter 在打印作业中指定一个新页的开始
WritePrinter 将发送目录中的数据写入打印机
 楼主| 发表于 2009-1-23 22:07:08 | 显示全部楼层
原帖由 sanhen 于 2009-1-23 21:50 发表
AbortDoc 取消一份文档的打印
AbortPrinter 删除与一台打印机关联在一起的缓冲文件
AddForm 为打印机的表单列表添加一个新表单
AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会 ...

sanhen...如何调用上面的函数啊
 楼主| 发表于 2009-1-23 22:22:06 | 显示全部楼层
例如 AddForm函数。。API是这样
Declare Function AddForm Lib "winspool.drv" Alias "AddFormA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte) As Long
“winspool.drv”drv的后缀。。。AU3的DLLCALL可以调用吗?
发表于 2009-1-24 06:46:16 | 显示全部楼层
正在找呢,很好谢谢
发表于 2009-1-24 11:38:36 | 显示全部楼层
没有测试。大概转了下,有些类型和参数可能不是很正确,详情自己修改一下。
你参考以下API,然后自己需要哪个就可以自己转了。

DllCall("gdi32.dll","long","AbortDoc","long",$hdc)
DllCall("winspool.drv","long","AbortPrinter","long",$hPrinter)

$str=DllStructCreate("dword;dword;int;int")
DllCall("spoolss.dll","AddFormA","long",$hPrinter,"long",1,"ptr",DllStructGetPtr($str))


$PRINTER_DEFAULTS=DllStructCreate("char [255];int;int")
DllCall("winspool.drv","long","OpenPrinterA","str",$pPrinterName,"hwnd",$phPrinter,"ptr",DllStructGetPtr($PRINTER_DEFAULTS))


发表于 2009-1-28 20:16:00 | 显示全部楼层
 楼主| 发表于 2009-2-6 18:10:50 | 显示全部楼层
原帖由 sxd 于 2009-1-28 20:16 发表
http://www.autoitscript.com/foru ... ndpost&p=386214

该DLL测试过..只能获取默认打印机..和设置默认打印机..其它打印字符和图形也可以用...
但偶需要的是获取默认打印机..和设置默认打印机.添加自定义纸张,,修改默认纸张的名称,获取默认纸张的大小或名称等
AU3如何调用API进行设置
...API中打印机的纸张结构比较复杂...好像结构还有嵌套
shanhen整个添加自定义纸张的例子看看
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-23 07:28 , Processed in 0.076647 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表