摘要:
今天来和大家分享一个在我多年的无障碍工作实践中遇到最多的问题:如何在网页上创建一个读屏软件可访问的模态对话框。 很多人可能会觉得,弹出对话框不是一个很简单很常见的功能吗,点击按钮后出现弹窗,再点击关闭按钮或点击背景关闭,没什么复杂的。然而,在无障碍测试过程中,我发现绝大多数网页中的弹窗对话框都存在各 阅读全文
2024年11月30日 #
2024年11月10日 #
摘要:
大家好,我是张赐荣。 作为一名专注于无障碍优化的工程师,在日常工作中经常会遇到需要为应用添加读屏软件可识别的控件标签的需求。本文将分享我在C/C++中实现这一需求的经验。 在c/c++开发的Windows原生应用程序中,通过实现IAccessible接口并处理WM_GETOBJECT消息,我们可以为 阅读全文
2024年9月22日 #
摘要:
浅谈在.Net Framework桌面应用中调用 WinRT API 【作者:张赐荣】 在开发 Windows 程序时,我们经常会遇到需要调用系统功能的场景,比如文件操作、录音、摄像头管理等。在传统的桌面应用开发中,使用 .Net Framework 封装的 Win32 API** 或者直接调用底层 阅读全文
2024年9月20日 #
摘要:
浅谈在C#中调用COM组件——以文件夹选择器为例 【文 / 张赐荣】 在现如今的这个时代,提到跨语言调用或者系统级操作,许多开发者第一时间会想到.NET、Web API等现代技术。然而,不得不说,COM组件这门技术可能在许多年轻开发者的学习清单中早已被“扫进角落”了。毕竟现如今.NET、Web AP 阅读全文
2024年5月16日 #
摘要:
通过Windows Magnification API实现屏幕变暗保护隐私 在这篇教程中,将详细讲解如何通过Windows Magnification API实现屏幕幕布功能,类似于iPhone VoiceOver的屏幕变暗功能。这一功能可以在视障人士操作电脑期间防止他人窥视,保护隐私。 关键知识点 阅读全文
2024年1月6日 #
摘要:
功能概述 这段代码定义了一个名为WinIPC的静态类,该类主要用于Windows进程间通信(IPC)。以下是其主要功能: 发送和接收消息:WinIPC类使用Windows消息(特别是WM_COPYDATA消息)在进程之间发送和接收数据。这是通过SendMessageW和FindWindowExW这两 阅读全文
2023年12月31日 #
摘要:
在 Python 中,可以使用 ctypes 库来调用 Windows API,实现对 Windows 系统的底层操作。本文将以模拟按键操作(ctrl+v)为例,详细讲解如何在 Python 中调用 Windows API。 1. 导入 ctypes 库 ctypes 是 Python 的一个外部函 阅读全文
2023年12月28日 #
摘要:
全局热键工具类(GlobalHotkey) 【文 / 张赐荣】 1. 功能概述 全局热键工具类(GlobalHotkey)是一个用于注册全局热键的工具类。它允许你在你的应用程序中注册特定的键盘组合,以便在用户按下这些组合时触发相应的事件。此工具类提供了以下主要功能: 注册多个热键并定义每个热键的组合 阅读全文
2023年7月31日 #
摘要:
# 避免Newtonsoft.Json反序列化出现重复列表项 ## 问题描述 我们公司的项目是一个基于.NET的Web应用,它需要和一些第三方的API交互数据。为了方便地处理JSON格式的数据,我们使用了Newtonsoft.Json这个框架,它可以让我们轻松地将.NET对象序列化为JSON字符串, 阅读全文
2023年6月11日 #
摘要:
# 使用双重检查锁定技术保证多线程中单例模式的线程安全 ## 前言 单例模式是一种设计模式,保证一个类只有一个实例,并且在整个应用中共享。它适用于需要控制对共享资源的访问,例如数据库连接、配置文件或日志记录器。 但是,在多线程环境下实现单例模式可能比较棘手。如果多个线程同时尝试创建单例实例,我们可能 阅读全文