• 締切済み

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

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

みんなの回答

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

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

xiaolong_goo
質問者

補足

たびたび・・・です。 VBって本当に簡単そうで難しいですね。 今まで(VB6)を購入するまでは、DOSベースで業務用アプリケーションを開発していましたので、CUIプログラムならこんなこと簡単にできるのに、このGUIベースのVBはどうしてもなじめなくて困りものです。いまだにDOSベースで活躍する業務用アプリケーションの需要はあるのですが一部にはVBで作ってソースを頂戴・・・ってのも多くなってきましたのでVBに乗り換えました。 DOSユーザー泣かせのVBですが、がんばっていきますのでよろしくお願いします。

回答No.3

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

xiaolong_goo
質問者

補足

< 話ははずれますが、Windowsのスクリーンセーバー自体が < もともと、操作しなければロックを掛けられる仕組みに < なってます。 そうですね。 ということはAPIを駆使して判断しているのでしょうか。 簡単そうで難しいVBのプログラミングにはいつも泣かされます。

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

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

xiaolong_goo
質問者

補足

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

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

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

xiaolong_goo
質問者

補足

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

関連するQ&A

  • Access2003 テーブルロック

    Access2003で任意のテーブルをロックすることはできますでしょうか? 1.ユーザAがテーブル1にアクセスしにいき、テーブル1をロック 2.ユーザAは処理が終了したらテーブル1のロックを解除 1~2の処理の間はユーザA以外のユーザがテーブル1にアクセスできないようにしたいのです。 ロックファイルを使用するやり方もあると思いますが なるべく簡単に実現したいので、 なるべくロックファイルやアプリケーション変数は使いたくありません。 (サーバーが落ちた場合に永久にロックされてしまうので) 何かよい方法をご存知の方がいらしたらご教授お願いします。

  • アプリケーションの自動操作について

    はじめまして、プログラミング初心者です。よろしくお願いします。 現在下記のオンラインカジノのアプリケーションソフトの 自動操作が行えるようなソフトの開発を行いたいと思っています。 ・ウィリアムヒルカジノ http://ja.williamhillcasino.com ヨーロピアンルーレット 実現したいのは、 1.ローカルにダウンロードしたカジノソフトでプレイした履歴を自動で取得 2.自動で取得したプレイ履歴から傾向を解析 3.解析結果の表示 4.解析結果の検証用に自動プレイ 現在悩んでいることが ・そもそも、カジノソフトが何の言語?でできているか? ・自動で履歴を取得することが可能か?(ローカルとカジノ側サーバーの通信履歴の取得?) ・取得・解析・表示・自動プレイを実現する言語は何がよいか? ・自動プレイは可能か? と多々あります。 申し訳ありませんが、ぜひ皆さまから御意見いただきたく思い投稿させていただきました。 何とぞよろしくお願いいたします。

  • メトロノームが一定のリズムで鳴ってくれない

    こんにちは、VBのプログラミングについて教えて下さい。 VBでメトロノームみたいなプログラムを作ろうと思い、タイマーコントロールを使って一定の間隔でWAVを鳴らすプログラムを作りました。とりあえず完成し、それなりに動くのですが、実行中に他のアプリケーションを操作すると一瞬リズムが乱れてしまいます・・・。 出来れば他のアプリケーションを操作しても、リズムが乱れないようにしたいのですが、どのような手法がありますでしょうか? どうぞ宜しくお願いします!

  • アプリケーションの自動操作について

    はじめまして、プログラミング初心者です。よろしくお願いします。 現在下記のオンラインカジノのアプリケーションソフトの 自動操作が行えるようなソフトの開発を行いたいと思っています。 ・ウィリアムヒルカジノ https://freshcasinobonus.com/bonuses-by-games/bingo-bonuses ヨーロピアンルーレット 実現したいのは、 1.ローカルにダウンロードしたカジノソフトでプレイした履歴を自動で取得 2.自動で取得したプレイ履歴から傾向を解析 3.解析結果の表示 4.解析結果の検証用に自動プレイ 現在悩んでいることが ・そもそも、カジノソフトが何の言語?でできているか? ・自動で履歴を取得することが可能か?(ローカルとカジノ側サーバーの通信履歴の取得?) ・取得・解析・表示・自動プレイを実現する言語は何がよいか? ・自動プレイは可能か? と多々あります。 申し訳ありませんが、ぜひ皆さまから御意見いただきたく思い投稿させていただきました。 何とぞよろしくお願いいたします。

  • chromeOS用アプリケーションの作り方を教えて下さい。

    現在、chromeOS用アプリケーションの開発方法を探しています。 Webアプリケーションは勿論ですが、 ユーザ端末上に展開・動作するアプリケーションも、情報があれば助かります。 前者のイメージとしては、以下です。  http://www.chromeexperiments.com/ よろしければ、 どなた様か、chromeOS用アプリケーションの作り方を教えて頂けませんでしょうか? 以上、よろしくお願い致します。

  • VBA Application.OnTime について

    エクセルで、複数のマクロをタイマー設定して 決まった時間になると、実行するようにしています。 Application.OnTime を使用して、複数のタイマーをセットしているのですが セットされているタイマーの内、一部のタイマーだけを解除したい場合 現在セットされている、全タイマーを調べることは可能でしょうか?

  • W1700のOSDロックが解除できない

    デスクトップのディスプレイにW1700を利用しています。 現在、ディスプレイ操作にてロックがかかってしまい、 操作できずに困っています。 リモコンやディスプレイのボタンを操作すると、 キーの形をしたアイコンが表示されます。 以下を見ると、 <http://support2.jp.dell.com/docs/monitors/w1700/JAPAN/Ja/controls/contr_jp.htm#OSD_Tree> OSDロックされているということがわかり、 「OSDがロックされているとき、メニューボタンを再び押すとユーザーはOSDロックメニューに入ります。 (+)を押すとロック解除され、ユーザーはすべての適用可能な設定にアクセスできます。」 と記載があるため、 ・メニューボタンを押す。(キーアイコンが表示されます) ・+ボタンを押す(長押ししてみたりしました) とやってみましたが、ロック状態を解除できません。 アドバイスをお願いいたします。 よろしくお願いいたします。

  • アプリケーションを関連付けるって?どうすれば?

    初心者ですいません 無料のフォントをダウンロードしたんですが アイコンをクリックすると 指定されたファイルに対してこの操作を行う アプリケーションが関連付けられていません 「フォルダオプション」コントロールパネルで アプリケーションを関連付けてください・・・・ と出ます このコントロールパネルからの操作がどうしたらいいのか わかりません 何方か教えてください 宜しくお願いします。

  • スクリーンロックさせない方法

    会社で使っているPCが変更され、一定時間操作しないと強制的にスクリーンセーバ(+ロック)がかけられる仕様になり、その設定は解除できないようになっています。 いちいちロック解除するのも面倒なので、時々マウスを動かしたりキーボードのボタンを押して、ロックがかからないようにしていますが、これもまた面倒です。ロックがかからないようにするフリーソフト等もあるようですが、セキュリティー上インストールすることもできません。 一定時間毎に物理的に自動的にマウスを動かしたりキーボードのボタンを押すような、いい方法はないでしょうか?

  • 他のアプリケーションを操作

    他人の作ったアプリケーションを何とか操作したのですが、何か方法はありませんか? ちなみに、「Spy++」ツールを使って対象アプリのウィンドウハンドルを確認して見たのですが、そのアプリ画面にある各種コントロールが子ウィンドウとして確認できません。 操作したいアプリが「LabView」で作られているっぽいです。 (NIのMeasurementStadioのコントロールがたくさんあります。勝手な推測ですが、、、) WINAPIを駆使すれば、実現できそうな感じはあるのですが、私の力ではこれ以上前に進めなくなってしまいました。 回答を宜しくお願いします。

専門家に質問してみよう