WindowsXPで複数のユーザーが同時にログオンしている時、
それらすべてのユーザーを取得する方法をご存知でしたらご教示ください。
よろしくお願いします。
ログオンユーザーを取得するのは・・・
http://www.kit.co.jp/vbit/QAndA08.htm
http://www.vbvbvb.com/jp/gtips/0301/gNetWkstaUserGetInfo.html
http://wmifun.atinfinity.net/wmisample/win32_computersystemc.html
ここをご参照下さい。
ただし、WinXPで複数のユーザーはログオンできませんが・・・
WinXP Home では無理
WinXP pro では、コンソール、もしくはTerminalServiceで、
どちらか1ユーザーしかマシンにログオンできません。
ネットワーク経由で共有リソースにアクセスしているユーザーの
ことでしょうか?それとも、httpやftpでのアクセスでしょうか?
共有リソースにアクセスしているユーザーの列挙は、そのリソースが
何かで変わってきますが・・・
http://www.vbvbvb.com/jp/gtips/0251/gNetConnectionEnum.html
この辺が使えるでしょう・・・
Win2000 Server や、WinNT Server TerminalEdition に対し、
複数のログオンユーザーを取得する場合は、ターミナルサービスAPI
になります。
そのものずばりは・・・探してください。
http://www.users.gr.jp/ml/archive/viewer.aspx?name=tse&no=1058
参考までに・・・
以上。
岡田様
ご助力ありがとうございます。
まず、私の質問の仕方が悪かったことをお詫び申し上げます。
「XPで同時にログオン」とは、
「簡易ユーザー切り替え」機能を使った場合のことです。
XP(Pro, Home)で複数のユーザーを作成し、
ユーザーAでログオン、なんらかのアプリをユーザー権限で起動、
そのままログオフせずにユーザーを切り替え、
ユーザーBでログオンし、タスクマネージャ等でプロセスをチェックすると、
ユーザーAで起動したアプリが確認できます。
もちろんアクティブになっているユーザーは一人だけですが、
この場合、ユーザーBがカレントユーザーの時に、
ユーザーAもログオンしていることを確かめるAPIや方法を知りたく思い質問させていただきました。
また、ユーザーBがログオン時に、
ユーザーAのユーザー空間で、ユーザーAとしてアプリケーションを起動することは可能でしょうか?
ご存知の方がいらっしゃいましたら、よろしくお願いします。
自己レスです。
ユーザー数の方は、WTSEnumerateSessions()等のAPIで解決できそうです。
Session IDからQueryができるみたいなので、そこからUserNameも取れそうです。
(要調査&実装)
>また、ユーザーBがログオン時に、
>ユーザーAのユーザー空間で、ユーザーAとしてアプリケーションを起動することは可能でしょうか?
こちらは引き続き調査中です。