-8

是否可以为 Windows 机器(桌面)创建一个网站或应用程序,它可以保持专注或精确保持打开状态,直到用户提交或完成给定任务。

例如,我的 XXX 应用程序/网站已打开。我希望用户填写一些文本。我想要的是,用户不应该执行以下操作

  1. ctrl+c 或 ctrl+v 所有这些快捷键
  2. ctrl+alt+del(我想这在网站上是不可能的)
  3. Ctrl+Shift+Esc

简而言之,我不希望用户从文本文件中复制文本,我不希望用户最小化这个 XXX 应用程序/网站并切换到资源管理器或记事本或其他东西。

我不认为网站可以做到这一切,Windows 桌面应用程序可以做到这一点吗?

4

5 回答 5

2

Windows 桌面应用程序也一定不能执行您所要求的操作。从本质上讲,您希望篡夺用户计算机的控制权......任何合理的操作系统或网络浏览器都不允许这样做

于 2012-07-25T12:32:40.667 回答
1

要扩展其他答案/评论:

  1. 在您自己的应用程序中禁用复制和粘贴是相对简单的。但是,您不能阻止用户在其他应用程序中复制和粘贴。“所有这些快捷方式”的含义尚不清楚,但通常“Ctrl-Something”快捷方式由应用程序定义,因此您可以覆盖它。
  2. 从网站或Windows 应用程序中永远不可能禁用 Ctrl-Alt-Del 。这是设计使然。
  3. Ctrl-Shift-Esc 可以被应用程序覆盖,但对 WPF 应用程序的初步实验表明,这需要在比 .NET 容易公开的更低级别进行处理。
于 2012-07-25T12:41:11.697 回答
1

您永远无法在 Windows 计算机中禁用 Ctrl-Alt-Delete。组合键被 Windows 内核截获,您甚至没有机会在您的 javascript 或桌面应用程序中看到它。您可以尝试编写一个在内核获取密钥之前获取密钥的驱动程序,但我不确定这是否真的可行。无论哪种方式,这都超出了桌面应用程序的范围。

可以捕获您列出的其他快捷方式。

于 2012-07-25T12:37:14.767 回答
1

看看DWinLock,我们使用它来完成您在我们的一个 Delphi 应用程序中所要求的工作,但它作为 DLL 和驱动程序提供,因此应该能够在几乎任何编程语言中使用。

在我们的例子中,它用于在我们的系统运行时禁用所有 Windows 快捷方式和 CTRL-ALT-DELETE,并在正确关闭时恢复所有这些,一旦导入 DLL,它就易于使用。

Procedure DisableKeys;
begin
  OutputDebugString(PChar('Disabling Keys - now secure'));
  wlDisableKey( 0, 0, MOD_WIN, 1 );
  wlDisableKey(0, VK_DELETE, MOD_CONTROL or MOD_ALT, 1);
  wlDisableKey( 0, VK_ESCAPE, MOD_CONTROL, 1 );
  wlDisableKey( 0, VK_ESCAPE, MOD_CONTROL or MOD_SHIFT, 1 );
  wlDisableKey( 0, VK_APPS, MOD_ALL, 1 );
  wlDisableKey( 0, VK_F4, MOD_ALT, 1 );
  wlDisableKey( 0, VK_F3, MOD_ALL, 1 );
  wlDisableKey( 0, ord('N'), MOD_CONTROL, 1 );
  wlDisableItem( wlAccessibility, 1 );
  wlDisableItem( wlAccHighContrast, 1 );
  wlDisableItem( wlAccFilterKeys, 1 );
  wlDisableItem( wlAccMouseKey, 1 );
  wlDisableItem( wlAccStickyKeys, 1 );
  wlDisableItem( wlAccToggleKeys, 1 );
end;

procedure EnableKeys;
begin
  OutputDebugString(PChar('EnablingKeys - NOT secure'));
  wlRestoreAll;
end;

希望有帮助

于 2012-07-25T12:58:22.293 回答
0

在 Web 应用程序中,您可以使用相当简单的 javascript 来限制用户输入,但不能限制浏览器。在桌面应用程序中,您可以使用 windows hooks 等。唯一的问题是所有主要的防病毒软件都会将您的应用程序视为威胁。并非不可能,如果您非常想要它,您可以从研究简单的 marc 3 键盘记录程序开始。祝你好运。

于 2012-07-25T12:41:08.823 回答