1

次のコードを使用してフラッシュを開きます。

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

ターゲット マシンには、フラッシュ cs5、4、3 のような多くのバージョンのフラッシュがあります。最新バージョンを開くか、ユーザーに選択させたいのですが、どうすればそれを行うことができますか?

4

1 に答える 1

0

通常、他のすべてのフラッシュインストールは異なるプログラムフォルダにあるため、正しいフォルダからFlash.exeを実行していることを確認する必要があります。たとえば、私の現在のインストールはここにありますC:\Program Files (x86)\Adobe\Adobe Flash CS5\Flash.exeが、別のインストールはC:\ Program Files(x86)\ Adob​​e \ Adob​​e Flash CS4\Flash.exe`にある可能性があります。

注意すべき重要な点は、ユーザーがデフォルトのディレクトリにflashCS*をインストールしたとは想定できないことです。インストールされている製品のリストを見つけるには、常にWindowsレジストリを照会する必要があります。

また、別の注意点として、文字列リテラルを括弧で囲む必要はありません。だからあなたはただ書くことができます:

string foo = "Hello!";

それ以外の

string foo = ("Hello!");

編集1:

ねえ、私はここのフォーラムスレッドで扱われている同様の問題を見つけました!コードサンプルをダウンロードして、vb.net-> C#コンバーター(このようなもの)で実行し、構文を少し調整しただけで動作するようになりました。これで、インストールされているプログラムのリストを適切なバージョン番号とともに出力できるようになりました。

プログラムを取得するメソッドがたくさんあります。たとえば、特定のユーザーです。これらはすべて共通のリストに入れられ、ユーザーに返されます。さて、これは完璧に見えますが、ただ1つの欠陥があります-利用できるパスはありません...これまでのところ!

UninstallStringを照会するだけで、アンインストーラー(Flash.exeと同じフォルダーにあるIIRC)へのパスを取得できます。たとえば、GetUninstallKeyProgramsでは、

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

スニペットでは、パスを取得するためにUninstallString値の取得を試みることができます。それが役に立てば幸い!

于 2012-06-22T13:57:17.620 に答える