C#中利用程序打开文件

来源:互联网 发布:linux系统三种网络配置 编辑:程序博客网 时间:2024/06/05 05:02

如何在程序中打开文件(相当于鼠标双击该文件),这里有两种方法:

(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);

 

 

原创粉丝点击