如何在程序或网站处于活动状态时禁用剪贴板和任务切换操作

How can I disable clipboard and task-switching operations while my program or Web site is active?

本文关键字:剪贴板 操作 任务切换 活动状态 程序 网站      更新时间:2024-02-23

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

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

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

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

我不认为网站能做到这一切,一个windows桌面应用程序能做到吗?

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

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

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

要扩展其他答案/评论:

  1. 在您自己的应用程序中禁用复制和粘贴相对来说是微不足道的。但是,您无法阻止用户在其他应用程序中进行复制和粘贴。"所有这些快捷方式"的含义尚不清楚,但通常情况下,"Ctrl-Something"快捷方式是由应用程序定义的,因此您可以覆盖它
  2. 网站或Windows应用程序禁用Ctrl-Alt-Del是不可能的。这是经过设计的
  3. Ctrl-Shift-Esc可以被应用程序覆盖,但对WPF应用程序的初步实验表明,这需要在比.NET容易公开的更低的级别上处理

看看DWinLock,我们在一个Delphi应用程序中使用它来完成您的要求,但它是一个DLL和驱动程序,因此应该可以在几乎任何编程语言中使用。

在我们的情况下,它用于在我们的系统运行时禁用所有窗口快捷方式和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;

希望对有所帮助

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