9

単純な Delphi アプリケーション、キオスク スタイルを作成する必要があります。

これは非常にシンプルで、ユーザーが個人情報を入力してイベントに登録する単一のフォームです。4 TEdit と TButton。

私が達成したいのは、ユーザーが TEdit に入力するか、TButton をクリックするのとは異なるアクションを実行しないようにすることです。たとえば、ALT TAB (アプリケーションの切り替え)、キーボードで Windows キーを押す、ctrl-alt-canc などを実行したくない...

この「キオスクモード」を有効/無効にするパスワードで保護されたボタンを追加できます。このようにして、キオスクモードを終了する必要があるため、そのボタンを押して終了します。

すべてのキーストロークを手動でインターセプトせずに、Delphi でこの「キオスク モード」を実現するにはどうすればよいですか? それとも、共有できるように誰かがすでにこれを開発しましたか?

4

3 に答える 3

14

新しいデスクトップを作成し、そこでアプリを実行したほうがよいと思います。アプリが完成したら、ユーザーのデスクトップを戻すことができます。これが Windows のログイン画面の仕組みです。もちろん、Windows のログイン画面は特別な安全なデスクトップを使用しています。別のデスクトップにあるアプリは分離されます。Explorer.exe が自動的に実行されないため、スタート メニュー、タスクバー、またはデスクトップ アイコンのないデスクトップの背景が表示されます。もちろん、タスク マネージャーを使用して新しいプロセスを開始できますが、Windows のデスクトップはセキュリティ保護可能なオブジェクトです。したがって、必要に応じて制限を加えることができます。もちろん、アプリに十分な権限がある場合。

新しいデスクトップを作成するにはCreateDesktop Windows API を使用でき、新しく作成したデスクトップに切り替えるには OpenDesktop 関数を使用できます。

于 2010-07-13T13:02:46.233 に答える
5

Windows シェルの変更を試すことができます。
Windows を起動すると、デフォルトのシェル (explorer.exe) を実行せずに、アプリケーションを実行できます。

すべてのインターネットでは、次のようなデフォルトのウィンドウに代わるシェル (より魅力的な) を見つけることができます。

このオプションは、開発中のアプリケーションで同様の目的で使用されます。キオスクまたは TPV。
デフォルトのアプリケーションを変更するには、レジストリ キーを変更する必要があります。

Win3.x および Win9x では、SYSTEM.INI ファイル:

[boot]
shell=MiAplicacion.exe

Win2k および WinXP では、レジストリを使用します。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
Shell=MiAplicacion.exe 

このオプションをテストする場合は、構成を元の値 (ボタンまたはオプション) に戻すモードを考えてください。変更をテストするには、再起動する必要があります。

追加: さらに、この「Delphi Change default windows shell」で Web で類似のものを検索すると、これに関するより多くのコード、サンプル、および情報を見つけることができます。

よろしく

PD: 英語の間違いですみません。

于 2010-07-13T11:01:13.653 に答える
1

しかし、誰かが taskmgr を開くことができれば、新しいタスクを作成してそこから explorer.exe を実行することができるので、実際には安全ではありません...

OK Taskmgr はポリシーで停止できます...まあ、cad シーケンスを無効にするには、Remko Weijnen が作成した saslibex を使用できます。ここで見つけることができます: SASLibEx

よろしくお願いし
ます。

于 2010-07-13T11:14:05.947 に答える