5

我正在创建一个服务,它将监视特定文件夹并打印放在该文件夹中的任何文件。我对可以发送到要打印的文件夹的各种文件类型有困难。

我的第一次尝试是使用 Microsoft Office 文件。我想做的是启动办公室打印文件。这更像是一个陷阱,我并没有真正使用图书馆或类似的东西。

到目前为止,这种方法是可行的,但是当计算机上没有任何 Office 应用程序启动时,Office 会要求用户输入姓名首字母。因此,在这种情况下,我的应用程序将无法正常工作,因为我是以编程方式执行此操作的。

        ProcessStartInfo info = new ProcessStartInfo(myDocumentsPath);
        info.Verb = "Print";
        info.CreateNoWindow = true;
        info.WindowStyle = ProcessWindowStyle.Hidden;
        Process.Start(info);

现在我正在尝试使用 Microsoft Office 文件,但我也会对其他类型应用相同的方法。

无论如何要绕过第一次 Office 运行所需的缩写?

或者有什么更好的方法来解决我的问题?

任何帮助表示赞赏,在此先感谢。

4

2 回答 2

1

你真的无能为力。对于将打印您要支持的每种文件类型的应用程序,您需要确保应用程序配置正确。

这意味着对于 Office(因为它作为进程外 COM 服务器运行),您应该在执行打印的帐户下运行它,这样您就可以输入首字母,并且在服务器尝试时不会提示您输入打印它。

对于所有其他应用程序都是如此(假设执行该应用程序以打印它),它需要作为进程将在其下运行并正确配置的帐户运行。

于 2012-11-09T22:01:57.260 回答
0

使用 Winternals 的 regmon 注册表活动监视器来确定 Office 在 Windows 注册表中存储首字母的位置,然后在打印之前写入这些键。

于 2012-11-09T22:05:48.403 回答