关于缺省(默认)打印机的设置

littleyangyang 2003-10-23 12:16:22
我现在有好几台打印机,都同时连起来了,我的程序里的资料分别打印到不同的打印机,然后是用windows的打印任务打的,这就需要程序动态设置windows默认打印机了,但是我现在有一个函数只能支持windows98的,不支持windows2000,不知道哪位高手知道这方面的知识,高分相求啊,最好提供些原码参考,因为本人涉及pb不久,谢谢
...全文
148 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
erigido 2003-11-21
  • 打赏
  • 举报
回复
RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device", RegString!, vsDevice)
//vsDevice是得到的默认打印机名
sunsg 2003-11-08
  • 打赏
  • 举报
回复
直接修改注册表即可

得到默认打印机:
RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device", RegString!, vsDevice)
//vsDevice是得到的默认打印机名

设置默认打印机:
RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device", RegString!, vsprinter)
//vsprinter是需要设置默认的打印机
flyerlxg 2003-11-04
  • 打赏
  • 举报
回复
up
incats 2003-11-04
  • 打赏
  • 举报
回复
楼上搞错了吧? 我刚写的一个,你试试:
//function: of_GetDefaultPrinter()

string ls_Printername
Blob blobData
Printer_info_2 lstr_info

ls_PrinterName = space(255)

choose case os
case 1, 2
//win9x
ulong cbNeeded, pcReturned, cbBuf
string ls_Name

cbBuf = 1
SetNull(ls_Name)

l_GetPrinter:
blobData = blob(space(cbBuf))

if EnumPrinters(PRINTER_ENUM_DEFAULT, ls_Name, 2, ref blobData, cbBuf, cbNeeded, pcReturned) = 0 then
If cbBuf < cbNeeded Then
cbBuf = cbNeeded
Goto l_GetPrinter
Else
Return ""
End If

end if

CopyMem ( lstr_info, blobData, PRINTER_INFO_2_LEN )

ls_Printername = String ( lstr_info.pPrinterName, "address" )

case 3
//winnt, 暂不支持, 没空
//取win.ini
//GetProfileString()
case 4
//win2k
long l
l = len(ls_PrinterName)
GetDefaultPrinter(ls_PrinterName, l)
end choose

return ls_PrinterName
CSDN_QA 2003-11-02
  • 打赏
  • 举报
回复
pb8已经支持修改数据窗口的printer
wwk0904 2003-11-01
  • 打赏
  • 举报
回复
zzutligang(小鸟) 给我发一个啊,急用啊!!
wwk0904@yahoo.com.cn
谢谢啦!!!!
littleyangyang 2003-10-30
  • 打赏
  • 举报
回复
坦克是令人钦佩,但是你的办法在win98下没问题,在2000下就不行了,不知道有么有2000下行的。
zzutligang 2003-10-30
  • 打赏
  • 举报
回复
我给你发一个打印机控制的DLL,刚写的,可以实现打印机的控制。有PB7的例子。
zhangdatou 2003-10-30
  • 打赏
  • 举报
回复
坦克厉害
zhengkaining 2003-10-30
  • 打赏
  • 举报
回复
zkn@SIna.com给我发一个
flyhot 2003-10-30
  • 打赏
  • 举报
回复
up
incats 2003-10-24
  • 打赏
  • 举报
回复
function boolean GetDefaultPrinter(ref string PrinterName, ref long dwBufferSize) library "winspool.drv" alias for "GetDefaultPrinterA"
function boolean SetDefaultPrinter(ref string PrinterName) library "winspool.drv" alias for "SetDefaultPrinterA"
incats 2003-10-24
  • 打赏
  • 举报
回复
哈哈哈哈哈哈哈哈哈哈哈哈哈哈
鸡翅多 2003-10-24
  • 打赏
  • 举报
回复
但是同样很令人敬佩,哈哈
鸡翅多 2003-10-24
  • 打赏
  • 举报
回复
坦克在抢分,哈哈
workhand 2003-10-24
  • 打赏
  • 举报
回复
楼上的凌晨40分还在回答问题,令人佩服。

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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