0

ヘルプ ファイルのパス名に仮想化されたフォルダ名が含まれていると、Vista および Windows Server 2008 で ShowHelp が失敗するように見えるという問題があります。たとえば、ドイツ語版の Vista では、「Program Files」は「Programme」と呼ばれます。呼び出し

System.Windows.Forms.Help.ShowHelp(null, 
   @"C:\Programme\Microsoft Visual Studio 9.0\Common7\Tools\spyxx.chm");

失敗しますが、

System.Windows.Forms.Help.ShowHelp(null,
   @"C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\spyxx.chm");

成功します。

C# でファイル パスを仮想化されていない対応するパスに変換する方法があれば教えてください。

または、その問題に対する他の解決策はありますか?

よろしく

4

1 に答える 1

0

C:\Programme は実際のフォルダーではなく、表示される名前であるため失敗します。Vista および 7 では、OS の言語に関係なく、これらのフォルダには常に英語の名前が付いています。

正しい方法は、レジストリを調べて、インストールされている場所を確認することです。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0 で InstallDir キーを探します。これは、c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ のようなものになります (ある場合)。このパスを操作して、代わりに Common7\Tools にアクセスできます。

つまり、パスをハードコーディングしないでください。

Program Files フォルダーの名前を知る必要がある場合は、ハードコードするのではなく、適切なパラメーターを指定して GetFolderPath を使用します

于 2010-04-16T14:03:44.173 に答える