1

画面をフリーズしてアクティブなフォームを 1 つだけ表示する方法はありますか (そのフォームのみがユーザーからの入力を受け取ることができます)。

私の説明の例は、Windowsユーザーがスタートメニューからシャットダウンをクリックしたときのようなものです。シャットダウン、再起動などの選択肢が表示され、ユーザーがそのフォーム以外に入力することはできません。または、Tune Up レジストリ オプティマイザを使用している場合、実行中の他のすべてのアプリケーションを閉じるように求められ、プログレス バーを含むブルー ウィンドウが表示されますが、ユーザーはこのウィンドウを閉じたり、他の入力を行ったりすることはできません。

モーダルフォームについては知っていますが、それを行う他の方法はありますか。

何か案が?

4

1 に答える 1

0

他のアプリへの入力を実際に停止するには、おそらくSetWindowsHookEx()を使用してグローバルメッセージフックをインストールし(WH_CBTオプションを使用したいと思います)、他のウィンドウに送信されたメッセージをトスする必要があります(もちろん必要になります)それを行うための管理者権限)。

ただし、別の方法があります。a)プログラムにディスプレイのスクリーンショットを撮らせる、b)ビットマップを後処理して「グレー」にする、c)アプリケーションを完全に全画面表示する(アプリのサイズを変更する簡単な方法があります)タスクバーも上書きします)、アプリフォームの背景を、手順Aで撮影し、手順Bでグレー表示にしたスクリーンショットに設定します。最終的には、ユーザーのデスクトップによく似たシンプルな画像表示になりますが、もちろん、ウィンドウはクリックできません。

于 2012-06-25T22:16:09.210 に答える