双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

设置网络打印机 OpenPrinter失败

aviva330 aviva330 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
其实就是一个权限问题。我需要设置一台局域网中的共享打印机的默认设置。但是我调用API OpenPrinter的时候会失败。获取本地的打印机就没这个问题。 报错是:ERROR_ACCESS_DENIED 5 Access is denied. 代码如下。
HANDLE hPrinter = NULL;
DWORD dwNeeded = 0;
PRINTER_INFO_2 *pi2 = NULL;
DEVMODE *pDevMode = NULL;
PRINTER_DEFAULTS pd;
BOOL bFlag;
LONG lFlag;

// Open printer handle (on Windows NT, you need full-access because you
// will eventually use SetPrinter)...
ZeroMemory(&pd, sizeof(pd));
pd.DesiredAccess = PRINTER_ALL_ACCESS;
bFlag = OpenPrinter(pPrinterName, &hPrinter, &pd);
if (!bFlag || (hPrinter == NULL))
{
DWORD dwCode = GetLastError();
AfxMessageBox ("OpenPrinter failed.");
return FALSE;
}
有人知道如何获取SetPrinter的权限吗? 小生谢了`(不好意思 我没积分可以发的。。)
...全文

相关推荐

使用C++实现打印机驱动枚举

本文还有配套的精品资源,点击获取 简介:打印机驱动是操作系统与物理打印机沟通的桥梁,本文重点介绍如何使用C++和Windows API来枚举本地及网络打印机驱动和端口。这涉及到包含 windows.h 头文件、使用 EnumPrinters 函数及处理 PRINTER_INFO_2 结构体来获取并显示打印机的详细信息。掌握这些技术将...

罗博深

基于虚拟打印机技术实现跨网络打印:KKPrinter架构与二次开发指南

打印机共享是IT运维中的常见需求,传统基于SMB协议的Windows共享方案在跨网络、跨系统版本时极易出现0x00000709、0x000006ba等兼容性错误。其原理依赖于局域网内的网络发现和文件共享协议,在复杂网络环境下稳定性差。为解决这一问题,虚拟打印机技术提供了一种新思路:通过在系统层创建虚拟打印设备,拦截并重定向打印数据流,从而绕过传统共享协议的限制。这种方案的技术价值在于将打印任务从网络层问题转化为应用层的数据传输问题,实现了真正的跨网络、跨系统打印。其核心应用场景包括分布式办公、生产车间与研发

weixin_34221073

#include BLEDevice.h.pages

#include BLEDevice.h.pages

芥末915

科技中介服务机构如何利用智能体技术提升技术交易服务的专业性与便捷性?.docx

科技中介服务机构如何利用智能体技术提升技术交易服务的专业性与便捷性?

BIZKEEN

AI 完成消除游戏自动化经验总结

打包的测试代码工程,基本不侵入游戏

Allan_2025
评论 1
收藏 已收藏
分享
返回顶部
aviva330
新手乐园 33,315 成员 41,769 内容