• Windows服务打印,使用CreateProcessAsUser 为什么会句柄无效?

  • 本文关于 c#
  • CodeGo.net > Windows服务打印,使用CreateProcessAsUser 为什么会句柄无效?
  •  

    Windows服务打印,使用CreateProcessAsUser 为什么会句柄无效?



    c#
    如果调用msiexec.exe cmd.exe 这些程序都是没有问题的 但是为什么自己用C#写的winform程序调用的时候会出现句柄无效的错误呢?
    !忙一个通宵还是没有搞定 就是想用服务实现打印而已!
    没人。
    们帮
     string _logonName = "administrator"; // some user
    string _domain = ""; // local machine account
    string _password = "`";
    StringBuilder sb = new StringBuilder();
    // command to execute
    sb.Append(@"WindowsApplication1.exe");
    PROCESS_INFORMATION processInfo;
    STARTUPINFO startInfo = new STARTUPINFO();
    startInfo.cb = Marshal.SizeOf(startInfo);
    startInfo.lpDesktop = "winsta0\\default";
    //startInfo.wShowWindow = STARTF_USESHOWWINDOW;
    startInfo.lpTitle = "This is a Command console";
    startInfo.dwFlags = STARTF_USECOUNTCHARS;
    startInfo.dwYCountChars = 50;
    // create process similar as "runas" using the logon users profile
    bool ret = CreateProcessWithLogonW(_logonName, _domain, _password,
    LOGON_WITH_PROFILE, null, sb,
    NORMAL_PRIORITY_CLASS | CREATE_UNICODE_ENVIRONMENT,
    IntPtr.Zero, "C:\\",
    ref startInfo, out processInfo);

    本文地址 :CodeGo.net/1482718/
    -------------------------------------------------------------------------------------------------------------------------
    1.
    private void print()
    {
    object empty = null;
    axW.Navigate("http://www.google.com", ref empty, ref empty, ref empty, ref empty);
    for (; axW.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE; )
    {
    System.Windows.Forms.Application.DoEvents();
    }
    axW.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref empty, ref empty);
    }
    public void printdoc()
    {
    try
    {
    Process printjob = new Process();
    printjob.StartInfo.FileName = @"C:\printdoc.html";
    printjob.StartInfo.UseShellExecute = true;
    printjob.StartInfo.Verb = "print";
    printjob.StartInfo.CreateNoWindow = true;
    printjob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
    printjob.Start();
    }
    catch (Exception exc)
    {
    Function.LogErrorToFile("Print", exc.Message, true);
    }
    }

    本文标题 :Windows服务打印,使用CreateProcessAsUser 为什么会句柄无效?
    本文地址 :CodeGo.net/1482718/
    1. C#中的正则表达式:返回结果的集合
    2. winform 如何获取局域网中所有打印机的状态?
    3. GDI RoundRect在Compact Framework的:使圆角矩形的外透明
    4. 引用jmail 实例化时出错!瞧瞧
    5. LINQ到SQL:的OnValidate()和自定义域模型类
    6. 怎么判断两个对象是不是相等
    7. 如何声明,它返回的“东西”的泛型集合的方法(C#)
    8. (1-2/15)^3.5的 3.5次方 怎么写
    9. MVC在c#中取胜。申请表格
    10. 文章沉,关于C# tcp服务器不稳定报错,详细错误信息和图片都有帮助

     
    

    Copyright © 2017 CodeGo.net
    http://codego.net/xinwen/ 足球比分网 足球比分 医药招商网 邵阳县新闻