他のアプリの処理を完全停止させ、一定時間経ったら、再開させるにはどうしたらいいのでしょうか?
それができたら、ウィルス簡単に作れるね。
他のアプリの識別
タイマー処理
他のアプリ制御
どれもわからないというならば1つずつ勉強して、それでもわからなければ
質問すると親切な答えが得られると思います。
自スレッド優先度上げて一定時間CPUを100使用するのが早いかな
求めてるのとは違うと思うけど
メッセージキューのフィルタリングで検索してみればどうでしょうか?
WindowsはマルチタスクOSだから
OSの機能でも拡張しない限り無理ですょ。
>他のアプリの処理を完全停止させ、一定時間経ったら、再開させるにはどうしたらいいのでしょうか?
デュアルコアCPUは知らんけどそれ以外やったら
システムを動かんようにしたらええねん。
副作用としては、システム全体および他のアプリの処理全部が
動かんようになるけどなぁ。
TFormのEnabledをfalseにする方法ではだめですか?
アプリ(フォームあり)のハンドルをTFormのハンドルにして...
そんなうまくゆくわけないか。
できないできないといわれていますが、目的としているのはどのようなソフトなんでしょうか?
もし自作のソフトでしたら、そのようなインターフェースを用意すれば済む話ですし、ものによっては一時停止するようなインターフェースをもっているソフトだってあるでしょう(コマンドライン Windowメッセージ ETC...)。
なにより目的とするソフトもわからなくては、どうすればいいかわかりません。
他アプリ一般のことなのでは? ゲームしてて、トイレ行きたくなったとか。
「WindowsはマルチタスクOSだから」出来ないとのご意見もある様ですが
逆にマルチだからターゲットのプロセスのIDを求めてそのプロセスを停止させることが可能なはず?
SysinternalsのProcessExplorerで操作してみたらうまくいくようだけど。
あとはそれをどう組むか・・・
停止じゃなくて、正確には一時停止なんだよね。停止なら簡単なんですが。
返信どうもありがとうございます。
他のアプリを一定時間停止させ、その間に画面をキャプチャし、また再開・・・(繰り返し)ということをしたいです。
わざわざ停止させる理由は1秒間に何回もキャプチャするので、そのときのコマ落ちを防ぐためです。(もしくは、他アプリが著しくCPUに負担をかける場合など。)
もちろん、1回1回停止させてしまえば、1秒間に何回とはならなくなりますが、相対的な時間は一致するので。
ちなみに、他アプリ一般でです。
やはり難しいでしょうか・・・。
えーとさん
>停止じゃなくて、正確には一時停止なんだよね。停止なら簡単なんですが。
???
停止が簡単なら問題ないんじゃないの?
一時停止は 停止(suspend)⇒時間待ち⇒再開(resume)のことでしょ
でも質問者さんが要求しているのはそうではないみたいですね。
プロセスをサスペンドさせるとそのWindowをキャプチャすることが出来ませんから。
キャプチャ時のコマ落ち・・・なら
そのスレッドの優先度を一時的に最高にしてみてはどうでしょう
質問とは関係ないですが・・・
えーとさんは停止(suspend)と終了(terminate)を勘違いなさっていると思います
> えーとさんは停止(suspend)と終了(terminate)を勘違いなさっていると思います
そうですね。停止を一時停止、終了を停止としていました。すみません。
ツイート | ![]() |