通知
すべてクリア
Topic starter
2010年11月4日 2:47 PM
サービスのプログラムを作成しています。
現在ログインユーザのユーザ名で、
SHGetFolderPathを使用して各ディレクトリのパスを取得したいのですが、
方法がいまいちわかりません。第3引数のトークンで引っかかっています。
ログインユーザのトークンの作成方法教えていただけないでしょうか?
2010年11月4日 4:02 PM
HandlerEx で SERVICE_CONTROL_SESSIONCHANGE を捕まえて、
WTSSESSION_NOTIFICATION::dwSessionId を WTSQueryUserToken に渡すことで
トークンを得ることができます。
あるいは、リモート等でなく、現在マシンの前にいてログインしているユーザーのセッ
ションであれば、WTSGetActiveConsoleSessionId で取れるでしょう。
サービスは誰もログインしていない時でも動いていることに注意してください。
Topic starter
2010年11月8日 3:56 PM
ありがとうございます。
返信遅れて申し訳ありません。
WTSGetActiveConsoleSessionIdとWTSQueryUserTokenの組み合わせで問題なく
取得できました。ログアウト時や、リモートアクセスなどの問題も少しでてきましたが
、この点をもう少し考えてみたいとおもいます。