c 如何得到打印机的名称
c 怎么得到打印机的名称?
CPrintDialog dlg(FALSE); CString divic; if (dlg.DoModal() == IDOK) { divic = dlg.GetDeviceName();//得到打印机的名称 MessageBox(hWnd,"打印","提示",MB_OK); }
这是MFC提供的类方法, C语言有没有可以得到打印机名称的方法!
------解决方案--------------------
CPrintDialog dlg(FALSE); CString divic; if (dlg.DoModal() == IDOK) { divic = dlg.GetDeviceName();//得到打印机的名称 MessageBox(hWnd,"打印","提示",MB_OK); }
这是MFC提供的类方法, C语言有没有可以得到打印机名称的方法!
------解决方案--------------------
- C/C++ code
DWORD dwNeed,i,dwTemp,dwReturn;
PRINTER_INFO_2 * m_pPrinterInfo;
m_pPrinterInfo = new PRINTER_INFO_2;
EnumPrinters( PRINTER_ENUM_LOCAL,NULL,2,(LPBYTE)m_pPrinterInfo,sizeof(PRINTER_INFO_2),&dwNeed,&dwReturn );
delete m_pPrinterInfo;
if( ( m_pPrinterInfo = ( PRINTER_INFO_2 * )new BYTE[dwNeed] ) == NULL )
{
return FALSE;
}
EnumPrinters (PRINTER_ENUM_LOCAL,NULL,2,(LPBYTE)m_pPrinterInfo,dwNeed,&dwTemp,&dwReturn);
for (i = 0; i < dwReturn; i++ )//Debug输出枚举到的驱动名称
{
pPrinterInfo = m_pPrinterInfo + i;
OutputDebugString(pPrinterInfo->pPrinterName);
}
delete m_pPrinterInfo;