获取所有打印机,设置默认打印机,获取默认打印机
2015-03-26 21:03
134 查看
#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);
#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);
相关文章推荐
- VB6 获取和设置默认打印机
- C#获取本地打印机列表,并将指定打印机设置为默认打印机
- C#获取本地打印机列表,并将指定打印机设置为默认打印机
- 【VC++技术杂谈002】打印技术之获取及设置系统默认打印机
- 获取设置本地当前默认打印机
- VB6 获取和设置默认打印机
- C#获取本地打印机列表,并将指定打印机设置为默认打印机
- C#获取本地打印机列表,并将指定打印机设置为默认打印机
- C#获取和设置系统的默认打印机,使用API
- VB6 获取和设置默认打印机
- 【打印技术01】获取及设置系统默认打印机
- 获取和设置默认打印机
- 获取默认打印机纸张的设置
- 打印技术之获取及设置系统默认打印机
- C#获取本地打印机列表,并将指定打印机设置为默认打印机
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十五节 设置本机默认的生存时间(time-to-live:TTL)值
- 设置系统默认打印机
- 一行命令获取当前JVM所有可设置的参数以及当前默认值
- QT QTableWidget设置了多行选中后,如何获取所有选中行的索引
- Delphi获取默认打印机名称及端口