VerQueryValueで受け取るバージョンのExeファイルの情報。このような情報を登録(設定または変更)できる逆関数(WinApiまたはDelphi)がありますか? ここでは、例えば、そうすることができるプログラムがあります。どのように動作するのですか(http://www.angusj.com/resourcehacker)?EXEのバージョン情報を設定する
答えて
バージョン情報はリソースを介して保存されます。そのリソースを編集するだけで編集できるようになります。ここには、既存のファイルバージョン情報を複製して別のファイルに添付できるユニットがあります。それは(それが私の友人で符号化し、公共利用できるです)あなたはこのコードから始まるやりたいことは非常に簡単です:
unit cloneinfo;
interface
uses Windows, SysUtils;
type
LANGANDCODEPAGE = record
wLanguage: Word;
wCodePage: Word;
end;
procedure clone(sFile,output:string);
implementation
procedure clone(sFile,output:string);
var
dwHandle, cbTranslate: cardinal;
sizeVers: DWord;
lpData, langData: Pointer;
lpTranslate: ^LANGANDCODEPAGE;
hRes : THandle;
begin
sizeVers := GetFileVersionInfoSize(PChar(sFile), dwHandle);
If sizeVers = 0 then
exit;
GetMem(lpData, sizeVers);
try
ZeroMemory(lpData, sizeVers);
GetFileVersionInfo (PChar(sFile), 0, sizeVers, lpData);
If not VerQueryValue (lpData, '\VarFileInfo\Translation', langData, cbTranslate) then
exit;
hRes := BeginUpdateResource(pchar(output), FALSE);
//For i := 0 to (cbTranslate div sizeof(LANGANDCODEPAGE)) do
//begin
lpTranslate := Pointer(Integer(langData) + sizeof(LANGANDCODEPAGE));
UpdateResource(hRes, RT_VERSION, MAKEINTRESOURCE(VS_VERSION_INFO), lpTranslate^.wLanguage,lpData, sizeVers);
//end;
EndUpdateResource(hRes, FALSE);
finally
FreeMem(lpData);
end;
end;
end.
これは単なる言語とコードページの情報です。 [VS_FIXEDFILEINFO](http://msdn.microsoft.com/en-us/library/ms646997%28v=VS.85%29.aspx)はどうですか? +1とにかく – TLama
ありがとう、今私は研究に従事する... –
これはあなたがインターネットで見つけたユニットであれば、ライセンスにもっと注意する必要があります。少なくとも、ソースへのリンクを提供する必要があります。 (さらに、http://en.wikipedia.org/wiki/Run-on_sentenceを見てください) –
- 1. バージョン情報.EXE with gcc and windres
- 2. 設定情報ボタンをアプリ情報画面に追加する
- 3. DBの設定情報?
- 4. ファイル情報を設定する方法
- 5. NSURLRequest、NSURLConnectionバージョン情報
- 6. Intellij IDEAバージョン情報
- 7. mavenビルド - バージョン情報
- 8. Visual Studio - .EXEコンソールアプリケーションのバージョン番号を設定する
- 9. Xserverモジュールのバージョン情報
- 10. Delphi 2007のバージョン情報がExeから見つかりません
- 11. プロジェクト情報からNugetパッケージのバージョンを設定してください
- 12. ymlのアプリケーション情報の設定
- 13. nginxの設定ファイルの情報なし
- 14. Blackberry - デバイスSDKバージョン情報
- 15. Java - 階層を持つ設定/情報
- 16. tkinterアクセスボタンの設定情報
- 17. 都市/州情報の書式設定
- 18. AWS資格情報の設定 - Clouderaクイックスタートドッカーコンテナ
- 19. バージョン情報を置き換える(C#)
- 20. Androidのバージョン情報を取得
- 21. メトロアプリケーションのバージョン情報をプログラムで
- 22. プロジェクトのバージョン情報を表示
- 23. ハッシュ/暗号化設定ファイル情報
- 24. CNMutableContactの `thumbnailImageData`のクロップ情報を設定する方法
- 25. 位置情報サービスのメッセージを設定するiOSのシステムポップアップ
- 26. 単純なWebRequestのネットワーク資格情報を設定する
- 27. ページタイトル、メタ情報をasp.netのビューで設定するmvc 4
- 28. Windowsフォームアプリケーションのカルチャ情報を設定する
- 29. GoogleAppディレクトリAPIでプロキシの資格情報を設定する
- 30. Ember Jsのカスタムセッション。セッション情報を設定/アクセスする方法
これは、[バージョンリソース](http://msdn.microsoftによって決定されます。 com/ja-jp/library/aa381058(VS.85).aspx)。 ['UpdateResource'](http://msdn.microsoft.com/en-us/library/ms648049(VS.85).aspx)を使用して変更してください。 –
バージョン情報を設定するソースを持つプログラムへのリンクです。 Delphi 2009以降は互換性があります。 [更新されたsetversion-file-version-in-res-or-exe](http://www.jasontpenny.com/blog/2009/09/05/updated-setversion-exe-to-set- to-set-file-version-in-res-or-exe /) –