使用SetPrinter修改打印机名称
最近项目需要修改打印机名称
public static bool SetPrinterName(string OldName, string newName){IntPtr hPrinter;PrintAPI.structPrinterDefaults defaults = new PrintAPI.structPrinterDefaults();defaults.pDatatype = null;defaults.pDevMode = IntPtr.Zero;defaults.DesiredAccess = PrintAPI.PRINTER_ACCESS_ADMINISTER | PrintAPI.PRINTER_ACCESS_USE;if (PrintAPI.OpenPrinter(OldName, out hPrinter, ref defaults)){int cbNeeded = 0;bool bolRet = PrintAPI.GetPrinter(hPrinter, 2, IntPtr.Zero, 0, out cbNeeded);if (cbNeeded >= 0){IntPtr pAddr = Marshal.AllocHGlobal((int)cbNeeded);bolRet = PrintAPI.GetPrinter(hPrinter, 2, pAddr, cbNeeded, out cbNeeded);if (bolRet){PrintAPI.PRINTER_INFO_2 info6 = new PrintAPI.PRINTER_INFO_2();info6 = (PrintAPI.PRINTER_INFO_2)Marshal.PtrToStructure(pAddr, typeof(PrintAPI.PRINTER_INFO_2));info6.pPrinterName = newName;IntPtr pPrinter = Marshal.AllocHGlobal(Marshal.SizeOf(info6));Marshal.StructureToPtr(info6, pPrinter, false);bolRet = PrintAPI.SetPrinter(hPrinter, 2, pPrinter, 0);Marshal.FreeHGlobal(pPrinter);}Marshal.FreeHGlobal(pAddr);}PrintAPI.ClosePrinter(hPrinter);return bolRet;}return false;}
大概的代码逻辑就是这样,这边有一个重点
PrintAPI.structPrinterDefaults defaults = new PrintAPI.structPrinterDefaults();defaults.pDatatype = null;defaults.pDevMode = IntPtr.Zero;defaults.DesiredAccess = PrintAPI.PRINTER_ACCESS_ADMINISTER | PrintAPI.PRINTER_ACCESS_USE;
一定要加这个设置权限,不然执行不成功。
使用SetPrinter修改打印机名称相关推荐
- win10打印机服务器属性修改,大师教你win10如何修改打印机名称的完全处理办法...
有网友说他的电脑总是爱出一些怪问题,这不就出现了win10如何修改打印机名称,新手处理关于win10如何修改打印机名称的问题不是特别容易,如果你现在找不到专业的人员来解决win10如何修改打印机名称这 ...
- 如何使用 SetPrinter 修改打印机设置
SetPrinter 是新 API for Windows 95. Windows NT. Windows 2000 和 Windows XP,允许应用程序更改各种打印机属性. 但是,如本文中的代码所 ...
- day inset_按 SetPrinter API 修改打印机设置 - Application Developer | Microsoft Docs
使用 SetPrinter 函数修改打印机设置 03/09/2020 本文内容 该 SetPrinter 函数允许应用程序更改各种打印机属性. 但是,如本文中的代码所示,一定数量的准备工作是正确调用所 ...
- .NET(C#) 查找打印机指定打印机名称打印代码(PrintDocument)
本文主要介绍.NET(C#)调用打印机打印相关操作(PrintDocument)代码,以及管理打印机的状态以及查询修改打印机属性,获取已安装的打印机驱动名,连接打印机并发送指令方法. 原文地址:.NE ...
- 解决:操作无法完成(错误0x00000709)。再次检查打印机名称,并确保打印机已连接到...
上午同时说,网络打印机打印不了,于是首先看一下打印服务器IP是不是给换了,结果没换. 接着尝试重新添加一下网络打印机,结果问题来了,连不上,提示: 操作无法完成(错误0x00000709).再次检查打 ...
- idea批量修改变量快捷键mac_使用Mac自带功能批量修改图片名称、类型和压缩图片大小...
Mac电脑自带的聚焦搜索功能已经很强大,可以快速准确的搜索电脑内的文件,但是从网上下载的文件,特别是一些图片文件都是一串数字组成的文件名,很难记忆和搜索,我们可以使用Mac自带的『自动操作』功能给图片 ...
- 在leangoo里怎么添加和移动列表,怎么修改列表名称?
添加列表两种方式: 点击看板内的添加列表按钮,添加列表 点击看板内空白位置,即可在当前位置插入一个空列表. 修改列表名称: 点击列表名即可快速修改名称: 浏览器访问官网:leangoo.com
- 批量修改文件名称(Python)
本程序功能:批量修改文件名称 import os import redef replaceDirName(rootDir): # 修改rootDir路径下的文件夹名num = 0dirs = os.l ...
- 修改项目名称后,部署到tomcat问题
1.问题描述: 修改项目名称后,部署到tomcat问题 解决方案: 项目->属性->myelcipse->web下,修改web context root就可! 2.去掉超链接默认的行 ...
最新文章
- 专家谈半导体产业前景 并购热还会继续
- VMware Workstation 与 Hyper-V 不兼容。请先从系统中移除 Hyper-V 角色
- MySQL调优系列基础篇
- [Python] L1-055 谁是赢家-PAT团体程序设计天梯赛GPLT
- DOM基础操作(三)
- Python12/10--前端之display/overflow使用/清浮动的方式
- c语言程序设计5pdf,C语言程序设计5.pdf
- VS2012 正式版BUG太多
- github协同工作流程(一)
- 部署在服务器上的行驶证识别api接口
- 计算机核心论文如何审稿,2021年,审稿快、好中的核心期刊有哪些?
- CNC:CNC计算机数控系统技术之数控仿真宏程序代码讲解、案例应用集合之详细攻略
- macOS 上都有哪些既免费、又实用的工具?| 新手问号
- 基于TensorRT 5.x的网络推理加速(python)
- 基于pytorch+python实现一个中文到英文的神经网络的翻译模型
- sqlloader导出数据指定分隔符_来一份数据库全家桶~
- 计算机常用端口号一览表,计算机常用端口一览表
- Educode--头歌 《软件工程》实验作业
- 蓝桥试题 算法训练 绘制地图 __Java
- 基于android的校园快递查询收取寄件app