2007年8月23日星期四

巧用Start.exe 来打开各种类型的文件

上次介绍了用Runtime.getRuntime().exec(new String[] {"cmd.exe", "/C", filePath });就可以在java中打开相应的文件,其实cmd.exe 还可以打开链接等等,例如我们可以指定用那一个浏览器来打开链接。
用firefox 打开google 网站: Cmd /c Firefox www.google.ca
用IE 打开google 网站: Cmd /c iexplore www.google.ca

如果我们用 cmd.exe /C Start www.google.ca 他就会在默认的浏览器中打开google的网页。 其中的奥妙在那里呢?

实际上 Start 是一个执行程序Star t.exe. 他其实根本不知道应该调用那个程序去打开链接,他只是一个ShellExcute 的一个外包装程序。他啥也不会干, 只会把跟着的字符串传递给ShellExcute去执行。

那ShellExcute 怎么会知道那一个程序和Url相关联呢。 其实他是到注册表里面查找对应的类型和文件拓展名。那么我们如何查看这些关联呢,打开任何一个文件夹, 选择菜单的Tools-Folder Options - File Types。 就可以看到所有的文件类型以及相关联的程序了。

我们也可以编辑和添加文件关联。 有些程序,如WinZip等,在安装是会问我们要和那些文件类型关联, 然后她就会帮我们建立这里关联。

除了文件关联外,我们还可以利用DDE来打开文件。 我们平时用的文件拷贝和粘贴就是用到了DDE。

在这里只是简单介绍一下。 详细内容请点击下面链接。

点击这里,详细介绍ShellExecute 的功能和用法。

点击这里, 详细介绍 File Associations 的原理

点击这里,有关DDE的介绍。

没有评论: