文章类型: VC&C++
关键词: VC,得到系统所有打印机和默认打印机
内容摘要: VC 得到系统所有打印机和默认打印机

VC,得到系统所有打印机,默认打印机

2018/7/12 16:53:59    来源:apple    阅读:

1、得到所有打印机

//得到所有打印机
DWORD dwSize,dwPrinters;
::EnumPrinters(PRINTER_ENUM_CONNECTIONS | PRINTER_ENUM_LOCAL,NULL,5,NULL,0,&dwSize,&dwPrinters);
BYTE *pBuffer=new BYTE[dwSize];
::EnumPrinters(PRINTER_ENUM_CONNECTIONS | PRINTER_ENUM_LOCAL,NULL,5,pBuffer,dwSize,&dwSize,&dwPrinters);
CString sPrinter;
if(dwPrinters!=0)
{
	PRINTER_INFO_5 *pPrnInfo=(PRINTER_INFO_5 *)pBuffer;
	for(int i=0;i <dwPrinters;i++)
	{
		sPrinter.Format(_T("%s"),pPrnInfo-> pPrinterName);
		pPrnInfo++;//指针后移 
	}
}
delete []pBuffer;

2、得到默认打印机并弹出属性编辑

//得到默认打印机并弹出属性编辑
#include <WinSpool.h>  
#pragma comment(lib, "Winspool.lib")  
#include <shellapi.h>  
#pragma comment(lib, "shell32.lib")  
BOOL OpenDefaultPrinter()  
{
	BOOL bRet = FALSE;
	DWORD dwSize = 0;
	if(!GetDefaultPrinter(NULL, &dwSize)
		&& GetLastError()==ERROR_INSUFFICIENT_BUFFER)
	{
		TCHAR *szPrinter = new TCHAR[dwSize+1];
		if(GetDefaultPrinter(szPrinter, &dwSize))
		{
			if(SHInvokePrinterCommand(
				NULL, //GetSafeHwnd(),   
				PRINTACTION_PROPERTIES,
				szPrinter,
				NULL,
				FALSE))
			{
				bRet = TRUE;
			}
		}
		delete []szPrinter;
	}
	return bRet;
}


↑ 上一篇文章:MFC对话框使用CPrintDialog实现打印,指定打印机、后台打印 关键词:MFC,对话框,CPrintDialog,实现打印,指定.. 发布日期:2018/7/12 16:49:31
↓ 下一篇文章:photoshop中bmp图片不能选择保存8位深度的解决办法 关键词:photoshop,bmp,图片,不能,选择,保存,8位.. 发布日期:2018/7/16 9:59:26
相关文章:
VC中,出现oxc0000005 读取位置oxddddddddd 时发生访问冲突,0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值说明 关键词:VC,oxc0000005,读取,位置,oxddddddddd,0x0000000,发生,访问,.. 发布日期:2018-07-27 10:58
如何将bmp格式的图片转换成8位256色且保证不失真呢 关键词:VC,ps,将,bmp图片,转换,8位,256色,不失真,faststone,image,vie.. 发布日期:2016-08-10 16:28
在VC的MFC中修改静态文本框中文字的字体、颜色 关键词:VC,MFC,修改,静态,文本框,文字,字体,颜色 发布日期:2017-11-29 16:43
相关目录:.NETVC&C++
我要评论
正在加载评论信息......