shellexecute(),?如何让一个c#程序打开另一个程序 在c#中有个需要启动另一个程序, 在程序中给它一个文件的路径名,想知道如何调用该文件的相关打开程序打开它,比如说有个doc文件,就想启动一个word打开它,请高手指点江山 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.Diagnostics.Process.Start()请查阅MSDN这个方法获取更多信息支持 Process.Start("IExplore.exe", "www.northwindtraders.com"); 文件461.doc在F:下System.Diagnostics.Process.Start(@"f:\461.doc"); 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); System.Diagnostics.Process.Start() System.Diagnostics.Process.Start("IEXPLORE.EXE", "http://localhost/" + this.m_ProjectName + "/login.aspx"); //Index.htm 分多的烧的慌:)在msdn中看看 Process.Start("IExplore.exe", "www.northwindtraders.com"); 使用 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); } 是吗? 我以为这是非常复杂的问题啊,,^_^,自己也搜到了,就算闪分好了,, 很少来csdn了, 分到是还很多^_^ System.Diagnostics.Process.Start(@"外部程序"); 用System.Diagnostics.Process.Start(程序名称,参数)如System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn"); 再问个问题,如果系统没有此类型的相关程序可运行,就会抛一个win32Exception, 那我如何知道系统中有没有装某个文件呢, 比如如何判断系统有没有装word 就用process.start(),并制定process的程序路径和启动界面方式等。再用try{}catch{}finally{}一下如果抛出异常就说明没装吧。 借楼主宝地用System.Diagnostics.Process.Start(程序名称,参数)是可以不过如果要需要打开的文件可以有多种程序可以打开,这样怎么选择指定的程序打开哪? System.Diagnostics.Process.Start() System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn");这样就指定了打开程序啦 System.Diagnostics.Process.Start(程序名称,参数)如System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn");直接 System.Diagnostics.Process.Start("http://shop1471977.taobao.com");也行 System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn"); 求助:如何监视集合的修改? 原来一个小小的计算器也可以写出这么脱裤子放屁代码的代码 怎么解决 啊 c# 问题 求CHM格式资料 可访问性不一致的错误,求解。 寻找绿色(Copy至本地硬盘即可用)工具:实现将48*48或32*32的ICO图标文件转为16*16的ICO图标文件!up者有分 菜鸟问题,问题是:在某个条件不成立时,程序不再向下运行,在C#中用什么命令啊。(Delphi中用Exit) 我如此划分实体类和边界类合适么? 有一段WPF程序,想通过winform表现出来,求教 关于自定义控件的几个问题 俺是菜鸟:请各位高手进来帮俺看看! C#中的Get和set?
请查阅MSDN这个方法获取更多信息支持
System.Diagnostics.Process.Start(@"f:\461.doc");
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);
在msdn中看看
此函数打开由参数 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); }
自己也搜到了,就算闪分好了,, 很少来csdn了, 分到是还很多^_^
System.Diagnostics.Process.Start(程序名称,参数)
如System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn");
try
{
}
catch
{
}
finally
{
}
一下如果抛出异常就说明没装吧。
不过如果要需要打开的文件可以有多种程序可以打开,这样怎么选择指定的程序打开哪?
这样就指定了打开程序啦
System.Diagnostics.Process.Start(程序名称,参数)
如System.Diagnostics.Process.Start("IExplore.exe", "www.webmis.com.cn");直接 System.Diagnostics.Process.Start("http://shop1471977.taobao.com");
也行