10

ユーザーがSwingアプリケーションを閉じたり離れたりできないようにする方法はありますか?フルスクリーンにしようとしましたが、Alt-Tabで離すことができます。さらに、JOptionPaneのダイアログを使用する場合はうまく機能しません。

それで、ユーザーにデバイス上でこの1つのJavaプログラムのみを使用させる方法はありますか?

編集:何人かの人々は目的について疑問に思います。アプリケーションは、ハンドヘルドデバイス(Windowsで実行)に「埋め込まれている」と想定されているため、デバイスのユーザーは、フリーセルを再生したり、フリーセルを再生したりしないなど、意図したとおりに使用します。実際の仕事をする代わりに何か悪いこと。発券キオスクを見たことがありますか?それらはかなりうまくロックされています。大きな派手なGUIを閉じて、Windowsデスクトップにアクセスすることはできません。

4

5 に答える 5

7

わかりました @Daniel は、次のように呼び出して、Java アプリを閉じられないようにする (彼に +1 を付ける) 方法を示しました。

JFrame#setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

JFrameインスタンス上。

CTRL+ ALT+DELALT+などを押して、それを離れないようにするために、これを行うことができますTAB(Windows のみに適用されます)。

1) TaskManager/ CTRL+ ALT+を次の方法で無効DELにします。

  • レジストリ キーの設定:

    HKCU/ソフトウェア/マイクロソフト/Windows/CurrentVersion/ポリシー/システム/DisableTaskMgr = 1

    reg スクリプトまたは cmd.exe 経由。

ALT2) +TABなどのすべてのショートカットを一緒に無効にするには、こちらを参照してください (スクリプトをダウンロード/使用し、*.reg経由で実行しますcmd)。

于 2012-10-08T15:21:58.893 に答える
3

はい、使用setDefaultCloseOperation();して渡すことができますJFrame.DO_NOTHING_ON_CLOSE

例:

import javax.swing.*;
import java.awt.*;

class app extends JFrame {
    app(String title, int height, int width)
    {
        super (title);
        setSize(width, height);
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        setVisible(true);
    }

}
class program {
    public static void main(String[] args) {
        app myApp = new app("Hello", 350, 750);
    }
}
于 2012-10-08T13:37:11.437 に答える
3

POS アプリケーションでも同様のことを行いますが、少しごまかします。全画面表示は非常に役立ちますが、ユーザーはまだアプリケーションを終了できることがわかりました。

最後に、閉じられるとすぐに自動的に再起動する Windows サービス (はい、Windows で実行されます) を作成しました。そのため、Windows デスクトップ (アイコンを削除しました) が一瞬表示されますが、その後、アプリが再びポップアップします。これの利点は、JAR ファイルをイントラネットからリモートで更新できることです。ユーザーが行う必要があるのは、システムを閉じるボタンを押すだけで、自動的に再起動して更新されます。WebStart を使用したかったのですが、ラッパーとの統合に問題がありました。

ラッパー自体は、EXE にコンパイルされた JVM とアプリケーションを起動するだけの Python アプリケーションです。シンプルですが、効果的です。

最終的な効果は、自動的に再起動するクローズ可能なアプリケーションです。ユーザーが1つのことだけを実行できるようにする必要がある場合の使用には十分です。アプリケーションの管理者特権の起動資格情報と、ユーザーに通常のアカウントを与えることで、厄介な「alt-ctrl-del」ユーザーも処理されました。自分よりも高いアクセス権を持つプロセスを強制終了することはできません。

独自のラッパーを作成したくない場合は、http: //wrapper.tanukisoftware.com/doc/english/product-overview.html を試してみてください。素晴らしい製品のようです。

于 2012-10-08T13:55:01.890 に答える
1

アプリで好きなキーストロークをほぼすべてキャッチできる (そしてそれらを無視する) ことができるため、Alt-Tab を修正できます。アプリケーションがそれ自体を処理できない(らしい) 1 つのキーの組み合わせは、セキュリティ上の理由から、多くのオペレーティング システムでカーネルにフックされている Ctrl+Alt+Delete です。補足: これが、多くのログイン画面で、ユーザー名とパスワードを入力する前に C+A+D を押すように求める理由です。

于 2012-10-08T13:39:22.250 に答える
1

最大化を解除したり閉じたりできない、最大化されたウィンドウを作成できます。また、CTRL+SHIFT+ESCAPE、ALT+TAB、WIN+[anything]、さまざまな Fn キーなどの特定のキーストロークをトラップする必要があり、CTRL+ALT+DELETE が機能しないようにするために何かを行う必要があります (いずれかからタスク マネージャーを表示するか、Windows Vista または 7 で青いオプション画面を表示します。

CTRL + ALT + DELETEの動作を何らかの形で変更できるWindows API呼び出しがあると思いますが、それらが何であるかはわかりません。調査するのに適した場所は、タスク マネージャーを置き換える機能を備えた Sysinternals Process Explorer です。これがどのように行われるかを理解してから、それを複製します。

于 2012-10-08T13:41:06.070 に答える