问题标签 [redmon]

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 投票
1 回答
2806 浏览

.net - Redmon 重定向到 .NET Windows.Forms 应用程序

我有一个有趣的任务:编写一个程序来捕获来自名为Redmon的程序的输入。它基本上是一个将输出重定向到程序的虚拟打印机。

我安装了 Redmon 并创建了一个 winforms 应用程序来捕获输出。但我被困在这里。我检查了我的程序收到了什么,它在参数级别上什么都没有(主参数上的字符串 [] 是空的)。

Redmon 启动我的程序,但随后它停止了。我想我应该以某种方式阅读它发送给程序的内容,但是如何?

0 投票
2 回答
2036 浏览

c# - Redmon 的 Run As User 未加载用户的环境变量

我正在尝试使用 Redmon http://www.winimage.com/misc/redmon/将打印作业发送到自定义 C# 应用程序。Redmon 作为 SYSTEM “运行”(实际上是 Print Spooler),但有一个以用户身份运行的选项,以允许您的应用程序在打印作业的用户下运行。问题是它似乎没有加载用户的环境。所以像 Path.GetTempPath() 这样的调用函数指向 \windows\temp 而不是用户的。此外,当尝试通过 MAPI 调用(添加附件)运行 Outlook 2007+ 时,它会报告由于临时文件夹位置而导致的表单错误。

有没有办法“重新加载”配置文件或至少在模拟应用程序中获取您的环境变量?到目前为止,我唯一的想法是直接从注册表重建 var,但我想避免这种情况,因为它是一个 hack(避免实现细节等等)。或者制作一个 Redmon 调用的存根程序,然后使用完整的自定义应用程序以用户身份正确运行。

还有其他物品或技巧吗?

0 投票
2 回答
1980 浏览

c - WinAPI C - 来自 REDMON_USER 和 REDMON_SESSIONID 的 RunAsUser

我安装了 PostScript 打印机驱动程序并设置了 REDMON (redmonnt.dll) 用于将 postscript 输出重定向到我的程序。在我相当简单的 c 程序中,我从 STDIN 捕获数据,并且能够成功地将其保存到 .ps 文件中。该文件看起来不错。

但是,我想启动 gsview.exe 来查看文件。如果我调用 ShellExecute 它在 Windows 7 中由于权限问题而失败。似乎我的程序是在不同的用户帐户(本地服务)下调用的。因此,我正在寻找一种在特定用户名(启动打印作业的用户)下运行 gsview.exe 的方法,该用户名在名为 REDMON_USER 的变量以及 SESSIONID 中可供程序使用。

问:在给定用户名和 sessionid 的情况下,启动程序所需的最少 WinAPI 调用是多少?

C/C++、.NET 中的任何代码示例都会非常有帮助。

编辑:我正在尝试完成的事情与 redrunee (来自 redmonee)非常相似。我不想使用 redrunee,因为它会在短时间内打开一个控制台窗口。

注意: 1) 该程序被打印机服务调用为 [LOCAL SERVICE] 帐户。2)第一个参数用户名(REDMON_USER),实际上指向当前正在看屏幕的用户

0 投票
8 回答
25081 浏览

windows-7 - 安装 RedMon 后无法在 Windows 7 中添加新的重定向端口

我的操作系统是 Windows 7 32 位。我安装了RedMon1.7Ghostscript 8.71GSview 4.9;安装成功。我去了 Windows Devices and Printers中的Add New Local Printer,点击Create A New Port,然后从Type of Port列表中选择Redirected Port 。单击下一步,在添加新端口窗口中,我将其命名为 RPT1:并单击确定,但它显示无法添加指定端口。操作无法完成(错误 0x00000001)

我尝试给端口起不同的名称,RPT2:、RPT4:、VPport: 等,但都给出了相同的结果。禁用 Windows 防火墙并尝试但它继续给出相同的错误,禁用防病毒 (Avira) 但没有任何变化。

什么可以阻止 Windows 7 添加重定向端口?

顺便说一句,我按照本教程中的说明来创建 postscript 打印机。

http://www.stat.tamu.edu/~henrik/GSPSprinter/GSPSprinter.html

欣赏任何想法或建议。谢谢

0 投票
1 回答
407 浏览

printing - 在哪里可以找到有关为 Windows 7 开发 PostScript 打印机的资源

我正在开发一个虚拟打印机来接受打印作业并将它们路由到 LAN 中的真实打印机。我希望创建一个postscript打印机作为共享虚拟打印机来接受来自局域网的打印作业,我希望通过ghostscript和redmon来开发它。

如果可以,请让我知道有关如何在 Windows 7 上创建 postscript 打印机的任何在线资源、示例或任何教程。

非常感谢,如果有知道的请告诉我。

0 投票
1 回答
907 浏览

c# - 如何异步等待来自拦截打印机输出的外部应用程序的响应

我设计了一个由 3 个独立的应用程序组成的系统:

  1. Web应用程序
  2. WCF 服务应用程序接收来自 Web 应用程序的请求,执行适当的操作并使用 SendKeys 类打印结果SendKeys.SendWait("^p");(这会发送一个 Ctrl + P 命令来打印屏幕上的内容)。
  3. 通过 Console.In 拦截打印机输出(通过 redmon 的虚拟打印机)的控制台应用程序(如此处所建议的

WCF 服务应用程序和 Web 应用程序可以轻松通信,但服务应用程序和控制台应用程序之间没有直接通信。控制台应用程序仅在有打印机作业且 WCF 应用程序不知道打印作业的结果时启动。

有没有办法让 WCF 服务应用程序接收来自打印作业的反馈(无论是否正常),因此它可以将适当的响应发送回 Web 应用程序,而无需Thread.Sleep()每秒执行一次,直到打印机应用程序完成打印并保存结果是文件还是数据库?

有没有办法我可以暂停 WCF 服务应用程序中的线程,并在打印过程完成后从打印机控制台应用程序恢复它(同时发送回信息)?

编辑:

我设法从 Richard Blewett 的建议中找到了解决方案。该解决方案将使 WCF 服务应用程序等到打印作业完成,但它会导致 WCF 应用程序被限制为一次只能制作一个打印作业。

我在 WCF 应用程序中创建了一个带有一些键的 EventWaitHandle,如下所示:

我可以像这样从控制台应用程序返回线程:

使用 Richard 的解决方案就不会出现这种情况,并且可以同时进行多个 WCF 服务调用。

0 投票
1 回答
585 浏览

ruby - Capturing printer data stream in ruby

anyone knows where a printer data stream is stored, and how to capture it a ruby executable? (for later pdf conversion for example)

I'm questioning this one, related to another question of mine. So transparent that i can't catch it...Using Rghost to emulate ghostscript command as would be on virtual printer

enter image description here

0 投票
3 回答
12442 浏览

java - 拦截发送到 Windows 打印机的数据(使用 RedMon)

我需要拦截发送到 Windows 上的 ESC/POS 打印机的数据并对其进行分析。

所以我想以纯文本形式获取数据,以便提取并理解发送到打印机的信息。

目前,我已经尝试使用 RedMon 将数据流发送到打印机端口。但是发送的数据是光栅图形的形式,即要打印的点,嵌入在 ESC/POS 命令中。

所以我想知道是否有人可以建议我如何获取文本格式的打印数据,以便能够从中提取一些信息。

0 投票
2 回答
210 浏览

python - 用于作为参数输入到我的 python 程序的端口号

我的程序接受 3 个参数

脚本侦听的端口(默认值:9100) 保存到文件后将打印作业重定向到的 IP 地址 转发打印作业时使用的目标端口(默认值:9100)

需要从端口获取数据并使用其 IP 地址将其转发到目标打印机端口。我需要帮助来确定我应该输入的目标打印机的端口号。我知道打印机,它来自打印机属性的 IP。

0 投票
2 回答
1316 浏览

java - 获取打印数据 - Windows (Redmon)

我正在尝试开发一个应用程序来检索打印数据,编辑其内容,然后打印数据。我正在RedMon为此目的使用。但到目前为止,我在网上看到的所有教程都与将数据存储到PDFusing RedMon.

我希望能够RedMon在 Windows 平台上进行配置,以便将整个打印数据(必然出现在打印纸上的数据)原样写入.txt文件,或者直接作为输入提供给java我的应用程序取得了。

到目前为止,我一直未能成功找到解决方案。这是可以实现的吗?