You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Oracle Forms 10g数据库文本项的内容复制?

解决Oracle Forms 10g文本项禁止复制粘贴的问题

以下是纯Forms PL/SQL实现的方案,无需依赖Java,可拦截Ctrl+V、右键菜单等所有粘贴途径,且不会将字段显示为密码星号:

  • 拦截键盘粘贴操作
    在目标文本项的KEY-OTHERS触发器中添加代码,直接拦截Ctrl+V(ASCII码CHR(22))和Shift+Ins(ASCII码CHR(24))两种粘贴快捷键:

    IF keycode = 22 OR keycode = 24 THEN
       MESSAGE('禁止粘贴,请手动输入内容');
       MESSAGE('禁止粘贴,请手动输入内容'); -- 重复调用确保提示信息显示
       RAISE FORM_TRIGGER_FAILURE;
    END IF;
    
  • 禁用右键菜单
    在目标文本项的WHEN-MOUSE-RIGHT-CLICK触发器中添加代码,阻止右键菜单弹出:

    MESSAGE('右键菜单已禁用,请手动输入内容');
    MESSAGE('右键菜单已禁用,请手动输入内容');
    RAISE FORM_TRIGGER_FAILURE;
    
  • 可选:清空剪贴板强化防护
    如果需要进一步切断剪贴板来源,可在目标文本项的WHEN-NEW-ITEM-INSTANCE触发器中添加代码清空剪贴板:

    -- 通过COPY_REGION清空系统剪贴板
    COPY_REGION(NULL, 0, 0, 'CLIPBOARD');
    

    注:若之前使用COPY_REGION失败,检查是否参数传递错误,上述写法可正确清空剪贴板内容。

所有触发器需绑定到指定文本项而非表单级,确保仅限制目标字段,不影响其他输入项的正常操作。

内容的提问来源于stack exchange,提问作者Maran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:04:54