怎样获得系统默认的打印机,在NT/2000下

wgsaiwxx 2002-08-27 09:22:39
怎样获得系统默认的打印机,在NT/2000下
...全文
77 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasper_liu 2002-08-27
  • 打赏
  • 举报
回复
你把它设成PRINTER_ENUM_DEFAULT试一下
wgsaiwxx 2002-08-27
  • 打赏
  • 举报
回复
多谢老兄,但是在NT下是找的LOCAL而不是DEFAULT,如果我把网络打印机设成DEFAULT怎么办啊,请再给个办法。多谢
jasper_liu 2002-08-27
  • 打赏
  • 举报
回复
#include <windows.h>

HDC GetPrinterDC(void)
{
DWORD dwNeeded, dwReturned;
HDC hdc;
PRINTER_INFO_4 *pinfo4;
PRINTER_INFO_5 *pinfo5;

if(GetVersion()&0x80000000) // Windows 98
{
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, NULL, 0, &dwNeeded, &dwReturned);
pinfo5=malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_DEFAULT,NULL,5,(PBYTE)pinfo5,dwNeeded,&dwNeeded,&dwReturned);
hdc=CreateDC(NULL,pinfo5->pPrinterName,NULL,NULL);
free(pinfo5);
}
else // Windows NT
{
EnumPrinters(PRINTER_ENUM_LOCAL,NULL,4,NULL,0,&dwNeeded,&dwReturned);
pinfo4=malloc(dwNeeded);
EnumPrinters(PRINTER_ENUM_LOCAL,NULL,4,(PBYTE)pinfo4,dwNeeded,&dwNeeded,&dwReturned);
hdc=CreateDC(NULL,pinfo4->pPrinterName,NULL,NULL);
free(pinfo4);
}
return hdc;
}
wgsaiwxx 2002-08-27
  • 打赏
  • 举报
回复
老兄那还有没有别的办法,我的studio不行啊
LocalVar 2002-08-27
  • 打赏
  • 举报
回复
这个api只能在2000下用,并且如果你的visual studio的Service pack较低的话,可能会找不到它。

Requirements
Windows NT/2000/XP: Included in Windows 2000 and later.
Windows 95/98/Me: Unsupported.
Header: Declared in Winspool.h; include Windows.h.
Library: Use Winspool.lib.
Unicode: Implemented as Unicode and ANSI versions.

LocalVar 2002-08-27
  • 打赏
  • 举报
回复
GetDefaultPrinter
wgsaiwxx 2002-08-27
  • 打赏
  • 举报
回复
PRINTER_ENUM_DEFAULT
是95下的,我试了还是不行,请教高手谁知道,怎么做,帮帮忙啊

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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