Windowsのディレクトリから単一の実行可能ファイルを作成しますか?


0

そこには答えがありますが、それは2年前のものであり、その方法に関する情報は提供していません。

状況:実行可能ファイル、いくつかの必要なdll、およびいくつかの画像を含むフォルダーがあります。これらすべてを単一の実行可能ファイルにパッケージ化したい。実行されると、実行可能ファイルが実行されます。

このスーパーユーザーの投稿を見つけました。しかし、それは解決策を提供していないようです。

Pythonに精通している場合、PyInstallerというアプリケーションがあります。Pythonソースコードから単一ファイルの実行可能ファイルを作成します。

正確な内部動作についてはわかりませんが、通常は次のようになります。

  • ディレクトリを実行可能ファイルで新しい実行可能ファイルにラップします、ex app.exe
  • 新しい実行可能ファイルはプログラムを実行します。このプログラムは、隠しディレクトリを一時フォルダー(_MEIxxxxxと呼ばれるフォルダー、xは数字)に解凍します。例えば:C:\Users\Me\AppData\Local\Temp\_MEI188722
  • そのフォルダからプログラムを実行します。

私が読んだものから、彼らはこの作業を行うためにハッカーのダークマジックを使用しています。Python以外のファイルに対してこの種のダークマジックを実行するプログラムがあるかどうか疑問に思っています。


リンクした投稿は、ディレクトリを実行可能ファイルに変換することについて言及していません。彼らはディレクトリをZIPファイルに保存することについて話し、その拡張子を変更してから、新しい拡張子に関連付けられる仮想アプリケーションについて話します。
drk.com.ar

@ drk.com.arつまり、たとえばapp.newextensionは、ユーザーのPCに既にインストールされているアプリケーションに関連付けられ、zip内でプログラムを起動するということですか?自己完結型のアプリケーションを自己完結型の実行可能ファイルにする方法はまったくないようです。また、私は達成したいことについてより明確になるように投稿を書き直しました。
アゼイラ

さて、あなたの質問は異なります。答えを追加します。
drk.com.ar

代わりにMSIファイルを作成することをお勧めします。Windowsはmsiファイルとexeを自動的にインストールします。MSIファイルは他の圧縮ファイル(zipなど)とよく似ていますが、アプリを抽出してインストールするように構成できます。
サイバーナード

回答:


0

Windowsでは、アプリケーションをコンテナー内(zipファイルなど)からネイティブに起動することはできません。これが、PyInstallerが実際のアプリケーションを実行するための一時ディレクトリに展開する理由です。

ZIPや7Zipなどのコンプレッサーを使用すると、自己解凍形式の実行可能ファイルを作成できます。これは、通常の圧縮ファイルと、解凍に必要な実行可能コードです。単一のファイルにまとめられています。7zipには、インストーラー用の自己解凍アーカイブを作成するオプションがあります。とにかく、このオプションを使用してインストーラーの代わりに標準プログラムを実行できます:http : //7zip.bugaco.com/7zip/MANUAL/switches/sfx.htm

抽出後に任意のファイルを実行するように構成できます。プロンプトを削除できるかどうかはわかりません。


7zipまたはizarcには、ファイルを抽出した後にexeを自動的に実行するオプションがあります。完了してもファイルは削除されません。したがって、せいぜいtmpフォルダーに多数のファイルを残し、最悪の場合、ユーザーがアプリとファイルを見つけて、それをいじることができるようにするだけです。
ケンドリック

私が渡したリンクによると、7Zipは実行後に一時フォルダーを削除します。
drk.com.ar

プログラムが現在ファイルのロックを実行している場合ではありません。私たちのラッパーにsfxとauto deleteを数年使用してみましたが、ファイルを適切に削除することはありませんでした。バッチファイルを作成して、ユーザーに知らせたくないファイルを削除しました。彼らがそれで良くなったなら、私は今すべてのものにnsisを使っているので、私は言うことができません。
ケンドリック

「Windowsでは、コンテナ内からアプリケーションを起動することはできません」-これは誤りです。許可とは関係がなく、プログラムは解凍されるまで実行可能コードではありません。
ケルタリ

0

nsis http://en.wikipedia.org/wiki/Nullsoft_Scriptable_Install_Systemは私が見た中で最高のオプションです。ユーザーが自分のPCなどを修復するために使用するファイルをいじりたくない作業アプリのラッパーをいくつか作成しました。今週、corpプロキシを使用してmsert / mcafee stinger / mcafeeルートキットを自動ダウンロードするウイルススキャナーフロントエンドを構築しました。技術用の3つのアプリすべてを実行します。

あなたは標準テンプレート/例であなたの質問をすることができます、メインセクションでout dir [$ OUTDIR%temp%_MEI188722]を設定し、プログラムが必要とする元のディレクトリの各ファイルに[file yourapp.exe]行を追加します。次に、execwait行を使用して、問題のアプリケーションを実行します。20msスリープするコマンド。その後、%temp%_MEI188722を削除して、使用されていないファイルが削除されるようにします。

インストーラーをサイレントモードに設定すると、標準のインストーラーダイアログボックスが表示されなくなり、アプリはすぐに読み込まれます。または、ユーザーが最初にオプションを選択する必要がある場合や、何らかのエラーが発生した場合にアプリがメッセージを返すようにする場合は、カスタムダイアログページを作成できます。チュートリアルとコミュニティは非常に活発であり、完全に役立つため、nsisがどのように機能するかに慣れると、それは簡単になります。 http://hmne.sourceforge.net/ これは、exeを作成できるようにスクリプトファイルをより簡単に編集できる便利なプログラムです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.