1

我正在使用以下代码打开 Flash:

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

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

4

1 回答 1

0

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

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

此外,另一个注意事项是您不需要围绕字符串文字的括号。所以你可以写:

string foo = "Hello!";

代替

string foo = ("Hello!");

编辑1:

嘿,我在这里的论坛帖子中发现了类似的问题!我下载了代码示例并通过 vb.net -> C# 转换器(就像这个)运行它,并在一些小的语法调整后让它工作。现在它能够输出已安装程序的列表及其适当的版本号。

会有很多方法可以从某些用户那里获取程序。然后将所有这些都放在一个通用列表中,返回给用户。现在,这看起来很完美,但只有一个缺陷 - 没有可用的路径......到目前为止!

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

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

片段,您可以尝试获取 UninstallString 值以获取路径。希望能帮助到你!

于 2012-06-22T13:57:17.620 回答