C# 打印任何文件类型

C# 打印任何文件类型,c#,windows,printing,C#,Windows,Printing,我正在创建一个服务,它将监视特定文件夹并打印放入该文件夹的任何文件。我对可以发送到要打印的文件夹的各种文件类型有困难 我的第一次尝试是使用Microsoft Office文件。我要做的是启动办公室打印文件。这更像是一个陷阱,我不是真的在使用图书馆或类似的东西 到目前为止,这种方法是可行的,但是当机器上还没有启动Office应用程序时,Office会要求用户使用缩写。因此,在这种情况下,我的应用程序将无法运行,因为我是按编程方式运行的 ProcessStartInfo info =

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

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

到目前为止,这种方法是可行的,但是当机器上还没有启动Office应用程序时,Office会要求用户使用缩写。因此,在这种情况下,我的应用程序将无法运行,因为我是按编程方式运行的

        ProcessStartInfo info = new ProcessStartInfo(myDocumentsPath);
        info.Verb = "Print";
        info.CreateNoWindow = true;
        info.WindowStyle = ProcessWindowStyle.Hidden;
        Process.Start(info);
现在我正在尝试使用MicrosoftOffice文件,但我也将对其他类型应用相同的方法

第一次办公室运行所需的首字母缩写有什么办法

还是有更好的方法来解决我的问题


感谢您的帮助,提前感谢。

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

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


其他应用程序也是如此(假设执行应用程序打印它),它需要作为进程将要运行的帐户运行并正确配置。

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

也许会有帮助。这是VB代码,但可能有助于找到避免或关闭Office应用程序对话框的方法:虽然这有助于解决Office的问题,但对任何其他可能在应用程序首次运行时执行一次性初始化的应用程序都没有帮助。它只解决了实际问题的一小部分。