C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
C# と VB.NET のサンプル
新規作成
利用方法/規約
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
■93065
/ 1階層)
「ユーザーの切り替え」を知りたい
□投稿者/ とっちゃん
(643回)-(2019/11/18(Mon) 13:14:39)
■
No93059
(りんく さん) に返信
> 当ソフト起動時に「System.Environment.UserName」で名前を保持しておき
> 「System.Environment.UserName」を取得するポーリングを実行し
> 起動時のUserNameとポーリングでのUserNameが不一致だったらログアウトするとしてみたのですが
> ユーザーを切り替えてもポーリング内のUserNameは起動時のUserNameと同じでした。
> 今現在、ログインしているユーザーのユーザー名を取得することはできないのでしょうか?
>
> どのようにすれば実現できるのか、わかる方がおられましたら、ご教授願います。
あるアカウントで起動したプログラムは別のアカウントを認識できません。
この場合、ユーザーAでログインした状態でアプリを起動しても
ユーザーBのログイン状況内ではプログラムは起動していない状態です。
タスクマネージャで見てみればすぐにわかります。
そのため、ポーリングしても判別はできません。
最初の一歩としてはここかな?(日本語はありません)
https://docs.microsoft.com/en-us/windows/win32/shell/fast-user-switching?WT.mc_id=DT-MVP-32182
あるユーザーがログイン状態のまま別のユーザーに切り替えできる仕組みを「Fast User Switching」と呼びます。
通常別ユーザーと切り替えたなどは必要ありませんが、それを識別できる必要がある場合メッセージを受け取れるように
する仕組みが用意されています。
Windows API と、メッセージを受け取れる必要があるので、それなり以上に面倒な実装になります。
ところで、アプリのログイン機能というのはそのマシンの中に情報を持っているのでしょうか?
ログインのアカウントが変わると、AppData フォルダは別物になります。また、ドキュメントなどのフォルダは別になります。
そのあたりは問題はありませんか?
編集キー/
編集
前の記事
(元になった記事)
次の記事
(この記事の返信)
←「ユーザーの切り替え」を知りたい
/りんく
→Re[2]: 「ユーザーの切り替え」を知りたい
/りんく
上記関連ツリー
「ユーザーの切り替え」を知りたい
/ りんく
(19/11/18(Mon) 10:27)
#93059
└
「ユーザーの切り替え」を知りたい
/ とっちゃん
(19/11/18(Mon) 13:14)
#93065
←Now
└
Re[2]: 「ユーザーの切り替え」を知りたい
/ りんく
(19/11/18(Mon) 14:13)
#93069
├
Re[3]: 「ユーザーの切り替え」を知りたい
/ りんく
(19/11/18(Mon) 15:09)
#93071
└
Re[3]: 「ユーザーの切り替え」を知りたい
/ とっちゃん
(19/11/19(Tue) 12:10)
#93081
└
Re[4]: 「ユーザーの切り替え」を知りたい
/ りんく
(19/12/02(Mon) 16:03)
#93283
解決済み
上記ツリーを一括表示
/
上記ツリーをトピック表示
上記の記事へ返信
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No93065 (とっちゃん さん) に返信 > ■No93059 (りんく さん) に返信 > >>当ソフト起動時に「System.Environment.UserName」で名前を保持しておき >>「System.Environment.UserName」を取得するポーリングを実行し >>起動時のUserNameとポーリングでのUserNameが不一致だったらログアウトするとしてみたのですが >>ユーザーを切り替えてもポーリング内のUserNameは起動時のUserNameと同じでした。 >>今現在、ログインしているユーザーのユーザー名を取得することはできないのでしょうか? >> >>どのようにすれば実現できるのか、わかる方がおられましたら、ご教授願います。 > > あるアカウントで起動したプログラムは別のアカウントを認識できません。 > > この場合、ユーザーAでログインした状態でアプリを起動しても > ユーザーBのログイン状況内ではプログラムは起動していない状態です。 > > タスクマネージャで見てみればすぐにわかります。 > > そのため、ポーリングしても判別はできません。 > > > 最初の一歩としてはここかな?(日本語はありません) > https://docs.microsoft.com/en-us/windows/win32/shell/fast-user-switching?WT.mc_id=DT-MVP-32182 > > あるユーザーがログイン状態のまま別のユーザーに切り替えできる仕組みを「Fast User Switching」と呼びます。 > > 通常別ユーザーと切り替えたなどは必要ありませんが、それを識別できる必要がある場合メッセージを受け取れるように > する仕組みが用意されています。 > > Windows API と、メッセージを受け取れる必要があるので、それなり以上に面倒な実装になります。 > > > ところで、アプリのログイン機能というのはそのマシンの中に情報を持っているのでしょうか? > ログインのアカウントが変わると、AppData フォルダは別物になります。また、ドキュメントなどのフォルダは別になります。 > そのあたりは問題はありませんか? >
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-