c++列举出本地打印机和网络打印机名称
主要使用EnumPrinters函数
该函数枚举可用的打印机,打印服务器,域或印刷服务供应商。
代码:(开箱即用)
#include <Windows.h>
#include <stdio.h>
#include <atlstr.h> int main()
{
PRINTER_INFO_2* list;
DWORD cnt = ;
DWORD sz = ;
DWORD Level = ;
int i;
int sl; EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS, NULL, Level, NULL, , &sz, &cnt); if ((list = (PRINTER_INFO_2*)malloc(sz)) == ) return ; if (!EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS, NULL, Level, (LPBYTE)list, sz, &sz, &cnt))
{
free(list);
return ;
} printf("Number of installed printers on this pc = %i \n", cnt); CString PrinterName; for (i = , sl = ; i < (int)cnt; i++)
{ PrinterName.Format("%s", list[i].pPrinterName); if (list[i].Attributes & PRINTER_ATTRIBUTE_NETWORK)
{
printf(" network printer: %s\n", PrinterName);
}
else {
printf(" local printer: %s\n", PrinterName);
} } getchar();
return ; }
c++列举出本地打印机和网络打印机名称的更多相关文章
- 远程桌面 虚拟打印 到本地打印机(虚拟化 终端 远程接入 RemoteApp)
使用远程桌面或remoteapp进行打印时,若需使用本地的打印机,需要通过重定向方式,但本地打印机如果五花八门比较杂,那给服务器安装打印机驱动很麻烦. 其实可以借助虚拟打印机简化操作,省去给服务器安装 ...
- 修改OpenSSL默认编译出的动态库文件名称
在 Windows 平台上调用动态链接库 dll 文件时,有两种方式:a) 隐式的加载时链接:使用 *.lib (导入库)文件,在 IDE 的链接器相关设置中加入导入库 lib 文件的名称,或在程序中 ...
- C#获取本地打印机列表,并将指定打印机设置为默认打印机
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- C# 获取或设置本地打印机及配置文件操作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...
- 创建一个ArcGIS for Android 新项目并显示出本地的地图
1.准备工作:首先要配置好android的开发环境,然后在Eclipse中安装ArcGIS for Android的开发控件:在ArcCatalog中发布好本地的地图服务. 2.安装完ArcGIS f ...
- iOS8无法弹出本地通知?
最近在看<iOS编程(第4版)>(就是Big Nerd Ranch用的那本教材).这本书写的不错,推荐一下,写的很细致,循序渐进,不能不赞一下外国人写书的思路,确实跟国人不同.之前学And ...
- git修改本地和远程仓库名称的解决方法
说明:旧的仓库名称为mygit,新的仓库名称为Blog 1.修改远程仓库名称 在GitHub上进入要修改的仓库,找到settings,修改名称. 2.修改本地仓库名称 进入存放项目的目录,我的是/ho ...
- pwd - 显示出当前/活动目录的名称
总览 (SYNOPSIS) pwd [OPTION] 描述 (DESCRIPTION) 显示出 完整的 当前 活动目录 名称. --help 显示 帮助 信息, 然后 退出 --version 显示 ...
- iOS APP 在前台时弹出本地通知
iOS10 之后使用才有效果 1.在 AppDelegate.m 文件里面添加下面的方法. - (void)userNotificationCenter:(UNUserNotificationCent ...
随机推荐
- GO开发:链表
链表 type Student struct { Name string Next* Student } 每个节点包含下一个节点的地址,这样把所有的节点串起来了,通常把链表中的第一个节点叫做链表头 p ...
- 四十九:数据库之Flask-SQLAlchemy下alembic的配置
准备工作 配置数据 创建迁移文件并映射到数据库 增加字段 删除字段
- zabbix_server调优
调整zabbix_server参数 /usr/local/zabbix/etc/zabbix_server.conf StartPollers=160 StartPollersUnreachea ...
- PHP 异步执行方式
在工作中我们经常遇到一些比较耗时的任务,比如用户注册发送邮件,审核短信通知等功能,同步执行这些功能的话,响应时间就会变长,所以一般我们会用队列去管理这些功能,但是如果条件不允许怎么办,今天get了一个 ...
- Eclipse 包含头文件 添加环境变量
Eclipse 中新建C 或C ++到项目时,头文件报警,显示“Unresolved inclusion:<stdio.h>” 虽然不影响项目到编译和运行,确也无法查看头文件,让人感觉实在 ...
- HtML5与CSS3基础
HTML标签 1.<a></a> 超链接标签 属性 href:跳转页面的连接 name:实现定锚功能,跳转同一页面不同位置(例返回顶部) target: (self, pare ...
- Jmeter+TCP\Sockets(8583)报文压力测试
Jmeter一般被用来测试HTTP协议,我第一次拿来测试socket协议,pos机传输报文为8583,协议属于socket,也是TCP协议的一种,网上有LR怎么测试8583报文,我就研究了一下怎么用J ...
- ubuntu分区建议总结
本文为转载别人的内容,结合了其他内容,进行分区的总结.其中主要是分区表格,对于ubuntu安装时,进行分区非常有用. 无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为 ...
- mysql——多表——外连接查询——左连接、右连接、复合条件查询
), d_id ), name ), age ), sex ), homeadd ) ); ,,,'nan','beijing'); ,,,'nv','hunan'); ,,,'nan','jiang ...
- etcd常用命令-增删改查
增删改查key-values 插入数据测试 # etcdctl put name1 james# etcdctl put name11 alice# etcdctl put name12 seli # ...