お世話になります。

自作ソフトを作成しており、その中のアンインストールの処理で
全ユーザのtempフォルダを削除したいのです。
全ユーザ名の取得などの処理はできているのですが、
どのようにすれば、ソフトコードで、すべてのユーザの
TEMPフォルダを取得できるか教えていただきたく思います。

※GetTempPathなどでは、アンインストールを走らせているユーザの
Tempフォルダしか指定できず、全てのユーザのTempフォルダを
取得できないのです。
※ハードコードではなく、ソフトコードで実現したいので
CSIDLなどで、フォルダを取得して、パス階層を削除して実現とかでも
なく、ソフトコードで実現したいのです。

A 回答 (1件)

http://oshiete1.goo.ne.jp/qa4941735.html
の方法で対応するユーザーのレジストリは読み込めたかと思われます。

各ユーザーのtempフォルダのパスはユーザーごとの環境変数TEMPとTMPに設定されています。
# カレントユーザーならHKEY_CURRENT_USER\Environment\TEMPとHKEY_CURRENT_USER\Environment\TMP。

ただし、場所の指定として各ユーザーのプロファイルのパスが指定されている場合があります。
# "%USERPROFILE%\Local Settings\Temp"など……。

カレントユーザーであれば、ExpandEnvironmentStrings()で展開できますが、今回の場合はカレントユーザーではありませんので、自前で展開が必要になるでしょう。
"%USERPROFILE%"の展開だけならば……
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
以下のSID名のサブキー内にProfileImagePathというキーがありますので、そちらと置き換えればよいかと。
    • good
    • 0
この回答へのお礼

お忙しいなかお返事頂きまして本当にありがとうございます。

お礼日時:2009/05/23 17:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング