01-04-2016, 03:35 PM,
|
|||||
|
|||||
PCで現在のOSのアイドル時間情報を知る方法
Curlでメッセンジャーアプリを開発しています。 ユーザーがメッセンジャーを使用する時に、一定時間の間何も操作をしなかった場合(席の外す時など) 「不在中..」という状態情報をメッセンジャー画面に表示したいんです。 このような場合にCurlで、現在のOS(WindowsまたはMac OS)の無効時間情報を知る方法が何ですか? 御存じの方がいらっしゃれば教えていただければ幸いです。 |
|||||
01-06-2016, 12:39 PM,
|
|||||
|
|||||
RE: PCで現在のOSのアイドル時間情報を知る方法
Curlアプレットのウィンドウ内部に対する操作でしたら、get-gui-manager(プロシージャ)を使用して取得した
GuiManagerにKeyPressとPointerEventのイベントハンドラを追加して監視できそうですが、直接OSから 取得するとなると難しそうですね。 WindowsではCURL.LANGUAGE.DLL-INTERFACEを使用して、user32.dllのget-last-input-infoと Kernel32.dllのget-tick-countを呼び出せばOSが持っているユーザが最後に入力した時刻からの 経過時間が計算できると思います。(残念ながらMac OSはよくわかりません) 試しにコードを書いてみましたが、こんな感じでしょうか。 Code: {curl 8.0 applet} |
|||||
01-06-2016, 03:06 PM,
|
|||||
|
|||||
RE: PCで現在のOSのアイドル時間情報を知る方法
早速のご回答ありがとうございます。 サンプルのソースコードまで作成して頂き、さらにありがとうございます。 ご助言頂きました様に一度試してみます。 |
|||||
01-07-2016, 10:10 AM,
(This post was last modified: 01-07-2016, 10:13 AM by Sanchez Chung.)
|
|||||
|
|||||
RE: PCで現在のOSのアイドル時間情報を知る方法
前のメールで頂いたサンプルのソースコードに対して
もう一つのご意見をいただければと思います。 コードは下の部分です {define-C-struct public LASTINPUTINFO field public cbSize:UINT field public dwTimeWORD def public size-of = 8 || sizeof LASTINPUTINFO } このコードの四番目のラインである、 def public size-of = 8 || sizeof LASTINPUTINFO ...で、 「size-of = 8」とあらかじめ設定して置いてあるんですが、 これを動的にCurlで知る(取得する)ことは出来るかどうかという質問です。 お手数になるかもしれないんですが よろしくお願いいたします。 |
|||||
01-08-2016, 05:54 PM,
|
|||||
|
|||||
RE: PCで現在のOSのアイドル時間情報を知る方法
Win32 API で定義されているLASTINPUTINFO構造体のサイズをCurlから動的に取得する
よいアイディアは残念ながら思いつきません。 とりあえず、8がマジックナンバーにならないように下記のように書くと少し良くなるかもしれませんが 悩ましいですね Code: def public Win32-UINT-size = 4 |
|||||
01-11-2016, 09:51 AM,
(This post was last modified: 01-11-2016, 09:55 AM by Sanchez Chung.)
|
|||||
|
|||||
RE: PCで現在のOSのアイドル時間情報を知る方法
御高見いただいて
どうもありがとうございました。 今までのアドバイスされたコードは 非常に助かります。 誠にありがとうございます。 |
|||||
« Next Oldest | Next Newest »
|
Users browsing this thread:
3 Guest(s)
3 Guest(s)