2

そのため、以前に同じタイトルで質問をしたところ、ほとんどの部分で機能する回答が得られました。私の問題は、Win32 リソース ファイルの文字列テーブルが Windows Server 2003 で動作していないことです (おそらく他のものも、この時点では O/S テストが制限されています)。

テスト結果:

正しく表示されます:

  • WindowsXP
  • Windows ビスタ
  • ウィンドウズ7

正しく表示されない:

  • Windows 2000 プロフェッショナル
  • Windows Server 2003

最初の質問に対する回答で提供された解決策が、Windows XP および Vista では期待どおりに機能することはわかっていますが、Windows Server 2003 では機能しません。「わかりやすい」スクリーンセーバー名を Windows Server に表示するには、別のことを行う必要がありますか? 2003年?

リソース ファイルには次の 2 つの項目しか含まれていません。

  • アイコン - ID: 1
  • 文字列テーブル
    • 文字列 - ID: < 空 >、値: 1、キャプション: CC.Votd

文字列テーブルのみを含むリソース ファイルに戻っても、動作は同じです。

編集:別の文字列を追加しようとしました:

  • 文字列 - ID: < 空 >、値: 100、キャプション: CC.Votd

私が見たように、Windows Server 2003 で正しい名前を表示する他のスクリーンセーバーでは何も変わっていません。リソース エクスプローラーを使用して Windows に付属のスクリーンセーバーをブラウズするときに一貫性が見られないため、イライラします。

値 1 とフレンドリ名を含む文字列を指定するものもあります。値が 100 の文字列を指定するものもあります。文字列テーブルを含まないものもありますが、それでも実行可能ファイル名とは異なる名前が表示されます。


更新:リソース ファイルの作成方法と使用方法を示す非常に基本的なソリューションを作成しました。.scr ファイルを XP/Vista ボックスのシステム ディレクトリにコピーすると、ドロップダウンに [Friendly Screen Saver Name] が表示されます。Windows Server 2003 では、「So_screensaver_display_name」(拡張子なしの実行可能ファイル名) が表示されます。こちらからダウンロードできます: http://www.ccswe.com/temp/SO_ScreenSaver_Display_Name.zip

編集: Windows Server 2003 を実行している誰かが、上記のサンプル プロジェクトをコンパイルおよびテストして、これが私の Windows Server 2003 マシンに固有のものであるかどうかを判断できるようにすることも役に立ちます。

ローカルでテストするのは XP/Vista/2003 しかないので、他の OS での結果にも興味があります。ありがとう!

更新:別の Windows Server 2003 (R2) マシンでテストできましたが、結果は同じです。Windows 2000 Professional でも正しく表示されません。ただし、Windows 7 マシンで動作します。


解決策:受け入れられた回答で述べたように、ファイルの名前を から に変更したCC.Votd.scrところCCVotd.scr、Windows 2000/2003CC.Votdは文字列テーブルから説明を適切に読み取り、ドロップダウンに表示しました。DOS 8.3 以外のファイル名が私の説明を使用しない「理由」をまだ理解していませんが、少なくとも修正されています。

4

1 に答える 1