2

アクティブなウィンドウや最後のマウスの動きなど、現在ログオンしているユーザーから情報を取得する必要がある C# サービスを作成しています。user32.dll を使用してこれらの情報を取得できることは既に学びましたが、これはメソッドを呼び出すユーザー コンテキスト内からのみ機能します。

このようにして、私のサービスはそれ自体に関する情報しか取得できず、「現実世界」のユーザーに関する情報は取得できませんでした。また、これは WTSEnumerateSessions、OpenWindowStation、EnumDesktops などを使用することで可能になるはずだと聞きましたが、これを行う方法を示す例は見つかりませんでした。

誰かが私の目標を達成する方法の手がかり (またはコード例) を持っていますか?

4

1 に答える 1

4

これは、ユーザーのセッションで実行されているアプリの仕事のように思えます。行儀の良いサービスは、そのようにユーザーを詮索するべきではありません。それを行う方法はあるかもしれませんが(正直なところわかりません)、あまり適切とは言えません。

最近のバージョンの Windows では、コンソール セッション (セッション 0) は管理目的に限定されており、ユーザーは (通常) そこにいないことに注意してください。非コンソール セッションが 0、1、または多数ある場合があります。

于 2009-03-11T14:58:38.473 に答える