通过process.start()打开特定版本的Flash

时间:2012-06-22 10:16:50

标签: c#

我使用以下代码打开flash:

private Process flash = new Process();
flash.StartInfo.FileName = ("Flash.exe");
flash.Start();

目标机器有许多版本的闪存,如闪存cs5,4,3。我想打开最新版本或让用户选择,我怎么可能这样做?

1 个答案:

答案 0 :(得分:0)

通常来说,所有其他Flash安装都位于不同的程序文件夹中,因此您只需要确保从正确的文件夹运行Flash.exe。例如,我当前的安装位于:C:\Program Files (x86)\Adobe\Adobe Flash CS5\Flash.exe,但另一个安装很可能位于C:\ Program Files(x86)\ Adob​​e \ Adob​​e Flash CS4 \ Flash.exe`中。

需要注意的一点是,您不能假设用户在其默认目录中安装了Flash CS * !您应始终查询Windows注册表以查找已安装产品的列表。

另外,另一个通知是你不需要围绕字符串文字的括号。所以你可以写:

string foo = "Hello!";

而不是

string foo = ("Hello!");

编辑1:

嘿,我发现在forum thread here处理了类似的问题!我下载了代码示例并通过vb.net运行 - > C#转换器(like this one)并在经过一些小的语法调整后使其工作。现在,它能够输出已安装程序的列表及其相应的版本号。

会有很多方法可以让程序形成例如某些用户。然后将所有这些放在一个公共列表中,返回给用户。现在,这看起来很完美,但只有一个缺陷 - 到目前为止还没有可用的路径!

您可以只查询UninstallString,并获取卸载程序的路径(与Flash.exe位于同一文件夹中的IIRC)。例如,在GetUninstallKeyPrograms中,在

之后
try
{
    IsSystemComponent = Convert.ToInt32(CurrentSubKey.GetValue("SystemComponent", 0));
}

片段,您可以尝试获取UninstallString值以获取路径。希望它有所帮助!