问题标签 [printers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
823 浏览

winapi - addmonitor win32 调用失败,出现 lasterror 5

我创建了一个非常小的 win32 控制台应用程序 (AddPrintMonitor.exe),它只是调用 AddMonitor。这是一个小片段:

当我作为管理员组的成员运行它时失败。GetLastError() 返回 5。当我以“管理员”身份运行它时,它成功且没有问题。我在 Windows 7 x64 上运行。我正在尝试安装 redmonnt.dll 并且我确实拥有该 dll 的 64 位版本。此任务是 PostScript 驱动程序更大安装的一部分。我只隔离了 AddMonitor 部分以消除其他外部问题。

错误 5 是访问冲突或安全问题。我的第一个问题是为什么管理员组的成员不能执行这个函数调用?在这种情况下,实际管理员和管理员组的成员之间有什么区别?

其他需要注意的细节。我正在为我的打印机安装使用 InstallShield 12(旧)(addmonitor 只是一部分)。我正在通过 win32 函数调用添加监视器、端口、驱动程序和打印机。在运行我的 AddPrinterMonitor.exe 之前,我确保 redmonnt.dll 确实存在于 system32 目录中。实际上,dll是否存在与我看到的错误没有区别。我确实看到了有关设置 SeLoadDriverPrivilege 的帖子。当我检查时,这对我来说是一个死胡同,管理员组可以加载/卸载设备驱动程序。

另外,我正在使用 win32 调用来完成这项工作。这在 Win2K、WinXP 和 Windows Server 2003 上有效(我的意思是所有这些都有效)没有任何问题。对于较新的操作系统,如 Windows 7,有几个困难。有没有更好的方法被我忽略了?我很沮丧试图让它工作,所以我开始质疑 Vista 和更高版本的方法。

更多初始化代码:

MONITOR_NAME 被传递给 lpMonitorName 并且 MONITOR_FILE 被传递给 lpDllName

谢谢

0 投票
1 回答
3571 浏览

c# - 如何在 C# 中在指定的打印机上设置打印机端口

我希望能够在 c# 中执行以下等效操作:

  • 进入“设备和打印机”
  • 右键单击打印机
  • 转到端口选项卡
  • 选择 COM12:端口
  • 点击确定

我设法为命名打印机获取了一个 ManagementObject 并尝试调用:

mObj.SetPropertyValue("端口名称","COM12:");

在该打印机的 ManagementObject 上 - 从 ManagementBaseObject 继承。

但是,这段代码对打印机设置没有任何作用。

我怀疑我需要在适当的库上使用 P/Invoke,但经过大量搜索后,我找不到该库或如何从 c# 执行此操作的教程。

任何帮助将非常感激。

0 投票
2 回答
2170 浏览

delphi - PDevMode 和 DocumentProperties。在 Delphi 7+XE 之间迁移时出错

我在下面有以下功能,用于收集我正在打印的 PDF 的文档属性。出于某种原因,在 Delphi 7(运行 XP)中,这很好用......但是,当我尝试使用 Windows 7 使用 Delphi XE 重新编译时,该功能似乎总是退出失败...... dwRet = IDOK

我注意到我dwNeeded在 Delphi 7 中的对象是7332,而在 XE 中是4294967295

知道如何快速解决这个问题吗?

0 投票
1 回答
316 浏览

php - PHP 打印机网络服务器

现在,我建立了一个网站,该网站链接到 LAN 上的脚本,允许我安装我管理的许多网络打印机。基本上,它只是一个 HTML 页面,非常不安全地指向局域网另一部分的脚本,该脚本将其作为 TCP/IP 打印机安装在本地机器上。

有谁知道我怎样才能使它更安全和高效?Linux 服务器还托管 PHP 页面,因此服务器端脚本不会成为问题。网站必须有更好的方法来管理打印机的许多 IP、名称和驱动程序。我希望网站能够以某种方式实际安装打印机,而不是在获取 .inf 驱动程序文件并添加打印机时向没有经验的 PC 用户显示丑陋的 DOS 窗口。

0 投票
1 回答
526 浏览

python - 在 Python2.2(32 位)上加载 64 位 Dll

我正在使用Python 2.2,一个32 位进程,但我需要从打印机加载一个64 位 dll 。这可能看起来很奇怪,但这可能吗?

0 投票
2 回答
13363 浏览

windows - 在远程计算机上安装网络打印机

我希望有人能指出我正确的方向。

我希望能够远程管理用户的网络打印机。这意味着,可以使用 PowerShell 或 C# 之类的工具来选择计算机名称或 IP 地址,然后选择打印机(位于打印服务器上,例如 \PrintServer\Printer01)并将其安装在目标用户的计算机上。

我已经看到由于权限而确实说过的话,我可能必须伪造身份才能为用户正确安装它。

我注意到 powershell 有一个 Add-Printer cmdlet,但它告诉我它在我的机器上无法识别。但运行类似:add-printer -r CompName -p \server\Printer01然后远程计算机CompName从打印服务器获取打印机信息并安装它。

我不是在做梦吧?哈哈

0 投票
1 回答
103 浏览

printers - 如何在 Win 7 64 位机器中重命名 gDoc 打印机

我已经安装了一个名为 gDoc Creator 的打印机,用于在我的 Windows 7 64 位机器上打印。如果我将打印机重命名为“gDoc Creator”以外的任何名称,当我选择它进行打印时,打印机将无法识别。它只是变得完全死了。它仅适用于给定的名称。我想知道如何重命名打印机并使其成功运行。我已经尝试在 .inf 文件中重命名,但我还没有找到解决方案。感谢大家的帮助,感谢您的回复,如果需要更多详细信息,请告诉我。

0 投票
2 回答
857 浏览

iphone - 与IOS配合使用的POS系统

我正在开发一个 IOS 5 应用程序来下食品订单,这个订单会进入一个不断监控新订单的电子邮件收件箱。但是我正在寻找一个更好的解决方案我正在考虑将这个应用程序链接到一个 POS 系统来打印订单之后是从 iphone 应用程序发送的。我想知道是否有人开发了与 POS 系统集成的应用程序或将在线订单直接发送到打印机的方法?任何帮助将不胜感激。

我现在拥有的:一个 IOS 5 应用程序,它从 iphone 下订单,然后向收件箱发送一封电子邮件,然后手动打印出来,然后将其传递给厨房工作人员。

我想改进的地方:从应用程序中,我想与 REST 服务或中间的任何进程进行通信,然后希望在安装在厨房的 POS 打印机中打印出该订单/收据,而无需监控电子邮件收件箱并打印手动发送电子邮件。

资源:小型 POS 系统,带有 2 台打印机 1 台在厨房 1 台在厨房(用于购票)和互联网连接。

0 投票
1 回答
1489 浏览

c# - 如何使用 C#/.NET 检索打印机图标

可能重复:
我可以通过 .Net 获取与已安装打印机关联的图标吗?

如何使用 C#.NET 检索与打印机关联的图标?理想情况下,我希望在“打印机和设备”文件夹中显示图标,以便在我的应用程序中使用打印机。

一种方法是使用已安装的打印机对文件夹的路径进行硬编码,然后一个接一个地手动检索图标。这个问题已经在这里问过了。

但是,这种方法依赖于扫描给定文件夹、获取关联的打印机、将打印机名称与检索到的名称匹配并显示它们。

由于两个原因,这种方法可能不稳定:

  1. 这涉及将位置硬编码到打印机(可能因操作系统/版本而异)

  2. 无法保证显示的打印机名称将与应用程序中已登记的打印机名称相匹配。

是否有不涉及扫描/手动方法的编程/托管方法,但可以将图标作为某些托管 .NET 对象的属性检索?

0 投票
1 回答
2752 浏览

windows - What is the folder location of installed printers?

I would like to retrieve icon of the installed printers. From what I could search, one of the approach is to retrieve the icon of the .dll or .exe and have it be the icon of the printer. However, it's easy to find printer installed through GUI at:

Control Panel\Hardware and Sound\Devices and Printers

But, is there a physical location on hard drive to this list ? Is this created on the fly ?