如何在程序中打开文件(相当于鼠标双击该文件),这里有两种方法:
(1)使用进程打开文件,使用方法如下:
string fileName = ....; //文件绝对路径
使用Process类的静态方法
System.Diagnostics.Process.Start(filename);
或实例方法
System.Diagnostics.Process pro = new System.Diagnostics.Process();
pro.EnableRaisingEvents = false;
pro.StartInfo.FileName = "rundll32.exe";
pro.StartInfo.Arguments = "shell32,OpenAs_RunDLL" + filename;
pro.Start();
(2)调用API(只能打开.exe可执行文件),方法如下:
首先要引进System.Runtime.InteropServices命名空间:using System.Runtime.InteropServices;
class ProcessExe {
[DllImport("kernel32.dll", EntryPoint = "WinExec")]
public static extern int WinExec(string processPath, int nCmdShow);
}
参数说明:processPath:文件路径,nCmdShow:定义了以怎样的形式启动程序的常数值
nCmdShow数值说明:
#define SW_HIDE 0 //隐藏窗口,活动状态给令一个窗口
#define SW_SHOWNORMAL 1 //用原来的大小和位置显示一个窗口,同时令其进入活动状态
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4 //用最近的大小和位置显示一个窗口,同时不改变活动窗口
#define SW_SHOW 5 //用当前的大小和位置显示一个窗口,同时令其进入活动状态
#define SW_MINIMIZE 6 //最小化窗口,活动状态给令一个窗口
#define SW_SHOWMINNOACTIVE 7 //最小化一个窗口,同时不改变活动窗口
#define SW_SHOWNA 8 //用当前的大小和位置显示一个窗口,不改变活动窗口
#define SW_RESTORE 9 //与 SW_SHOWNORMAL 1 相同
#define SW_SHOWDEFAULT 10
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11
调用: ProcessExe.WinExec(filename, 1);