web-dev-qa-db-ja.com

C:\ ProgramDataへのパスを取得するWin32関数

私のアプリは、実行時にアプリケーションで編集できるいくつかのファイルをインストールする必要があります。インストールシールドは、VistaおよびWindows 7ではc:\ programDataに解決され、WindowsXPでも機能するエイリアス[CommonAppDataFolder]を提供します。同様のパスを返すwin32関数はありますか?

オペレーティングシステムに応じて異なる関数を呼び出す必要があるかもしれませんか?

14
Mike2012

SHGetFolderPath /SHGetSpecialFolderPathCSIDL_COMMON_APPDATA引数。

ここ(下部)のコードスニペットを参照してください: Windowsの記述方法XP Visual C++を使用してユーザーとアプリケーションのデータを正しい場所に保存するアプリケーション

  • Windows XP:C:\ Documents and Settings\All Users\Application Data
  • Windows Vista:C:\ ProgramData
  • Windows 7:C:\ ProgramData

参照: [〜#〜] csidl [〜#〜]

22
Roman R.

DelphiXE5なので、この機能はフレームワークの一部です。

  • 単位: System.IOUtils
  • クラス:TPath
  • 関数:GetPublicPath

詳細については、 embarcadero docwiki を参照してください。

1
F. Weise