c#中使用ShellExecute
API手册:http://www.office-cn.net/t/api/api_content.htm
WinApi 中 ShellExecute 的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。函数如下:
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。
API
/// <summary>
/// ShellExecute
/// </summary>
/// <param name="hwnd">指定父窗口句柄:ntPtr.Zero</param>
/// <param name="lpszOp">指定要进行的操作:Open</param>
/// <param name="lpszFile">指定要打开的文件名|路径</param>
/// <param name="lpszParams">指定命令行参数: 0 | ""</param>
/// <param name="lpszDir">用于指定默认目录:0 | ""</param>
/// <param name="FsShowCmd">显示模式: 0:隐藏 1~11</param>
/// <returns></returns>
[DllImport("shell32.dll")]
private static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd);
函数使用
/// <summary>
/// 打开程序/文件夹
/// </summary>
/// <param name="path">路径</param>
/// <param name="FsShow">显示模式 默认1</param>
public static void OpenFile(string path, int FsShow = 1)
{
ShellExecute(IntPtr.Zero, new StringBuilder("Open"), new StringBuilder(@path), new StringBuilder(""), new StringBuilder(""), FsShow);
}