VC/MFC得到电脑的默认打印机、设置默认打印机、遍历电脑打印机
2015-04-25 23:48
531 查看
/article/5059809.html
得到电脑的默认打印机、设置默认打印机、遍历电脑打印机GetDefaultPrinter,SetDefaultPrinter,EnumPrinters
得到电脑的默认打印机
TCHAR szBuffer[1024]={0};
DWORD length = 1024;
intret = ::GetDefaultPrinter(szBuffer,&length);
if(ret== FALSE)
ret = ::GetLastError();
else
{
SetDlgItemText(IDC_EDIT1,szBuffer);
return;
}
if(ret == ERROR_INSUFFICIENT_BUFFER)
{
CString temp;
temp.Format(_T("%d"),length);
AfxMessageBox(CString(_T("ERROR_INSUFFICIENT_BUFFER"))+_T("the real size is ")+temp);
}
elseif(ret == ERROR_FILE_NOT_FOUND)
AfxMessageBox(_T("ERROR_FILE_NOT_FOUND"));
else
{
CString strRet;
strRet.Format(_T("%d"),ret);
AfxMessageBox(strRet);
}
设置电脑默认打印机
TCHAR szPrinterName[1024]={0};
GetDlgItemText(IDC_EDIT2,szPrinterName,1024);
BOOL ret = FALSE;
ret = SetDefaultPrinter(szPrinterName);
if(ret== FALSE)
AfxMessageBox(_T("设置默认打印机失败"));
else
AfxMessageBox(_T("设置默认打印机成功"));
遍历电脑中的打印机
DWORD Flags = PRINTER_ENUM_FAVORITE |PRINTER_ENUM_LOCAL;
DWORD cbBuf;
DWORD pcReturned ;
CString str;
DWORD Level = 2;
TCHAR Name[500]={0} ;
::EnumPrinters(Flags,
Name,
Level,
NULL,
0,
&cbBuf, //需要多少内存
&pcReturned) ;
constLPPRINTER_INFO_2 pPrinterEnum = (LPPRINTER_INFO_2)LocalAlloc(LPTR, cbBuf + 4) ;
if(!pPrinterEnum)
{
str.Format(L"error is %d",GetLastError());
MessageBox(str,0,0);
}
if(!EnumPrinters(
Flags,
Name,
Level,
(LPBYTE)pPrinterEnum,
cbBuf,
&cbBuf,
&pcReturned)
)
{
str.Format(L"error is %d",::GetLastError());
MessageBox(str,0,0);
return ;
}
CString temp;
temp.Format(_T("有几个数组元素%d"),pcReturned);
AfxMessageBox(temp);
for(unsignedint i=0;i<pcReturned;i++)
{
m_ListPrinter.InsertItem(i,NULL); //插入一行
LPPRINTER_INFO_2 pInfo=&pPrinterEnum[i];
m_ListPrinter.SetItemText(i,0,pInfo->pPrinterName);
m_ListPrinter.SetItemText(i,1,pInfo->pServerName);
m_ListPrinter.SetItemText(i,2,pInfo->pDriverName);
m_ListPrinter.SetItemText(i,3,pInfo->pPrintProcessor);
}
LocalFree(pPrinterEnum);
得到电脑的默认打印机、设置默认打印机、遍历电脑打印机GetDefaultPrinter,SetDefaultPrinter,EnumPrinters
得到电脑的默认打印机
TCHAR szBuffer[1024]={0};
DWORD length = 1024;
intret = ::GetDefaultPrinter(szBuffer,&length);
if(ret== FALSE)
ret = ::GetLastError();
else
{
SetDlgItemText(IDC_EDIT1,szBuffer);
return;
}
if(ret == ERROR_INSUFFICIENT_BUFFER)
{
CString temp;
temp.Format(_T("%d"),length);
AfxMessageBox(CString(_T("ERROR_INSUFFICIENT_BUFFER"))+_T("the real size is ")+temp);
}
elseif(ret == ERROR_FILE_NOT_FOUND)
AfxMessageBox(_T("ERROR_FILE_NOT_FOUND"));
else
{
CString strRet;
strRet.Format(_T("%d"),ret);
AfxMessageBox(strRet);
}
设置电脑默认打印机
TCHAR szPrinterName[1024]={0};
GetDlgItemText(IDC_EDIT2,szPrinterName,1024);
BOOL ret = FALSE;
ret = SetDefaultPrinter(szPrinterName);
if(ret== FALSE)
AfxMessageBox(_T("设置默认打印机失败"));
else
AfxMessageBox(_T("设置默认打印机成功"));
遍历电脑中的打印机
DWORD Flags = PRINTER_ENUM_FAVORITE |PRINTER_ENUM_LOCAL;
DWORD cbBuf;
DWORD pcReturned ;
CString str;
DWORD Level = 2;
TCHAR Name[500]={0} ;
::EnumPrinters(Flags,
Name,
Level,
NULL,
0,
&cbBuf, //需要多少内存
&pcReturned) ;
constLPPRINTER_INFO_2 pPrinterEnum = (LPPRINTER_INFO_2)LocalAlloc(LPTR, cbBuf + 4) ;
if(!pPrinterEnum)
{
str.Format(L"error is %d",GetLastError());
MessageBox(str,0,0);
}
if(!EnumPrinters(
Flags,
Name,
Level,
(LPBYTE)pPrinterEnum,
cbBuf,
&cbBuf,
&pcReturned)
)
{
str.Format(L"error is %d",::GetLastError());
MessageBox(str,0,0);
return ;
}
CString temp;
temp.Format(_T("有几个数组元素%d"),pcReturned);
AfxMessageBox(temp);
for(unsignedint i=0;i<pcReturned;i++)
{
m_ListPrinter.InsertItem(i,NULL); //插入一行
LPPRINTER_INFO_2 pInfo=&pPrinterEnum[i];
m_ListPrinter.SetItemText(i,0,pInfo->pPrinterName);
m_ListPrinter.SetItemText(i,1,pInfo->pServerName);
m_ListPrinter.SetItemText(i,2,pInfo->pDriverName);
m_ListPrinter.SetItemText(i,3,pInfo->pPrintProcessor);
}
LocalFree(pPrinterEnum);
相关文章推荐
- 遍历电脑打印机、设置默认打印机、EnumPrinters ,SetDefaultPrinter,GetDefaultPrinter
- C#如何设置电脑的默认打印机?
- VC 得到系统所有打印机和默认打印机
- C#如何设置电脑的默认打印机?
- 【VC++技术杂谈002】打印技术之获取及设置系统默认打印机
- VC 得到系统所有打印机和默认打印机
- VC新建目录CreateDirectory、得到exe存放路径GetModuleFileName、获取当前目录GetCurrentDirectory、CFileDialog设置打开默认路径
- C#如何设置电脑的默认打印机?
- VC新建目录CreateDirectory、得到exe存放路径GetModuleFileName、获取当前目录GetCurrentDirectory、CFileDialog设置打开默认路径
- 设置EXCEL的默认打印机
- Win7系统设置自动切换默认打印机的方法
- HOW TO:设置默认打印机
- VC6默认设置下结构体对齐大小
- VC/MFC如何设置对话框、static背景颜色
- (转载)用vs2010开发基于VC++的MFC 串口通信一*****两台电脑同一个串口号之间的通信
- 直接使用默认设置进行打印:(2)使用MFC编程实现打印中文字符串
- 在MFC中设置打印的默认方式为Landscape模式
- 设置电脑默认浏览器的方法
- C#:调用API函数,弹出对话框更改打印机默认设置
- 通过注册表设置默认打印机的方法