2

単一ページの autorun.inf ファイルの作成に成功した人はいますか? *.inf ファイルのドキュメントでは、

[autorun] 
open="MyApp.exe"
icon=MyApp.exe,0
label=%AppLabel%
action=%AppAction%
[Strings]
AppLabel = "My test app"
AppAction = "Start my test app"
[Strings.0407]  ; 0407 is the language ID for German
AppLabel = "German my test app"
AppAction = "German start my test app"

動作するはずです。ラベル (Autorun ダイアログに表示される) に、予想される「My test app」ではなく「%AppLabel%」が表示されていることがわかりました。

4

1 に答える 1

2

コメントでカサブランカによってリンクされたドキュメントは、これをどのように行う必要があるかを示していますが、回り道しています。

答えは「間接文字列」にあります。複数の文字列リソースを EXE または DLL ファイルに追加する必要があります。すべて同じ ID ですが、異なる言語が (LANGUAGEステートメントによって)指定されています。その後autorun.inf、間接的な文字列構文によってファイル内のこれらの文字列を参照できます。@filename,-id

間接文字列の構文は、@記号の後に、参照する文字列リソースを含むファイルの名前が続き、その後にコンマ、マイナス、参照する文字列 ID が続きます。

例:

[autorun]
open="MyApp.exe"
icon=MyApp.exe,0
label=@MyApp.exe,-100
action=@MyApp.exe,-101

これには、すべてのローカライズされた文字列を含む文字列テーブル リソースが EXE に必要です。RC ファイル形式では次のようになります。

#include <winresrc.h>

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
    100 "English MyApp
    101 "English MyApp description text"
END

LANGUAGE LANG_GERMAN, SUBLANG_DEFAULT
STRINGTABLE
BEGIN
    100 "German MyApp
    101 "German MyApp description text"
END

ユーザーがドイツ語バージョンの Windows をインストールしているか、MUI 言語としてドイツ語を選択している場合、Windows はドイツ語の文字列を使用する必要があります。他の言語バージョンでは、英語の文字列を選択する必要があります。

于 2011-07-24T16:44:00.167 に答える