2

さて、他のアプリケーションを起動するアプリケーションを作りたいと思います。ただし、ここでの目標は、USBドライブから同じアプリケーションを使用しながら、あるWindowsデスクトップから別のWindowsデスクトップに移動できるという点で、アプリを「ポータブル」にすることです。だからここに私が意味するものの別の要約があります:

私はアプリケーションXを持っています。私はそれをマシン1で使用し、マシン2で使用したいと思います。しかし、マシン2は私の相棒であり、彼は私に物をインストールすることを望んでいません。そこで、インストーラーがシステム上で作成したすべてのファイルを取得して、フォルダーに入れます。App Xは、起動時に予期するWindowsフォルダーにファイルを配置します。アプリを実行しただけでWindowsディレクトリを検索すると、ファイルが見つかりません。Windowsディレクトリにファイルを配置する機能がありません/必要です。通常の場所ではなく、フォルダーaでフォルダーbのファイルを探すようにアプリに指示したいと思います。そうすれば、マシンを変更することなく、このプログラムを任意のマシンで使用できます。

これは実行可能ですか?もしそうなら、私はそれを調べることができるようにそれは何と呼ばれていますか?

編集:windirは例でした。アプリをサムドライブのフォルダーに自己完結させたいのですが。アプリがファイルを検索する場所を、指定したフォルダーにリダイレクトしたいと思います。

4

2 に答える 2

3

これは可能ですが、どれだけ簡単に起動するプログラムに完全に依存します。

アプリケーションが行うことの種類は次のとおりです。

  • どこでも(依存関係なしで)実行されて幸せに実行するだけです。これらはとても簡単です!

  • いくつかの環境変数を設定する必要があります。これは簡単に実行できます。必要に応じて、変更された環境で新しいプロセスを起動できます。

  • ディスクからファイルを読み取ります。通常、.dllなどをロードする場合、アプリケーションはPATHでdllを検索するため、それらをアプリケーションフォルダー(.exeの隣)にコピーして、どのシステムでも正常に実行できます。ただし、場合によっては、アプリケーションが固定(または少なくとも柔軟性の低い)パスを使用するため、正常に起動するのが難しくなります。

  • レジストリ設定を読み取ります。これは注意が必要です。アプリケーションに必要な状態を把握し、ランチャーに古いレジストリの状態を記録させ、それを変更してアプリケーションを実行し、アプリケーションの終了を待って元の状態に戻す必要があります。これは、ユーザーのレジストリの破損を防ぐために防弾でなければなりません。

最終的には、起動するアプリごとに、実行する必要があるものだけを調査する必要があります。

アプリが商用の場合は、この方法で実行することにより、ライセンス(EULA)条項に違反しないように注意してください。

もう1つの方法は、仮想PCイメージをセットアップし、それをホストPCで実行するだけなので、各アプリケーションの特別なケースについて心配する必要はありません。使用可能なVPCソフトウェアによっては、仮想PCセッションを実行できるようにするために、ホストPCにソフトウェアをインストールする必要がある場合があります。これにより、目的/意図が損なわれる可能性があります。

于 2009-08-29T20:32:21.187 に答える
1

あなたが説明しているシステムはU3だと思います(詳細はhttp://en.wikipedia.org/wiki/U3を参照)。アプリケーションはU3プロトコルに従う必要がありますが、アプリケーションが従う場合は、ホストマシンにインストールまたは管理者権限を必要とせずに、U3フラッシュドライブから実行できます。

これは独自のテクノロジーであり、私が見た数社のベンダーによってのみサポートされています。

移植性とパワーが本当に必要な場合は、VMWare Playerを検討し、必要に応じてカスタマイズされたマシン全体をフラッシュドライブに搭載してください。もちろん、あなたの友人はおそらくあなたにVMWarePlayerのインストールを許可しなければならないでしょう。

于 2009-08-29T20:34:18.500 に答える