在c#中有个需要启动另一个程序, 在程序中给它一个文件的路径名,想知道如何调用该文件的相关打开程序打开它,比如说有个doc文件,就想启动一个word打开它,
请高手指点江山

解决方案 »

  1.   

    System.Diagnostics.Process.Start()
    请查阅MSDN这个方法获取更多信息支持
      

  2.   

    Process.Start("IExplore.exe", "www.northwindtraders.com");
      

  3.   

    文件461.doc在F:下
    System.Diagnostics.Process.Start(@"f:\461.doc");
      

  4.   

    System.Diagnostics.Process.Start("notepad.exe","c:\\debug.txt");也可以用vb的shell函數,需要添加对Microsoft VisualBasic.net runtime程序集的引用
    Public Function Shell( _
       ByVal Pathname As String, _ 
       Optional ByVal Style As AppWinStyle = AppWinStyle.MinimizedFocus, _ 
       Optional ByVal Wait As Boolean = False, _ 
       Optional ByVal Timeout As Integer = -1 _
    ) As Integer
    Microsoft.VisualBasic.Interaction.Shell(@"C:\Windows\system32\calc.exe", Microsoft.VisualBasic.AppWinStyle.NormalFocus, false, -1);
      

  5.   

    System.Diagnostics.Process.Start()
      

  6.   

    System.Diagnostics.Process.Start("IEXPLORE.EXE", "http://localhost/" + this.m_ProjectName + "/login.aspx"); //Index.htm
      

  7.   

    分多的烧的慌:)
    在msdn中看看
      

  8.   

    Process.Start("IExplore.exe", "www.northwindtraders.com");
      

  9.   

    使用 ShellExecute 命令 ⑴ 函数原型: HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd); ⑵ 参数: hwnd :指向父窗口的窗口句柄。此窗口接收应用程序产生的任何信息框。 lpOperation :一个空结束的字符串地址,此字符串指定要执行的操作。下面的操作字符串是有效的: "open" 
     此函数打开由参数 lpFile 指定的文件,此文件可以是一个可执行文件或文档文件,也可是一个文件夹。 
     
    "print" 
     此函数打印由参数 lpFile 指定的文件,此文件应是一个文档文件,假如此文件是一个可执行文件,则打开此文件。 
     
    "explore" 
     此函数搜索由参数 lpFile 指定的文件夹,此文件应是一个文档文件, 
     此参数可以为空。这种情况下,函数用于打开由参数 lpFile 指定的文件。 lpFile :一个空结束的字符串地址,此字符串指定要打开或打印的文件或者是要打开或搜索的文件夹。 lpParameters :假如参数 lpFile 指定一个可执行文件, lpParameters 则是一个空结束的字符串地址,此字符串指定要传递给应用程序的参数。假如 lpFile 指定一个文档文件, lpParameters 应为空。 lpDirectory :一个空结束的字符串地址,此字符串指定默认目录。 nShowCmd :假如 lpFile 指定一个可执行文件, nShowCmd 表明应用程序打开时如何显示。假如 lpFile 指定一个文档文件, nShowCmd 应为空。 ⑶ 返回值: 若函数调用成功,则返回值大于 32 ,否则为一个小于等于 32 的错误值。 说明:可以用此函数打开或搜索一个外壳文件夹。打开文件夹可用下面任何一种形式: ShellExecute(handle, NULL, path_to_folder, NULL, NULL, SW_SHOWNORMAL); 
    或 ShellExecute(handle, "open", path_to_folder, NULL, NULL, SW_SHOWNORMAL); 搜索文件夹,可用如下形式 ShellExecute(handle, "explore", path_to_folder, NULL, NULL, SW_SHOWNORMAL); 
    ShellExecute 命令虽已过时但易于得到。该命令向命令解释程序提出打开、浏览或打印文档或文件夹的请求,虽然可以用 ShellExecute 运行程序,但通常只发送文档名,而命令解释程序则决定要运行那个程序。另外在打开目录文件夹时, ShellExecute 命令非常有用。 ⑷ 程序示例 下面通过一个例子来说名 WinExec 和 ShellExecute 的使用。下面程序有控制台程序示例,其使用两种不同的方法,打开文本文件。下面程序使用 WinExec ,并明确指定使用记事本程序。然后,使用 ShellExecute, 打开文本文件。 程序清单 #include <windows.h> #include <iostream.h> void main(int argc,char *argv[]) { cout<<”Opening with WinExec\n”; if (WinExec(“notepad readme.txt”,SH_SHOW)<32) MessagBox(NULL,”Can't WinExec”,NULL,MB_OK); cout<<”Press Enter\n”; MessagBox(NULL,”Press OK to continue”,”Progrm Launched”,MB_OK); cout<<”Opening with ShellExecute\n”; if (ShellExecute (NULL,”open”, ”readme.txt”,NULL,NULL,SW_SHOW)<(HANDLE) 32) MessagBox(NULL,”Can't ShellExecute\n”,NULL,MB_OK); } 
      

  10.   

    是吗?   我以为这是非常复杂的问题啊,,^_^,
    自己也搜到了,就算闪分好了,, 很少来csdn了, 分到是还很多^_^
      

  11.   

    System.Diagnostics.Process.Start(@"外部程序");
      

  12.   


    System.Diagnostics.Process.Start(程序名称,参数)
    如System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn");
      

  13.   

    再问个问题,如果系统没有此类型的相关程序可运行,就会抛一个win32Exception, 那我如何知道系统中有没有装某个文件呢, 比如如何判断系统有没有装word
      

  14.   

    就用process.start(),并制定process的程序路径和启动界面方式等。再用
    try
    {
    }
    catch
    {
    }
    finally
    {
    }
    一下如果抛出异常就说明没装吧。
      

  15.   

    借楼主宝地用System.Diagnostics.Process.Start(程序名称,参数)是可以
    不过如果要需要打开的文件可以有多种程序可以打开,这样怎么选择指定的程序打开哪?
      

  16.   

    System.Diagnostics.Process.Start()
      

  17.   

    System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn");
    这样就指定了打开程序啦
      

  18.   


    System.Diagnostics.Process.Start(程序名称,参数)
    如System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn");直接 System.Diagnostics.Process.Start("http://shop1471977.taobao.com");
    也行
      

  19.   

    System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn");