自然之翼 發表於 2025-12-16 10:21:28

C#运行外部程序的两种方法小结

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>ShellExecute</li><ul class="second_class_ul"><li>调用</li></ul><li>Process</li><ul class="second_class_ul"></ul></ul></div><p class="maodian"></p><h2>ShellExecute</h2>
<div class="jb51code"><pre class="brush:csharp;">using System.Runtime.InteropServices;

public enum ShowWindowCommands : int
{

    SW_HIDE = 0,
    SW_SHOWNORMAL = 1,    //用最近的大小和位置显示,激活
    SW_NORMAL = 1,
    SW_SHOWMINIMIZED = 2,
    SW_SHOWMAXIMIZED = 3,
    SW_MAXIMIZE = 3,
    SW_SHOWNOACTIVATE = 4,
    SW_SHOW = 5,
    SW_MINIMIZE = 6,
    SW_SHOWMINNOACTIVE = 7,
    SW_SHOWNA = 8,
    SW_RESTORE = 9,
    SW_SHOWDEFAULT = 10,
    SW_MAX = 10
}

public static extern IntPtr ShellExecute(
    IntPtr hwnd,
    string lpszOp,
    string lpszFile,
    string lpszParams,
    string lpszDir,
    ShowWindowCommands FsShowCmd
);
</pre></div>
<p class="maodian"></p><h3>调用</h3>
<div class="jb51code"><pre class="brush:csharp;">ShellExecute(IntPtr.Zero, "open", UrlOrPath, null, null, ShowWindowCommands.SW_SHOWNORMAL);
</pre></div>
<p>UrlOrPath可为exe路径或者网页url(使用默认浏览器打开网页url)</p>
<p>使用ie打开网页url</p>
<div class="jb51code"><pre class="brush:csharp;">ShellExecute(NULL, "open", "IEXPLORE", "http://www.csdn.net", NULL, SW_SHOWMAXIMIZED);
</pre></div>
<p class="maodian"></p><h2>Process</h2>
<div class="jb51code"><pre class="brush:csharp;">using System.Diagnostics;

private static string Execute(string exePath, string parameters)
{
    string result = String.Empty;

    using (Process p = new Process())
    {
      p.StartInfo.UseShellExecute = false;
      p.StartInfo.CreateNoWindow = true;
      p.StartInfo.RedirectStandardOutput = true;
      p.StartInfo.FileName = exePath;
      p.StartInfo.Arguments = parameters;
      p.Start();
      p.WaitForExit();

      result = p.StandardOutput.ReadToEnd();
    }

    return result;
}
</pre></div>
<p>到此这篇关于C#运行外部程序的两种方法小结的文章就介绍到这了,更多相关C#运行外部程序内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>C#实现软件监控外部程序运行状态的方法</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: C#运行外部程序的两种方法小结