Windows XP用のユーザートークンを使用してShgetKnownFolderPathの代替方法はすべてですか?
-
21-12-2019 - |
質問
私のソフトウェアはまだWindows XPをサポートするために必要です。その中で私は shgetknownfolderpath FOLDERID_Desktop
によるユーザー固有のパス(hToken
など)を取得するためのWindowsサービスからのAPI。そのAPIはXPではサポートされていないので、そのOSでこれを行う方法がある場合は興味がありますか?
解決
使用する適切な関数は shgetfolderlocation 、NULL
または-1
をアクセストークンとして渡す:
HTOKEN [in]
タイプ:ハンドル
特定のユーザーを表すために使用できるアクセストークン。通常はNULLに設定されていますが、そこにあるときに必要な場合があります。 に属するものとして扱われるフォルダの複数のユーザー シングルユーザー。このタイプの最も一般的に使用されているフォルダは私です 文書呼び出し側アプリケーションは正しい責任を負います HTOKENがNULL以外の場合の偽装。それは適切でなければなりません 特定のユーザーのセキュリティ特権、およびユーザーのレジストリ ハイブは現在マウントされている必要があります。さらにアクセス制御を参照してください アクセス制御の問題の説明
HTokenパラメータの割り当て-1の値はデフォルトのユーザーを示します。これにより、ShgetFolderLocationのクライアントがフォルダを見つけることができます デフォルトユーザーの場所(デスクトップフォルダなど)。 the デフォルトのユーザーユーザープロファイルは、新しいユーザーアカウントがある場合に重複しています 作成され、私の文書などの特別なフォルダが含まれています デスクトップ。デフォルトのユーザーフォルダに追加された項目もすべて表示されます。 新しいユーザーアカウント