打印设置问题,高手救救我

guangli_zhang 2003-09-17 04:48:09
系统中已经装了多个打印机
如果控制程序指定某一打印
而不用默认的打印机
谢谢

如果分不够再加
...全文
133 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
YewPu 2003-09-28
  • 打赏
  • 举报
回复
哈哈!
guangli_zhang 2003-09-28
  • 打赏
  • 举报
回复
大力:

文件c:\printfilepath\exam_1.prn是如何生成的?
地狱余烬 2003-09-25
  • 打赏
  • 举报
回复
简单根本不用Api函数,修改注册表就行了
函数1:
of_getdefaultprinter:

string ls_DefaultPrinter
Environment lenv_Env

if GetEnvironment(lenv_Env) = 1 then
choose case lenv_Env.OSType
case WindowsNT!
if RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device", ls_DefaultPrinter) = -1 then
SetNull(ls_DefaultPrinter)
end if
case Windows!
ls_DefaultPrinter = ProfileString(of_GetWinINI(), "Windows", "Device", "error")
if ls_DefaultPrinter = "error" then SetNull(ls_DefaultPrinter)
end choose
else
SetNull(ls_DefaultPrinter)
end if

return ls_DefaultPrinter


2.of_getwinini

ulong lu_Buf
string ls_WinDir

lu_Buf = 144
ls_WinDir = Space(144)

GetWindowsDirectoryA(ls_WinDir, lu_Buf)

return ls_WinDir + "\win.ini"

3.of_setdefaultprinter
Environment lenv_Env
string ls_Buffer
// make changes
if GetEnvironment(lenv_Env) = 1 then
choose case lenv_Env.OSType
case WindowsNT!
// check if given printer is valid
if RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices", &
as_DefaultPrinter, ls_Buffer) <> 1 then return -2
// check for needed changes
if (as_DefaultPrinter + "," + ls_Buffer) = of_GetDefaultPrinter() then return 0
// set it in registry

return RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", &
"Device", as_DefaultPrinter + "," + ls_Buffer)
case Windows!

ls_Buffer = ProfileString(of_GetWinINI(), "Devices", as_DefaultPrinter, "error")
if ls_Buffer = "error" then return -2
if (as_DefaultPrinter + "," + ls_Buffer) = of_GetDefaultPrinter() then return 0
if SetProfileString(of_GetWinINI(), "Windows", "Device", as_DefaultPrinter + "," + ls_Buffer) <> 1 then
return -1
end if
end choose
else
return -1
end if
return 1


xisat 2003-09-25
  • 打赏
  • 举报
回复
^_^.力大
eminena 2003-09-25
  • 打赏
  • 举报
回复
//d:\\printservename\sharename 打印机的路径
c:\printfilepath\exam_1.prn从下面来
datawindow_control1.object.datawindow.print.filename="c:\printfilepath\exam_1.prn"
就是用d盘目录下的打印机打印exam_1.prn
eminena 2003-09-25
  • 打赏
  • 举报
回复

run("print //d:\\printservename\sharename "c:\printfilepath\exam_1.prn")

//d:\\printservename\sharename打印机名
这是根据打印机名选择打印机
eminena 2003-09-25
  • 打赏
  • 举报
回复
Function Boolean SetDefaultPrinterA(string pszPrinter) Library "Winspool.drv"
guangli_zhang 2003-09-25
  • 打赏
  • 举报
回复
to eminena(0.3V 力大)
如何使用,谢谢,行了一定给分
eminena 2003-09-24
  • 打赏
  • 举报
回复
用 API 吧!
workhand 2003-09-18
  • 打赏
  • 举报
回复
还是调出PB的打印机设置页面来指定打印机吧,那样可以设置其他的选项
jdsnhan 2003-09-18
  • 打赏
  • 举报
回复
可以用API实现,但具体是哪个函数记不清楚了。
guangli_zhang 2003-09-18
  • 打赏
  • 举报
回复
因为一个程序中需要用两个打印机
不能总是用printsetup()吧
如一个是传真
另一个是别的打印机
chrisfy 2003-09-18
  • 打赏
  • 举报
回复
printsetup() //打开打印机设置对话框,并且不影响其他应用的打印设置
rogery 2003-09-17
  • 打赏
  • 举报
回复
可以通过在打印的时候,调出PB的打印机设置来更改默认的打印机属性
SilverSands 2003-09-17
  • 打赏
  • 举报
回复
printsetup()
Calls the Printer Setup dialog box provided by the system printer driver and lets the user specify settings for the printer.
guangli_zhang 2003-09-17
  • 打赏
  • 举报
回复
请问祥细写法
手工是不行的
qiyousyc 2003-09-17
  • 打赏
  • 举报
回复
API或手工printsetup()
Jonea 2003-09-17
  • 打赏
  • 举报
回复
printsetup()

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧