查看: 90|回复: 0

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

[复制链接]

0

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-5-3
发表于 2025-12-16 10:21:28 | 显示全部楼层 |阅读模式

ShellExecute

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
}
[DllImport("shell32.dll")]
public static extern IntPtr ShellExecute(
    IntPtr hwnd,
    string lpszOp,
    string lpszFile,
    string lpszParams,
    string lpszDir,
    ShowWindowCommands FsShowCmd
);

调用

ShellExecute(IntPtr.Zero, "open", UrlOrPath, null, null, ShowWindowCommands.SW_SHOWNORMAL);

UrlOrPath可为exe路径或者网页url(使用默认浏览器打开网页url)

使用ie打开网页url

ShellExecute(NULL, "open", "IEXPLORE", "http://www.csdn.net", NULL, SW_SHOWMAXIMIZED);

Process

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;
}

到此这篇关于C#运行外部程序的两种方法小结的文章就介绍到这了,更多相关C#运行外部程序内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!

您可能感兴趣的文章:
  • C#实现软件监控外部程序运行状态的方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部