2011-12-21 2 views
0

私は、ユーザーがアプリケーションのテキストボックスに値を入力して[OK]をクリックするまで、すべてのプログラムをロックまたはフリーズするためにC#でアプリケーションを作成しています。他のすべてのアプリケーションをロック/フリーズし、閉じられないWinFormsアプリケーションを作成するにはどうすればよいですか?

アプリの目的は、時間を入力することです。私の知る限り、あなたが最もトップにそれを設定することができますが、彼らはそうはい、それはですすべてのヘルプは

+0

これを実行しようとしているOSは何ですか?いつ実行する必要がありますか? – ChrisBD

+3

これはかなり古代の話題です。他のすべてのプログラムをフリーズするには、他のプログラムが同じことをしたい場合はどうすればいいですか?そのようなことをすべてブロックすることは、一般的に非常に悪いことです。ユーザーは、ユーザーが非常に重要で時間に敏感な何かをしていないと言いますか?あなたのアプリがハングする/クラッシュする場合はどうなりますか?システムは使用できません。 –

+0

それはwindoes 7 osで使用されるつもりです...まあ私は彼らが何をしているかどうか気にしないか、または彼らが何かを埋めるように気にしているすべての気にPCをフリーズする場合 – James

答えて

2

をいただければ幸いです。..ここ

formName.TopMost = true; 

を立ち往生していますタスクマネージャーでアプリを終了することができます知っているよう

正しい。 Windowsオペレーティングシステムでは、複数のプログラムを一度に実行できます。あなたが経験していることは、まったく設計によるものです。

私が正しく覚えている場合、TopMostプロパティはプロセス内のウィンドウにのみ適用され、言及しているとおり、それはまったく無関係です。ユーザーはタスクマネージャを使用してアプリケーションを強制終了できます。

これを回避する正当な方法はありません。これは「制限」ではなく、機能です。タスクマネージャーによって閉鎖されないようにするアプリケーションは、マルウェアと呼ばれるソフトウェアのカテゴリでは緊急に踏み込んでいます。このような追求から何も良いものは出せない。

関連読書:The arms race between programs and users


おそらく良い妥協案は、ユーザーが、彼らは試してみて、近くにはなりません知っているように、実際に最上位のあなたのウィンドウ/フォームを作成し、[閉じる]ボタンを無効にすることですそれ。これは、ほとんどの場合、必要な手段でアプリケーションを終了することを決定していないユーザーを停止するのに十分です。これは、これまでに気に留めていただけのことです。

は、あなたのウィンドウ/フォームが常にWS_EX_TOPMOSTフラグを設定するか、HWND_TOPMOSTを切り替えることにより、他の実行中のアプリケーションの上に表示させる方法については、サンプルコードhereを参照してください。

また、CS_NOCLOSEクラススタイルを設定することで、閉じるボタンを無効にする方法についての詳細な回答hereも書いてあります。

+0

アンチウイルスなどのソフトウェアの場合はどうなりますか? – Coops

+0

ありがとうございますが、これを表示して他のすべてを無効にしたり、使用を制限することは可能です – James

+0

@CodeBlend:ウイルス対策はどうですか?私はこれと何が関係しているのか理解していません。私はコンピュータ全体を支配し、私がそれを終了させないようにするウイルス対策プログラムを実行したことはありません。私は決してしないことを願っています... –

関連する問題