如何在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回答。
| |
|
|
| |
|
|