热情软件屋

 

如何在NT下取得默认打印机


编号:QA002679
建立日期: 2000年3月6日 最后修改日期:2000年3月11日
所属类别:

YLP:
    操作系统:WinNT4.0
    编程工具:VC++6.0
    问题:使用API接口函数,如何在NT下取得默认打印机?程序中不能使用PrintDlg,用EnumPrinters在95下能得到默认打印机,但在NT下好象没有效果。如果能在注册表、INI或其他地方中能得到默认打印机也可以(包括打印机名字或句柄)。但不能弹出对话框之类的东东。Thanks。

回答:

    NT下使用注册表键HKEY_CURRENT_USER+"Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows",
    查找"Device",可以得到默认打印机名字信息。使用CreateDC (NULL, szPrinterName, NULL, NULL)取得HDC。然后可以进行操作。
    honghao的意见:
    可以使用CPrintDialog类,调用GetDefaults()成员函数,它不会出现对话框,但将默认打印机的有关信息存放在m_pd结构中, 里面有你想要的任何信息。此方法在Windows 9x和NT下都可用。
    曾凡的意见:
     static char szPrinter[80];
     char *szDevice,*szDriver,*szOutPut;
     GetProfileString("windows","device",",,,",szPrinter,80);
     szDevice=strtok(szPrinter,",");
     szDriver=strtok(NULL,",");
     szOutPut=strtok(NULL,",");
     if(szDevice&&szDriver&&szOutPut)
     {
     return CreateDC(szDriver,szDevice,szOutPut,NULL);
     }

此问题由YLP回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio