2

私のソフトウェアは Windows XP をサポートする必要があります。その中で、Windows サービスからSHGetKnownFolderPath API を呼び出して、ユーザー固有のパス (などFOLDERID_Desktop)を取得していますhToken。その API は XP ではサポートされていないため、その OS でこれを行う別の方法があるかどうか知りたいです。

4

1 に答える 1

2

使用する適切な関数はSHGetFolderLocationで、アクセス トークンとしてNULLまたはを渡し ます。-1

hToken [入力]

タイプ: ハンドル

特定のユーザーを表すために使用できるアクセス トークン。通常は NULL に設定されますが、1 人のユーザーに属するものとして扱われるフォルダーに複数のユーザーがいる場合に必要になることがあります。この種類の最も一般的に使用されるフォルダーは、マイ ドキュメントです。hToken が NULL でない場合、呼び出し元のアプリケーションは正しい偽装を担当します。特定のユーザーに対して適切なセキュリティ権限が必要であり、ユーザーのレジストリ ハイブが現在マウントされている必要があります。アクセス制御の問題の詳細については、アクセス制御を参照してください。

hToken パラメーターに -1 の値を割り当てると、デフォルト ユーザーを示します。これにより、SHGetFolderLocation のクライアントは、既定のユーザーのフォルダーの場所 (デスクトップ フォルダーなど) を見つけることができます。デフォルト ユーザーのユーザー プロファイルは、新しいユーザー アカウントが作成されると複製され、マイ ドキュメントやデスクトップなどの特別なフォルダーが含まれます。Default User フォルダに追加されたアイテムは、新しいユーザー アカウントにも表示されます。

于 2014-02-26T23:36:27.467 に答える