枚举打印机名

博客代码通过枚举本地和常用打印机,查找Adobe相关打印机。先分配内存,再次枚举打印机,遍历结果,若找到含'PDF'且不含'Writer'的打印机,设置为'Adobe PDF';若找到'Acrobat Distiller'且之前未设置,则设置为该值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DWORD            dwFlags = PRINTER_ENUM_FAVORITE | PRINTER_ENUM_LOCAL;
LPPRINTER_INFO_2 pPrinters;
DWORD            cbPrinters;
DWORD            cReturned, i;
 
 EnumPrinters (dwFlags, NULL, 2, NULL, 0, &cbPrinters,&cReturned);
 
 if (!(pPrinters = (LPPRINTER_INFO_2) LocalAlloc (LPTR, cbPrinters + 4)))
  return false;
 
 if (!EnumPrinters (dwFlags, NULL, 2, (LPBYTE) pPrinters,
  cbPrinters, &cbPrinters, &cReturned))
 {
  LocalFree (LocalHandle (pPrinters));
  return false;
 }
 
 if (cReturned > 0)
 {
  for (i = 0; i < cReturned; i++)
  {
   AfxMessageBox((pPrinters + i)->pPrinterName);
   if(strstr((pPrinters + i)->pPrinterName,"PDF")!=0 && strstr((pPrinters + i)->pPrinterName,"Writer")<=0)
   {
    m_sNewPrinter = "Adobe PDF";
    return true;
   }
  }
  for (i = 0; i < cReturned; i++)
  {
   if(strstr((pPrinters + i)->pPrinterName,"Acrobat Distiller")!=0 && m_sNewPrinter==""){  
    m_sNewPrinter = "Acrobat Distiller";
    return true;
   }
  }
 }
 
 LocalFree (LocalHandle (pPrinters));
 return false;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值