• ベストアンサー

キーボード入力、マウス操作を監視をしたい

現在、開発している中で一定期間キーボード入力あるいはマウスによる操作がなければあるフォームを表示したいと考えています。 Timerを使えばできると思うのですが、もっと手軽にできる方法を探しています。 もしご経験がある方がおりましたらご教授ください。 宜しくお願いします。 開発環境 開発環境:VB6.0+SP5 OS:Windows2000+SP2

質問者が選んだベストアンサー

  • ベストアンサー
  • lily02
  • ベストアンサー率50% (2/4)
回答No.3

全く同じ目的のことを最近アプリに付け加えたので、その方法ですが。 タイマーコントロールで時間を監視し、キーボードはKey_Downかkey_pressで、マウスはmousu_moveでチェックします。 プログラムの一部を記します。F_lastcheck は20分間キーボードもマウスも操作しなかったときに表示するフォームです。 あと終了時にTimer.Enabled を False にします。 ------------------------------------------------------------ Private p_timeover As Long '無操作処理秒数 private p_NoAccessMSeconds '監視時間(msec) Private Sub Form_Load()   p_timeover = 0   Timer.Enabled = True   p_NoAccessMSeconds = 1200000 '20分間   ---ほかの処理を記述 End Sub '----------------------------------------------- 'マウスを動かしたときの処理 Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)   p_timeover = 0 End Sub '------------------------------------------------ 'テキストボックスでキーを動かした時の処理 Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)   p_timeover = 0   ---ほかの処理を記述 End Sub '------------------------------------------------ '無処理時間の監視 5秒おきにチェック Private Sub Timer_Timer()   p_timeover = p_timeover + 5000   If p_timeover > p_NoAccessMSeconds Then     p_timeover = 0     F_lastcheck.Show 1   End If End Sub

mar0325
質問者

補足

ありがとうございます。参考にさせてもらいます。

その他の回答 (2)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

おっしゃっているTimerが TimerコントロールかTimer関数かわかりませんが とりあえず 時間を算出する方法として APIではWindowsが起動してから 何秒経過したかを返すGetTickCount()関数、 標準関数では午前0時から何秒たったかを返すTimer()関数 がありますが、 特に精度が必要なければタイマーコントロールを使うのが一般的でしょう。 参考までにタイマーコントロール(Timer1_Timer) を使って600秒ごとにメッセージボックスを表示するものを書いてみました。 'timer1.interval=1000(1秒)に設定 Dim cnt As Long Private Sub Timer1_Timer() cnt = cnt + 1 Text1.Text = cnt If cnt >= 600 Then MsgBox ("600秒経過") cnt = 0 End If End Sub

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.1

そのフォームのEXEをスクリーンセーバーに登録するのはどうでしょうか。

関連するQ&A