我正在创建一项服务,该服务将监视特定文件夹并打印放在此文件夹中的任何文件。我对可以发送到要打印的文件夹的各种文件类型有困难。
我的第一次尝试是使用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运行所需的缩写?
或者更好地解决我的问题?
提前感谢任何帮助。
答案 0 :(得分:1)
你真的没有什么可以做的;对于将打印您要支持的每种类型文件的应用程序,您需要确保正确配置应用程序。
这意味着对于office(因为它作为进程外COM服务器运行),您应该在执行打印的帐户下运行它,这样您就可以输入首字母,并且不会在提示时输入服务器尝试打印它。
对于每个其他应用程序都是一样的(假设执行应用程序以打印它),它需要作为流程运行并正确配置的帐户运行。
答案 1 :(得分:0)
使用Winternals的regmon注册表活动监视器来确定Office将首字母存储在Windows注册表中的位置,然后在打印之前写入这些键。