我安装了 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),实际上指向当前正在看屏幕的用户