テキストファイルやCSVファイルを、EXEの中に埋め込むことって
出来るでしょうか。普通にソースファイルに追加すると、
プログラムとして認識され、エラーが出てしまいました。
ファイルの埋め込み
Re: ファイルの埋め込み
割り込みすいません
> テキストファイルやCSVファイルを、EXEの中に埋め込むことって
> 出来るでしょうか。普通にソースファイルに追加すると、
> プログラムとして認識され、エラーが出てしまいました。
これって・・・EXEファイルであれば埋め込む事は可能って事なんでしょうか???
そうであれば是非どうやるのか教えて貰えませんか?
出来たら、埋め込んだEXEの実行方法も。
> テキストファイルやCSVファイルを、EXEの中に埋め込むことって
> 出来るでしょうか。普通にソースファイルに追加すると、
> プログラムとして認識され、エラーが出てしまいました。
これって・・・EXEファイルであれば埋め込む事は可能って事なんでしょうか???
そうであれば是非どうやるのか教えて貰えませんか?
出来たら、埋め込んだEXEの実行方法も。
Re: ファイルの埋め込み
> これって・・・EXEファイルであれば埋め込む事は可能って事なんでしょうか???
実行ファイルに実行ファイルを埋め込む事も可能ですね。
> そうであれば是非どうやるのか教えて貰えませんか?
さっきはResHackerって書いてしまったんですけど、Resource Hackerというソフトを使ってリソースを追加します。
「アクション」→「新しいリソースを追加する」って感じになります。
> 出来たら、埋め込んだEXEの実行方法も。
実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。
とりあえず文字列リソースを読み込む方法はLoadString()関数を使うらしいってことまでは分かったんですけど、リソースから文字列を取得できないんですよねぇ。
エラーメッセージは「指定されたリソースの種類がイメージ ファイルに見つかりません。」なんですけど、解決策を思い付きません。
上瞼と下瞼が仲良くしたがってるので寝ます...。
実行ファイルに実行ファイルを埋め込む事も可能ですね。
> そうであれば是非どうやるのか教えて貰えませんか?
さっきはResHackerって書いてしまったんですけど、Resource Hackerというソフトを使ってリソースを追加します。
「アクション」→「新しいリソースを追加する」って感じになります。
> 出来たら、埋め込んだEXEの実行方法も。
実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。
とりあえず文字列リソースを読み込む方法はLoadString()関数を使うらしいってことまでは分かったんですけど、リソースから文字列を取得できないんですよねぇ。
エラーメッセージは「指定されたリソースの種類がイメージ ファイルに見つかりません。」なんですけど、解決策を思い付きません。
コード: 全て選択
Declare Function LoadString Lib "user32" Alias "LoadStringA" (
ByVal hInstance As HINSTANCE,
ByVal uID As DWord,
ByVal lpBuffer As BytePtr,
ByVal nBufferMax As Long) As Long
Re: ファイルの埋め込み
> 実行ファイルに実行ファイルを埋め込む事も可能ですね。
おっ!!
> さっきはResHackerって書いてしまったんですけど、Resource Hackerというソフトを使ってリソースを追加します。
> 「アクション」→「新しいリソースを追加する」って感じになります。
おおおっ!!
> > 出来たら、埋め込んだEXEの実行方法も。
> 実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。
・・・・バタッ って感じですね(笑)
やっぱり、無理なんですかね?
独り言
EXEからAB(ソース)に変換するプログラムって誰か作ってくれないかなぁ~ ぼそっ
おっ!!
> さっきはResHackerって書いてしまったんですけど、Resource Hackerというソフトを使ってリソースを追加します。
> 「アクション」→「新しいリソースを追加する」って感じになります。
おおおっ!!
> > 出来たら、埋め込んだEXEの実行方法も。
> 実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。
・・・・バタッ って感じですね(笑)
やっぱり、無理なんですかね?
独り言
EXEからAB(ソース)に変換するプログラムって誰か作ってくれないかなぁ~ ぼそっ
Re: ファイルの埋め込み
> > > 出来たら、埋め込んだEXEの実行方法も。
> > 実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。
> ・・・・バタッ って感じですね(笑)
> やっぱり、無理なんですかね?
おもしろそうなので試してみたらうまくいきました。
まずは
http://angusj.com/resourcehacker/
ここのページの下のほうにあるJapaneseからResourceHackerをGetする。
でもって、新規のabpファイルに
ResourceHackerから作成した実行ファイルを読み込む。
アクション->新しいリソースを追加する "リソースを含むファイルを開く" を選択し、
追加したいファイルを選択。
リソースの種類に数字の10、リソース名に数字の1(この辺はそれぞれ適当に)
を入力しリソースを追加する。
追加したら保存をして実行ファイルを実行するだけ。
上記のコードを変更しないで実行すると"Resource.test"というファイルが作成されます。
実行ファイルをリソースに入れたのであれば****.exeにResourceFileNameを
変更して、Execを呼び出すなりするだけでインストーラ的なものが作れます。
こんな感じでどうですか?
> > 実行ファイルに実行ファイルを埋め込むことはできるんですけど、埋め込んだ実行ファイルの実行方法は分かりません...。
> ・・・・バタッ って感じですね(笑)
> やっぱり、無理なんですかね?
おもしろそうなので試してみたらうまくいきました。
まずは
http://angusj.com/resourcehacker/
ここのページの下のほうにあるJapaneseからResourceHackerをGetする。
でもって、新規のabpファイルに
[ここをクリックすると内容が表示されます]
上記コードをコピペ後、リリースコンパイルで実行ファイル作成。コード: 全て選択
#STRICT
Declare Function FindResource Lib "kernel32" Alias "FindResourceA" (hModule As HANDLE,lpName As BytePtr,lpType As BytePtr) As HANDLE
Declare Function LoadResource Lib "kernel32" (hModule As HANDLE,hResInfo As HANDLE) As HGLOBAL
Declare Function LockResource Lib "kernel32" (hResData As HGLOBAL) As VoidPtr
Const RT_RCDATA=10 'ユーザ定義のリソース
Const IDR_TEST=1 'リソースID 適当に変更してください
'↓##### リソース確認用 #####↓
Const RESOURCE_SIZE=558 '追加するリソースのサイズファイルに書き出さなければ必要なし
Const ResourceFileName="Resource.test"'書き出すファイル名
'↑##### リソース確認用 #####↑
Dim hRes As HANDLE
Dim hGlobal As HGLOBAL
Dim pRes As VoidPtr
Dim hFile As HANDLE
Dim Written As DWord
'リソース検索
hRes=FindResource(0,IDR_TEST As BytePtr,RT_RCDATA As BytePtr)
'リソース読み込み
hGlobal=LoadResource(0,hRes)
'リソースのアドレス取得
pRes=LockResource(hGlobal)
'以後pResのアドレスにアクセスすることで使用できます
'使用後の開放も必要なし
'↓##### リソース確認用 #####↓
hFile=CreateFile(ResourceFileName,GENERIC_WRITE,0,ByVal 0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0)
WriteFile(hFile,pRes,RESOURCE_SIZE,VarPtr(Written),ByVal 0)
SetEndOfFile(hFile)
CloseHandle(hFile)
'↑##### リソース確認用 #####↑
End
ResourceHackerから作成した実行ファイルを読み込む。
アクション->新しいリソースを追加する "リソースを含むファイルを開く" を選択し、
追加したいファイルを選択。
リソースの種類に数字の10、リソース名に数字の1(この辺はそれぞれ適当に)
を入力しリソースを追加する。
追加したら保存をして実行ファイルを実行するだけ。
上記のコードを変更しないで実行すると"Resource.test"というファイルが作成されます。
実行ファイルをリソースに入れたのであれば****.exeにResourceFileNameを
変更して、Execを呼び出すなりするだけでインストーラ的なものが作れます。
こんな感じでどうですか?