次のコードを使用してフラッシュを開きます。
private Process flash = new Process();
flash.StartInfo.FileName = ("Flash.exe");
flash.Start();
ターゲット マシンには、フラッシュ cs5、4、3 のような多くのバージョンのフラッシュがあります。最新バージョンを開くか、ユーザーに選択させたいのですが、どうすればそれを行うことができますか?
次のコードを使用してフラッシュを開きます。
private Process flash = new Process();
flash.StartInfo.FileName = ("Flash.exe");
flash.Start();
ターゲット マシンには、フラッシュ cs5、4、3 のような多くのバージョンのフラッシュがあります。最新バージョンを開くか、ユーザーに選択させたいのですが、どうすればそれを行うことができますか?
通常、他のすべてのフラッシュインストールは異なるプログラムフォルダにあるため、正しいフォルダからFlash.exeを実行していることを確認する必要があります。たとえば、私の現在のインストールはここにありますC:\Program Files (x86)\Adobe\Adobe Flash CS5\Flash.exe
が、別のインストールはC:\ Program Files(x86)\ Adobe \ Adobe Flash CS4\Flash.exe`にある可能性があります。
注意すべき重要な点は、ユーザーがデフォルトのディレクトリにflashCS*をインストールしたとは想定できないことです。インストールされている製品のリストを見つけるには、常にWindowsレジストリを照会する必要があります。
また、別の注意点として、文字列リテラルを括弧で囲む必要はありません。だからあなたはただ書くことができます:
string foo = "Hello!";
それ以外の
string foo = ("Hello!");
ねえ、私はここのフォーラムスレッドで扱われている同様の問題を見つけました!コードサンプルをダウンロードして、vb.net-> C#コンバーター(このようなもの)で実行し、構文を少し調整しただけで動作するようになりました。これで、インストールされているプログラムのリストを適切なバージョン番号とともに出力できるようになりました。
プログラムを取得するメソッドがたくさんあります。たとえば、特定のユーザーです。これらはすべて共通のリストに入れられ、ユーザーに返されます。さて、これは完璧に見えますが、ただ1つの欠陥があります-利用できるパスはありません...これまでのところ!
UninstallStringを照会するだけで、アンインストーラー(Flash.exeと同じフォルダーにあるIIRC)へのパスを取得できます。たとえば、GetUninstallKeyProgramsでは、
try
{
IsSystemComponent = Convert.ToInt32(CurrentSubKey.GetValue("SystemComponent", 0));
}
スニペットでは、パスを取得するためにUninstallString値の取得を試みることができます。それが役に立てば幸い!