Windows服务凭据

本文关键字:服务 Windows | 更新日期: 2023-09-27 18:25:24

我有一个Windows服务,应该打印HTML文本
操作系统为7,带有。NET 4.5.1和IE 11。

代码:

    private static void PrintOnStaThread(string text)
    {
        using (WebBrowser webBrowser = new WebBrowser())
        {
            webBrowser.Navigate("about:blank");
            webBrowser.Document.OpenNew(false);
            while (webBrowser.DocumentText != text && webBrowser.ReadyState != WebBrowserReadyState.Complete)
            {
                webBrowser.Document.Write(text);
                webBrowser.Refresh();
                Application.DoEvents();
            }
            InternetExplorer internetExplorer = (InternetExplorer)webBrowser.ActiveXInstance;
            internetExplorer.ExecWB(OLECMDID.OLECMDID_PRINT, OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, Win32.PRINT_WAITFORCOMPLETION);
        }
    }

问题:
当使用Local System帐户记录服务时,ExecWB函数将不执行任何操作,线程将毫无异常地退出。当使用管理员凭据记录服务时,ExecWB功能可以正常工作,但我不想使用此帐户。

欢迎任何意见。

Windows服务凭据

这是可能的,但您需要将服务配置为"交互式"。

有关详细信息,请查看此文档http://msdn.microsoft.com/en-us/library/windows/desktop/ms683502(v=vs.85).aspx