私は、汎用エンジン、いくつかのプログラム固有のコンテンツ、およびコンテンツ内の数ギガバイト相当のメディアの更新を可能な限り効率的に処理するためのカスタム自動アップデーターを含むプログラムに取り組んでいます。エンジンの最近のリリースでは、ディレクトリ構造が再編成され、実行可能ファイルを(たとえば)c:\Program Files\Program\Engine.exe
にインストールする代わりに、現在にインストールc:\Program Files\Program\engine\win32\NewEngine.exe
されています(このプロセスでエンジンの名前も変更されていることに注意してください)。
問題は、プログラムを起動するために、ユーザーがショートカットを使用する必要があることです。ショートカットは、スタートメニューと(オプションで)デスクトップにインストールされます。ただし、更新後のエンジンの移動は、これらのショートカットを壊します。そこで、プログラムを起動するためにユーザーが持っているすべてのショートカットを修正する方法を見つける必要があります。
Unix / Mac OS Xのバックグラウンドから来ているので、私の傾向は、古い実行可能ファイル名から新しい実行可能ファイル名へのシンボリックリンクを作成することです。私の知る限り、Windowsには実際にはシンボリックリンクに相当するものはありません(グーグルから、Vista以降にシンボリックリンクがあることがわかりますが、これはXPで機能する必要があります)。私の仮定は間違っていますか?Windows上で実行可能ファイルへのシンボリックリンクに相当するものはありますか?
頭に浮かぶ他のいくつかの可能な解決策は次のとおりです。
- 古い場所に小さな実行可能ファイルを作成して、新しい場所で実際の実行可能ファイルを起動します。別のプログラムを起動するだけの、シンプルでヘッドレスな実行可能ファイルをすばやく簡単に作成する方法はありますか?繰り返しになりますが、Unixでは、シェルスクリプトを作成するだけですが、私が知る限り、
.bat
ファイル.exe
に名前を付けて実行することはできないため、これは実際にを生成する方法である必要があります.exe
。 - 更新時に、実行可能ファイルを指すすべてのショートカットを検索して編集します。特定の場所を指すシステム上のすべてのショートカットを見つけて更新する(効率的で信頼性の高い)方法はありますか?
- 上記の組み合わせと、ショートカットから起動されていることを検出し、実際のプログラムを起動する前にそのショートカットを編集する小さな実行可能ファイル。プログラムがショートカットから起動されていることを検出して、そのショートカットを編集できるようにする方法はありますか?
これらのオプションのいずれかが機能しますか?もしそうなら、どのように機能しますか?Windowsでこの種のことを行うための最良の方法は何ですか?ショートカットをある場所から別の場所にリダイレクトする他の方法がありませんか?
編集して追加:いくつかの追加要件:
- 私たちのユーザーの多くは非技術的です。ユーザーの介入を必要とするソリューションは問題外です。
- これは可能な限りシームレスである必要があります。ユーザーがショートカットをクリックするたびに余分なウィンドウがポップアップすることは許容できません。
- これは、スタートメニューの再配置や、クイック起動バーへのショートカットの移動など、ユーザーが実行できるほとんどのことに対して堅牢である必要があります。
- 私たちのショートカットは、エンジンがコンテンツをロードするために必要な引数を渡すため、プログラムの機能に絶対に必要です(はい、これは理想的ではありません。これを修正したいのですが、現時点ではできません)
- 比較的迅速で実装が簡単で、非常に信頼性の高いものを探しています。