私が達成しようとしたことは複雑であることが判明し、今まで誰も答えていないので、私が実装したことに基づいて自分で質問に答えます。
デスクトップからアプリケーションを起動する可能性があるため (削除する必要があったため存在しません)、一種のタスクバーを実装しようとしました。メニューバーとシェルの高さがゼロのSWTダイアログを実装しました
....
WindowsSystemUtility.disableWindowsFunctionality(true);
shell = new Shell(getParent(), getStyle());
createMenu();
shell.layout();
shell.pack();
Rectangle screenBounds = getParent().getMonitor().getBounds();
int monitorWidth = screenBounds.width;
int monitorHeight = screenBounds.height;
//System.out.println(monitorWidth + ", " + monitorHeight);
int dialogWidth = monitorWidth;
int dialogHeight = 0; //height 0 - > shell has no height. only menu is shown
Rectangle shellBounds = shell.computeTrim(0, 0, dialogWidth, dialogHeight);
shell.setSize(shellBounds.width, shellBounds.height);
//place the dialog
int x = 0;
int y = 0; //position north
//int y = monitorHeight - dialogHeight; //position south
shell.setLocation(x, y);
shell.open();
....
ご覧のとおり、このアプリケーションが開くと、すべての Windows 機能を無効にしようとしてから開始されます。ダイアログのメニューバーに、2つのメニュー項目を持つ1つのメニューを配置しました。1 つはアプリケーションの起動用で、もう 1 つは管理者用です。jar を生成し、jar から exe を作成し、リンクhttp://technet.microsoft.com/en-us/library/cc939862.aspxに基づいて、それを userinit キーに入れました。
http://www.codeproject.com/Articles/7392/Lock-Windows-Desktopの dll から生成された Java コードを使用して、タスクバー、時計、タスク マネージャーなどの Windows 機能とリンクhttp://umang-を無効にしました。 world.blogspot.de/2012/02/is-it-is-possible-to-disable-windows.html (キー フックのインストール用) およびhttp://www.kbdedit.com/manual/low_level_vk_list.htmlおよびhttp:/仮想キー マップについては、/msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspxを参照してください。ユーザーがメニュー バーの管理者項目を使用してログインすると、同じ dll を使用してすべてを再度有効にし、フックを無効にします。管理者をログアウトすると、すべてが再び有効になります。
要約すると:
- 起動時にすべてを無効にすることができます
- Windowsレジストリのuserinitキーをオーバーライドして、デスクトップを非アクティブ化し、Windowsが遅延なく起動した直後にアプリケーションを起動します
- タスクバーが起動したとき(実装したswtダイアログ)
- Explorer.exeを殺す
- dll を使用して Windows アプリケーションを無効にする
- キーフックをインストールしてキーボードのキーを無効にする
- アプリケーションへのショートカットをデスクトップに配置して、ユーザーがアプリケーションを開くことができるようにする
- アプリケーションで管理者ユーザーの非アクティブ化された機能をアクティブにできます
- 管理者がメニュー項目からログインした場合
- エクスプローラーを起動します。
- dll を使用して Windows アプリケーションを有効にする
- キーフックを停止してキーボードのキーを有効にする
これが同じものを探している他の人に役立つことを願っています。上記で説明したことは、Windows XP SP3 でテストされ、正常に動作します。