100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 获取所有打印机 设置默认打印机 获取默认打印机

获取所有打印机 设置默认打印机 获取默认打印机

时间:2024-06-25 01:06:58

相关推荐

获取所有打印机 设置默认打印机 获取默认打印机

#include <winspool.h>

#pragma comment(lib, "Winspool.lib")

/获取默认打印机/

static void GetDefaultPrinter(CString& csPrinter)

{

HANDLE hPrinter = NULL;

DWORD dwSize = 0;

if((!::GetDefaultPrinter(NULL, &dwSize)) && GetLastError()==ERROR_INSUFFICIENT_BUFFER)

{

TCHAR *szPrinter = new TCHAR[dwSize+1];

if(::GetDefaultPrinter(szPrinter, &dwSize))

{

csPrinter = szPrinter;

}

delete []szPrinter;

}

}

获取所有打印机/

CString csDefault;

GetDefaultPrinter(csDefault);

DWORD dwSize,dwPrinters;

BOOL bSet = FALSE;

CString strName;//存储名称,可以自己设定

EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,NULL,0,&dwSize,&dwPrinters);

BYTE* pBuffer=new BYTE[dwSize];

EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,pBuffer,dwSize,&dwSize,&dwPrinters);

if (dwPrinters!=0)

{

PRINTER_INFO_5* pPrnInfo=(PRINTER_INFO_5*)pBuffer;

for (UINT i=0;i<dwPrinters;i++)

{

strName=pPrnInfo->pPrinterName;

m_comBox.InsertString(i, strName);

if (!bSet)

{

if (csDefault == strName)

{

m_comBox.SetCurSel(i);

bSet = TRUE;

}

}

pPrnInfo++;

}

}

delete[] pBuffer;

设置默认打印机//

::SetDefaultPrinter(csTxt);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。