c 怎么得到打印机的名称?
CPrintDialog dlg(FALSE); CString divic; if (dlg.DoModal() == IDOK) { divic = dlg.GetDeviceName();//得到打印机的名称 MessageBox(hWnd,"打印","提示",MB_OK); }
这是MFC提供的类方法, C语言有没有可以得到打印机名称的方法!
[解决办法]
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;