张赐荣——一位视障程序员。
赐荣小站: www.prc.cx

張賜榮

张赐荣的技术博客

博客园 首页 新随笔 联系 订阅 管理

2024年5月16日 #

摘要: 通过Windows Magnification API实现屏幕变暗保护隐私 在这篇教程中,将详细讲解如何通过Windows Magnification API实现屏幕幕布功能,类似于iPhone VoiceOver的屏幕变暗功能。这一功能可以在视障人士操作电脑期间防止他人窥视,保护隐私。 关键知识点 阅读全文
posted @ 2024-05-16 18:31 张赐荣 阅读(33) 评论(0) 推荐(0) 编辑

2024年1月6日 #

摘要: 功能概述 这段代码定义了一个名为WinIPC的静态类,该类主要用于Windows进程间通信(IPC)。以下是其主要功能: 发送和接收消息:WinIPC类使用Windows消息(特别是WM_COPYDATA消息)在进程之间发送和接收数据。这是通过SendMessageW和FindWindowExW这两 阅读全文
posted @ 2024-01-06 10:14 张赐荣 阅读(85) 评论(0) 推荐(0) 编辑

2023年12月31日 #

摘要: 在 Python 中,可以使用 ctypes 库来调用 Windows API,实现对 Windows 系统的底层操作。本文将以模拟按键操作(ctrl+v)为例,详细讲解如何在 Python 中调用 Windows API。 1. 导入 ctypes 库 ctypes 是 Python 的一个外部函 阅读全文
posted @ 2023-12-31 09:29 张赐荣 阅读(174) 评论(0) 推荐(0) 编辑

2023年12月28日 #

摘要: 全局热键工具类(GlobalHotkey) 【文 / 张赐荣】 1. 功能概述 全局热键工具类(GlobalHotkey)是一个用于注册全局热键的工具类。它允许你在你的应用程序中注册特定的键盘组合,以便在用户按下这些组合时触发相应的事件。此工具类提供了以下主要功能: 注册多个热键并定义每个热键的组合 阅读全文
posted @ 2023-12-28 09:15 张赐荣 阅读(290) 评论(0) 推荐(0) 编辑

2023年7月31日 #

摘要: # 避免Newtonsoft.Json反序列化出现重复列表项 ## 问题描述 我们公司的项目是一个基于.NET的Web应用,它需要和一些第三方的API交互数据。为了方便地处理JSON格式的数据,我们使用了Newtonsoft.Json这个框架,它可以让我们轻松地将.NET对象序列化为JSON字符串, 阅读全文
posted @ 2023-07-31 08:19 张赐荣 阅读(284) 评论(0) 推荐(0) 编辑

2023年6月11日 #

摘要: # 使用双重检查锁定技术保证多线程中单例模式的线程安全 ## 前言 单例模式是一种设计模式,保证一个类只有一个实例,并且在整个应用中共享。它适用于需要控制对共享资源的访问,例如数据库连接、配置文件或日志记录器。 但是,在多线程环境下实现单例模式可能比较棘手。如果多个线程同时尝试创建单例实例,我们可能 阅读全文
posted @ 2023-06-11 15:54 张赐荣 阅读(111) 评论(0) 推荐(0) 编辑

摘要: “组合优于继承”是一个面向对象编程的设计原则,它建议我们在需要复用代码的时候,尽量使用组合(has-a)的方式,而不是继承(is-a)的方式。组合是指一个类包含另一个类的对象作为自己的属性,而继承是指一个类直接从另一个类派生出来,拥有其所有的属性和方法。 为什么要使用组合而不是继承呢?主要有以下几个 阅读全文
posted @ 2023-06-11 15:15 张赐荣 阅读(126) 评论(0) 推荐(0) 编辑

2023年5月27日 #

摘要: # 如何在Windows Forms 应用程序中改善屏幕阅读器可访问性 屏幕阅读器是一种辅助技术,可以通过语音或者盲文显示器来读出屏幕上的内容,帮助视力障碍者使用计算机。Windows Forms 是一种基于.NET Framework 的桌面应用程序开发技术,提供了丰富的控件和组件,以及一些可访问 阅读全文
posted @ 2023-05-27 07:59 张赐荣 阅读(29) 评论(0) 推荐(0) 编辑

2023年5月26日 #

摘要: # 解读NVDA读屏软件的设计架构和技术体系 NVDA(NonVisual Desktop Access)是一个免费开源的Windows屏幕阅读器,通过语音合成或盲文显示的方式,使视障人士能够使用计算机。它由澳大利亚的非营利组织NV Access和世界各地的贡献者共同开发。本文将尝试从技术角度介绍N 阅读全文
posted @ 2023-05-26 09:59 张赐荣 阅读(114) 评论(0) 推荐(0) 编辑

2023年5月8日 #

摘要: C# 反射调用方法不按顺序按参数名传值 命名参数是C#的一个特性,它允许我们在调用方法时,通过参数名来指定参数值,而不是通过参数的位置。这样可以避免记忆参数的顺序,也可以提高代码的可读性。例如,我们有一个方法: public static void InvokeMethodWithNamedArgu 阅读全文
posted @ 2023-05-08 14:05 张赐荣 阅读(81) 评论(0) 推荐(0) 编辑

感谢访问张赐荣的技术分享博客!
博客地址:https://cnblogs.com/netlog/
知乎主页:https://www.zhihu.com/people/tzujung-chang
个人网站:https://prc.cx/