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;