gpt4 book ai didi

c# - 在 WPF 中运行我的应用程序时如何禁用 "PRINT SCREEN"按钮?

转载 作者:太空狗 更新时间:2023-10-29 20:11:49 25 4
gpt4 key购买 nike

如何在我的 WPF 应用程序运行时禁用打印屏幕功能?

用例是我的客户希望避免从外部世界不必要地复制以患者为中心的有值(value)的数据,并且他们提供物理安全性以防止人们通过非数字方式获取数据。

最佳答案

好吧,如果您的应用程序部署在用户无法使用相机的环境中,这是可能的,而且确实很有用。

首先,我使用了 RegisterHotKey 和 UnregisterHotKey API 调用,记录在此处 http://pinvoke.net/default.aspx/user32.RegisterHotKey如这篇相当古老的文章所述http://msdn.microsoft.com/en-us/magazine/cc163713.aspx .

我在 Window_Load 事件中注册了 IDHOT_SNAPDESKTOP 热键,并在 Window_Closed 中注销了它。尝试在构造函数中执行此操作使我无法通过 WindowInteropHelper(this) 方法获得一致的句柄。

如果你想做的不仅仅是忽略键,你可以设置一个 Windows 消息处理程序,使用一种 WndProc,

HwndSource source = HwndSource.FromHwnd(<handle>);
source.AddHook(<WndProc>);

如上所述制作句柄,并自己实现 WndProc。

到目前为止,我不知道如何“不”处理热键并让 Windows 执行其正常行为,当然,除了注销热键。

它不是很优雅或“WPF”,但对我有用。


如@ghord 评论

EnsureHandle()的使用看起来对于在构造函数中获取处理程序很有用。

关于c# - 在 WPF 中运行我的应用程序时如何禁用 "PRINT SCREEN"按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com