OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

アプリケーションのロックについて

  • 暇なときにでも
  • 質問No.104546
  • 閲覧数208
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 64% (252/388)

現在開発中のアプリケーションで、一定時間操作しないとロックが掛かるようにしたいのですが、タイマーコントロールだけで実現できるのでしょうか。
いろいろ試してみたのですが、うまくいかないので悩んでいます。
「ユーザーがアプリケーションにまったく触っていない」というのを取得できるようなものはあるのでしょうか。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル12

ベストアンサー率 65% (276/422)

どもども田吾作7です。 処理ロジックとしては、、、 フォームのResizeやフォームと各コントロールのMOSEDOWN、KEYDOWNなどのイベントにそれぞれフラグを立てる必要があります。 もしフォームの移動もイベントの認識をしたいのであれば、プロセス監視が必要になります。 Spyって使ったことありますか? VBアプリケーションだけでなく、Windowsの各ウィンドウやアプリケーショ ...続きを読む
どもども田吾作7です。

処理ロジックとしては、、、

フォームのResizeやフォームと各コントロールのMOSEDOWN、KEYDOWNなどのイベントにそれぞれフラグを立てる必要があります。

もしフォームの移動もイベントの認識をしたいのであれば、プロセス監視が必要になります。
Spyって使ったことありますか?
VBアプリケーションだけでなく、Windowsの各ウィンドウやアプリケーション、またはアプリケーションの中の各コントロールは、Windowsからのメッセージを受けて、そのメッセージの種類により、動作します。もちろんフォームの位置の移動にも、フォームのサイズの変更開始、変更中、変更終了にもWindows特有のメッセージがあります。(SendMessageというのをMSDNで検索してください。)
SpyというソフトはVisualStudioに付属してあると思いますが、そのWindowsが送るメッセージをデバッグすることができます。

xiaolong_gooさんが、何が行われたら操作してないとするかがわかったら、もっと詳しく言えるのですが・・・・
そこら辺の仕様を教えてもらえませんか?
補足コメント
xiaolong_goo

お礼率 64% (252/388)

毎度、毎度お世話になります。
基本的にはフォーム上のtextboxなどのコントロールに一定時間入力がなかったりした場合にロックをしたいのです。
ロックといっても、アプリケーションモーダルのメッセージボックスを出してパスワードの入力を求めるだけのものなのですが。
印刷やファイルの読み書きなど、仮に数時間の時間がかかったとしても、それは、アプリケーションがユーザーからの指示を受けて自動実行しているものですよね。私の考え方では、この場合「入力がないもの」と考えています。
こういった場合は、やはり各コントロール全てにフラグを立てて判断するのでしょうか。
投稿日時 - 2001-07-15 14:53:07


  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

たびたび田吾作7です。 うーんそうですねー。 出来たらフラグを立てたほうがいいと思いますよ。 フラグがなかったら、操作中にロックがかかるという事態が起こる可能性がありますね。 それとWINDOWの位置も監視したほうがいいと思います。プロセス監視をしないでも、もう一つタイマーを用意しておいて、ウィンドウのLEFTとTOPを監視したほうがいいかも知れません。そのタイマーイベントにはDOEVENTS ...続きを読む
たびたび田吾作7です。

うーんそうですねー。
出来たらフラグを立てたほうがいいと思いますよ。
フラグがなかったら、操作中にロックがかかるという事態が起こる可能性がありますね。
それとWINDOWの位置も監視したほうがいいと思います。プロセス監視をしないでも、もう一つタイマーを用意しておいて、ウィンドウのLEFTとTOPを監視したほうがいいかも知れません。そのタイマーイベントにはDOEVENTSをわすれないようにしてください。

>いろいろ試してみたのですが、うまくいかないので悩んでいます

でわでわ
補足コメント
xiaolong_goo

お礼率 64% (252/388)

やはり、各コントロール全てにフラグを立てるしかないようですね。
しかし、フォーム上に50以上あるコントロール全てに設定するとなればかなり時間と労力の無駄になりそうで、こうなったら、タイマーコントロールだけで強制的にロックを掛けてしまおうか・・・なんて短絡的なことを考えてしまいます。
投稿日時 - 2001-07-15 22:23:11
  • 回答No.3

アドバイザー 詳しい分野:いろいろ

レベル14

ベストアンサー率 37% (668/1777)

考え方によっては、MouseOver、Keypressイベントも 取得したほうがいいですね。 話ははずれますが、Windowsのスクリーンセーバー自体が もともと、操作しなければロックを掛けられる仕組みに なってます。 ...続きを読む
考え方によっては、MouseOver、Keypressイベントも
取得したほうがいいですね。

話ははずれますが、Windowsのスクリーンセーバー自体が
もともと、操作しなければロックを掛けられる仕組みに
なってます。
補足コメント
xiaolong_goo

お礼率 64% (252/388)

< 話ははずれますが、Windowsのスクリーンセーバー自体が
< もともと、操作しなければロックを掛けられる仕組みに
< なってます。

そうですね。 ということはAPIを駆使して判断しているのでしょうか。
簡単そうで難しいVBのプログラミングにはいつも泣かされます。
投稿日時 - 2001-07-15 22:27:11
  • 回答No.4
レベル12

ベストアンサー率 65% (276/422)

田吾作7です・・・ 50以上ですか・・・? うむそれは厳しい・・・コントロール配列になっているならば多少は楽なんでしょうけど。。。 そうなると、APIを駆使して作って、各コントロールのハンドルを取り出し、それぞれのプロセスを再起的に監視したほうがいいかも?コントロールを一つ追加するたびに、同じ関数を呼び出すプログラムは、スマートではないですね。 σ( ̄ー ̄ ボク ホントはタイマー嫌い ...続きを読む
田吾作7です・・・

50以上ですか・・・?
うむそれは厳しい・・・コントロール配列になっているならば多少は楽なんでしょうけど。。。

そうなると、APIを駆使して作って、各コントロールのハンドルを取り出し、それぞれのプロセスを再起的に監視したほうがいいかも?コントロールを一つ追加するたびに、同じ関数を呼び出すプログラムは、スマートではないですね。

σ( ̄ー ̄ ボク ホントはタイマー嫌い


ちなみにスクリーンセーバーは基本的にWM_MOUSEMOVEに反応するようですね。

でわでわ
補足コメント
xiaolong_goo

お礼率 64% (252/388)

たびたび・・・です。
VBって本当に簡単そうで難しいですね。
今まで(VB6)を購入するまでは、DOSベースで業務用アプリケーションを開発していましたので、CUIプログラムならこんなこと簡単にできるのに、このGUIベースのVBはどうしてもなじめなくて困りものです。いまだにDOSベースで活躍する業務用アプリケーションの需要はあるのですが一部にはVBで作ってソースを頂戴・・・ってのも多くなってきましたのでVBに乗り換えました。
DOSユーザー泣かせのVBですが、がんばっていきますのでよろしくお願いします。
投稿日時 - 2001-07-15 23:56:05
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ