3

Google の Chrome ブラウザーには、Windows での非常に洗練された更新システムがあります。管理者特権は必要なく、ユーザーの操作を必要とせずにその場で更新されます。

これに似たものを作成しようとしていますが、その方法についてアドバイスをいただければ幸いです。

彼らのトリックの最初の部分は、Program Filesほとんどの Windows プログラムのように にインストールするのではなく、 にインストールすることC:\Users\USER_NAME\AppData\Local\Google\Chrome\Applicationです。これにより、プログラム ファイルが管理者権限なしで自分自身を変更できるようになります。

そのディレクトリの中を見ると、 a だけでchrome.exeなくold_chrome.exe. オンラインで検索したところ、更新がうまくいかなかった場合に備えて、chrome 自体が old_chrome としてバックアップされていることがわかりました。それでも何かを実行できます。

これを行う方法は、インストール パッケージの一部として提供されるヘルパー アプリケーションを作成し、そのアプリケーションに実行を移し (これは何とか実行可能だと思います)、そのヘルパー アプリケーションはファイルの名前変更を行い、chrome.exe完了時に再起動しますか? (もしそうなら、おそらくこのヘルパーアプリケーションはchrome.exe起動時に順番に削除され、なぜ私はそれが座っているのを見ないのかを説明しています.) 単純にchrome.exe自分自身の名前を変更しold_chrome.exeてコピーし、新しいものを起動する方法chrome.exeはありませんか?

これがこのようなものを機能させるための最良の方法である場合、これを行うための事前に構築されたソリューションはありますか?自分?

または、より良い方法がある場合、それは何ですか? (価値のあることとして、Chrome のアプローチは、サービスを使用する Mozilla の新しいアプローチよりもはるかにエレガントで簡単です)

4

1 に答える 1

1

さて、これが機能しました。これがどのように機能するかです。

ヘルパー アプリケーションは必要ありません。少なくとも Windows では、プログラムの名前をその場で変更できますが、削除することはできません。したがって、アップデータ ルーチンをプログラムに追加すると、新しいファイルがダウンロードされます。ダウンロードが完了すると、古い実行可能ファイルの名前が変更され、新しい実行可能ファイルがその場所に移動されます。

次に、古い実行可能プロセス内から新しい実行可能ファイルを実行し、古い実行可能ファイルを終了するだけです。

ほら、新しいバージョンから古いバージョンへのエスカレーションなしのスワップ。

于 2012-04-28T08:07:07.587 に答える