C# 按process.start()打开特定版本的Flash

C# 按process.start()打开特定版本的Flash,c#,C#,我正在使用以下代码打开flash: private Process flash = new Process(); flash.StartInfo.FileName = ("Flash.exe"); flash.Start(); 目标机器有许多版本的flash,如flash cs5、4、3。我想打开最新版本,或者让用户选择,我如何才能做到这一点?通常来说,所有其他flash安装都位于不同的程序文件夹中,因此您只需确保从正确的文件夹运行flash.exe即可。例如,我当前的安装在这里:C:\Pro

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

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

目标机器有许多版本的flash,如flash cs5、4、3。我想打开最新版本,或者让用户选择,我如何才能做到这一点?

通常来说,所有其他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转换器运行了它,在进行了一些小的语法调整后,它开始工作。现在,它可以输出一个已安装程序的列表及其相应的版本号

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

您只需查询卸载字符串,并获取与Flash.exe位于同一文件夹中的卸载程序IIRC的路径。例如,在GetUninstallKeyPrograms中,在

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

代码段中,您可以尝试获取卸载字符串值以获取路径。希望有帮助

快速问题:您能假设它们都安装在一个公共文件夹中吗?像Adobe/Flash CS3、Adobe/Flash CS4等?导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Pathsshow与Flash有什么关系?那里只有一个Flash.exe吗?不,我不能假设它们都安装在一个公共文件夹中。哼,但在我的机器上,它是Flash.exe,路径是Flash cs5,这是我机器上安装的唯一版本。但在我朋友的电脑上是Flash.exe,路径是flash8,在他的电脑上安装了flash8和flashcs5。当cs5的路径不在应用程序路径中时,它在软件中有一个名为adobe的单独文件夹,其中有cs5和flash 8的路径,但这也不是确定的行为,因为我的另一个朋友在软件中有flash cs5和flash 8,但没有adobe的文件夹名称谢谢您的回复。1我需要查询windows注册表以查找已安装产品的列表。2我需要找出有多少个flash版本3然后最高的版本是什么。[你能给我这个的代码吗]不客气!你最终检测到不同版本的Flash了吗?我得到了所有安装路径和版本的软件列表。现在我想筛选不同的Adobe Flash版本,在那里我需要避免Flash播放器,还需要支持即将发布的版本,包括当前版本。你能给我一些改进的想法吗?嘿我决定以Adobe Flash Professional的名称对其进行筛选,我们只支持Adobe Flash Professional cs5、cs4、cs3,如果将来是cs6: