当前位置: 首页 > news >正文

基于钉钉API的连接器实现:企业数据集成与自动化管理

文章目录

    • 概要
    • 背景与需求
    • 钉钉API概述
    • 连接器实现
    • 小结

概要

在当今数字化时代,企业面临着海量数据的管理与整合挑战。钉钉作为国内广泛使用的办公协作平台,提供了丰富的API接口,支持企业进行数据集成与自动化管理。本文将介绍如何通过钉钉API实现一个连接器,用于获取企业内部的部门信息、用户信息、管理员权限等数据,帮助企业实现高效的数据管理和自动化流程。

背景与需求

随着企业规模的扩大,数据管理的复杂性不断增加。钉钉作为企业数字化办公的核心平台,存储了大量的组织架构、用户信息、权限设置等数据。通过开发一个钉钉连接器,企业可以将这些数据与内部系统进行无缝集成,实现自动化管理,提升工作效率,同时也能更好地满足企业对数据安全和合规性的要求。

钉钉API概述

钉钉提供了强大的API接口,涵盖了组织架构管理、用户管理、权限管理等多个方面。以下是本文中涉及的主要API接口及其功能:
部门管理
https://oapi.dingtalk.com/topapi/v2/department/listsub:获取部门的子部门列表。
用户管理
https://oapi.dingtalk.com/topapi/user/listid:获取部门下的用户ID列表。
https://oapi.dingtalk.com/topapi/user/listadmin:获取企业管理员列表。
https://oapi.dingtalk.com/topapi/user/get_admin_scope:获取管理员的通讯录权限范围。
权限管理
https://oapi.dingtalk.com/auth/scopes:获取当前应用的权限范围。
应用管理
https://oapi.dingtalk.com/microapp/list:获取企业微应用列表。

连接器实现

  1. 项目依赖
    在实现钉钉连接器之前,需要引入钉钉SDK的相关依赖。以下是Maven项目中所需的依赖配置:
<dependency><groupId>com.aliyun</groupId><artifactId>dingtalk</artifactId><version>2.0.14</version>
</dependency>
<dependency><groupId>com.aliyun</groupId><artifactId>alibaba-dingtalk-service-sdk</artifactId><version>2.0.0</version>
</dependency>
  1. 核心代码实现
    (1)连接器类设计
    连接器类的核心功能是通过钉钉API获取各类数据,并提供统一的接口供外部调用。以下是连接器类的实现代码:
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.*;
import com.dingtalk.api.response.*;
import com.taobao.api.ApiException;public class DingTalkConnector {private String access_token;public DingTalkConnector(String access_token) {this.access_token = access_token;}// 获取部门信息public String getDepartments(Long deptId) throws ApiException {DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");OapiV2DepartmentListsubRequest req = new OapiV2DepartmentListsubRequest();req.setDeptId(deptId);req.setLanguage("zh_CN");OapiV2DepartmentListsubResponse rsp = client.execute(req, access_token);return rsp.getBody();}// 获取部门下的用户信息public String getDepartUsers(Long deptId) throws ApiException {DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listid");OapiUserListidRequest req = new OapiUserListidRequest();req.setDeptId(deptId);OapiUserListidResponse rsp = client.execute(req, access_token);return rsp.getBody();}// 获取管理员列表public String getAdminUsers() throws ApiException {DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/listadmin");OapiUserListadminRequest req = new OapiUserListadminRequest();OapiUserListadminResponse rsp = client.execute(req, access_token);return rsp.getBody();}// 获取管理员通讯录权限范围public String getAdminScope(String userId) throws ApiException {DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/user/get_admin_scope");OapiUserGetAdminScopeRequest req = new OapiUserGetAdminScopeRequest();req.setUserid(userId);OapiUserGetAdminScopeResponse rsp = client.execute(req, access_token);return rsp.getBody();}// 获取通讯录权限范围public String getAuthScopes() throws ApiException {DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/auth/scopes");OapiAuthScopesRequest req = new OapiAuthScopesRequest();req.setHttpMethod("GET");OapiAuthScopesResponse rsp = client.execute(req, access_token);return rsp.getBody();}// 获取微应用列表public String getAppList() throws ApiException {DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/microapp/list");OapiMicroappListRequest req = new OapiMicroappListRequest();OapiMicroappListResponse rsp = client.execute(req, access_token);return rsp.getBody();}
}

(2)主程序调用
在主程序中,通过创建连接器实例并调用其方法,可以获取钉钉平台上的各类数据。以下是主程序的实现代码:

    public static void main(String[] args) {String access_token = "d117bfbf2aea32b6bdcd52d6037c93a3"; // 替换为实际的access_tokenDingTalkConnector connector = new DingTalkConnector(access_token);try {// 获取部门信息String departments = connector.getDepartments(1L);System.out.println("部门信息:" + departments);// 获取部门下的用户信息String users = connector.getDepartUsers(1L);System.out.println("部门用户信息:" + users);// 获取管理员列表String admins = connector.getAdminUsers();System.out.println("管理员列表:" + admins);// 获取管理员通讯录权限范围String adminScope = connector.getAdminScope("manager2706");System.out.println("管理员权限范围:" + adminScope);// 获取通讯录权限范围String authScopes = connector.getAuthScopes();System.out.println("通讯录权限范围:" + authScopes);// 获取微应用列表String appList = connector.getAppList();System.out.println("微应用列表:" + appList);} catch (ApiException e) {e.printStackTrace();}}
  1. 数据处理与应用
    通过连接器获取的数据可以进一步处理并应用于企业的实际业务场景。例如:
    数据同步:将钉钉平台上的部门和用户信息同步到企业内部的HR系统中,保持数据一致性。
    权限管理:根据管理员的权限范围,动态调整企业内部系统的访问权限。
    自动化流程:结合钉钉的审批流程API,实现自动化审批流程,提升工作效率。

小结

本文通过实现一个基于钉钉API的连接器,展示了如何通过编程接口获取企业内部的部门信息、用户信息、管理员权限等数据。通过这种方式,企业可以更好地整合数据资源,实现自动化管理和高效运营。未来,随着钉钉API的不断更新和扩展,连接器的功能也将进一步丰富,为企业数字化转型提供更强大的支持。

相关文章:

基于钉钉API的连接器实现:企业数据集成与自动化管理

文章目录 概要背景与需求钉钉API概述连接器实现小结 概要 在当今数字化时代&#xff0c;企业面临着海量数据的管理与整合挑战。钉钉作为国内广泛使用的办公协作平台&#xff0c;提供了丰富的API接口&#xff0c;支持企业进行数据集成与自动化管理。本文将介绍如何通过钉钉API实…...

windows server独立部署Qwen2.5-vl-7B

服务器配置信息 CPU&#xff1a;64G GPU&#xff1a;48G&#xff08;RTX 4090&#xff09; 一、使用conda下载模型 Qwen2.5-VL-7B-Instruct conda下载 conda create --name qwen python3.11 conda activate qwen 魔塔社区下载模型 pip install modelscope modelscope downl…...

nginx安装并部署前端项目【包括Linux与Windows系统】

nginx安装并部署前端项目 一、 nginx下载与安装二、 前端项目部署三、 常用命令&注意事项四、 常见问题【持续更新】 一、 nginx下载与安装 ① 下载地址&#xff1a;https://nginx.org/en/download.html ② 下载教程&#xff1a;根据不同操作系统&#xff08;Linux或者Wi…...

pytest生成报告no tests ran in 0.01s

除了基本的环境配置、用例名要以test_开头&#xff0c;有个地方是我自己忽略了&#xff0c;在执行时没有指定用例文件&#xff0c;所以没有找到。 if __name__ __main__:pytest.main(["testcases/test_demo.py","-svq", __file__, --alluredir./allure-r…...

前后端服务配置

1、安装虚拟机&#xff08;VirtualBox或者vmware&#xff09;&#xff0c;在虚拟机上配置centos(选择你需要的Linux版本)&#xff0c;配置如nginx服务器等 1.1 VMware 下载路径Sign In注册下载 1.2 VirtualBox 下载路径https://www.virtualbox.org/wiki/Downloads 2、配置服…...

一文学会:用DeepSeek R1/V3 + AnythingLLM + Ollama 打造本地化部署的个人/企业知识库,无须担心数据上传云端的泄露问题

文章目录 前言一、AnythingLLM 简介&基础应用1.主要特性2.下载与安装3.配置 LLM 提供商4.AnythingLLM 工作区&对话 二、AnythingLLM 进阶应用&#xff1a;知识增强使用三、AnythingLLM 的 API 访问四、小结1.聊天模式2.本地存储&向量数据库 前言 如果你不知道Olla…...

[学习笔记] Kotlin Compose-Multiplatform

Compose-Multiplatform 原文&#xff1a;https://github.com/zimoyin/StudyNotes-master/blob/master/compose-multiplatform/compose.md Compose Multiplatform 是 JetBrains 为桌面平台&#xff08;macOS&#xff0c;Linux&#xff0c;Windows&#xff09;和Web编写Kotlin UI…...

202406 青少年软件编程等级考试C/C++ 三级真题答案及解析(电子学会)

第 1 题 谷歌的招聘 2004年7月,谷歌在硅谷的101号公路边竖立了一块巨大的广告牌用于招聘。内容超级简单,就是一个以.com 结尾的网址,而前面的网址是一个 10位素数,这个素数是自然常数e中最早出现的 10 位连续数字。能找出这个素数的人,就可以通过访问谷歌的这个网站进入…...

如何在Vue中实现事件处理

在Vue中&#xff0c;事件处理是一个核心概念&#xff0c;它让我们能够响应用户的操作&#xff0c;比如点击按钮、输入文本等。Vue提供了一个简洁而强大的方式来绑定事件和处理事件。本文将介绍如何在Vue中实现事件处理&#xff0c;覆盖事件绑定、事件修饰符以及事件处理函数等内…...

从零到一:基于Rook构建云原生Ceph存储的全面指南(下)

接上篇&#xff1a;《从零到一&#xff1a;基于Rook构建云原生Ceph存储的全面指南&#xff08;上&#xff09;》 链接: link 六.Rook部署云原生CephFS文件系统 6.1 部署cephfs storageclass cephfs文件系统与RBD服务类似&#xff0c;要想在kubernetes pod里使用cephfs&#…...

结合实际讲NR系列2—— SIB1

这是在基站抓取的sib1的一条信令 L3MessageContent BCCH-DL-SCH-Messagemessagec1systemInformationBlockType1cellSelectionInfoq-RxLevMin: -64q-QualMin: -19cellAccessRelatedInfoplmn-IdentityListPLMN-IdentityInfoplmn-IdentityListPLMN-IdentitymccMCC-MNC-Digit: 4MC…...

git rebase 和 git merge的区别

Rebase 可使提交树变得很干净, 所有的提交都在一条线上。 Merge 则是包含所有的调试记录&#xff0c;合并之后&#xff0c;父级的所有信息都会合并在一起 Rebase 修改了提交树的历史 比如, 提交 C1 可以被 rebase 到 C3 之后。这看起来 C1 中的工作是在 C3 之后进行的&#xf…...

JavaScript字符串类型详解

目录 一、创建字符串 1. 字面量方式 2. 使用 String 构造函数 二、字符串的不可变性 三、字符串的长度与索引 四、字符串的拼接 1. 使用加号 () 2. 使用模板字符串&#xff08;ES6&#xff09; 五、字符串的常用方法 1. 获取子串 substring(start, end) slice(start…...

Hdoop之MapReduce的原理

简单版本 AppMaster: 整个Job任务的核心协调工具 MapTask: 主要用于Map任务的执行 ReduceTask: 主要用于Reduce任务的执行 一个任务提交Job --> AppMaster(项目经理)--> 根据切片的数量统计出需要多少个MapTask任务 --> 向ResourceManager(Yarn平台的老大)索要资源 --…...

数据仓库和商务智能:洞察数据,驱动决策

在数据管理的众多领域中&#xff0c;数据仓库和商务智能&#xff08;BI&#xff09;是将数据转化为洞察力、支持决策制定的关键环节。它们通过整合、存储和分析数据&#xff0c;帮助组织更好地理解业务运营&#xff0c;预测市场趋势&#xff0c;从而制定出更明智的战略。今天&a…...

可视化工作流编排参数配置完整方案设计文档

​​​一、背景及需求分析 1. 背景 在复杂的工作流程中&#xff0c;后续程序需要动态构造输入参数&#xff0c;这些参数源自多个前序程序的 JSON 数据输出。为了增强系统的灵活性和可扩展性&#xff0c;配置文件需要支持以下功能&#xff1a; 灵活映射前序程序的 JSON 数据。…...

Linux sysfs虚拟文件系统

文章目录 简介sysfs接口sysfs和procfs参考 本文拟对Linux sysfs虚拟文件系统进行简单的介绍和原理分析 简介 测试环境&#xff1a;Linux dev-PC 5.18.17-amd64-desktop-hwe #20.01.00.10 SMP PREEMPT_DYNAMIC Thu Jun 15 16:17:50 CST 2023 x86_64 GNU/Linux sysfs虚拟文件系统…...

C++ 设计模式 - 访问者模式

一&#xff1a;概述 访问者模式将作用于对象层次结构的操作封装为一个对象&#xff0c;并使其能够在不修改对象层次结构的情况下定义新的操作。 《设计模式&#xff1a;可复用面向对象软件的基础》一书中的访问者模式因两个原因而具有传奇色彩&#xff1a;一是因为它的复杂性&a…...

微软编程之C#如何学习,C#学习路线:从入门到精通

引言 C# 是一种由微软开发的面向对象编程语言&#xff0c;广泛应用于 Windows 应用程序开发、游戏开发&#xff08;Unity&#xff09;、Web 开发&#xff08;ASP.NET&#xff09;等领域。对于初学者来说&#xff0c;掌握 C# 不仅能够打开编程世界的大门&#xff0c;还能为未来…...

PromptSource官方文档翻译

目录 核心概念解析 提示模板&#xff08;Prompt Template&#xff09; P3数据集 安装指南 基础安装&#xff08;仅使用提示&#xff09; 开发环境安装&#xff08;需创建提示&#xff09; API使用详解 基本用法 子数据集处理 批量操作 提示创建流程 Web界面操作 手…...

深入理解QT的View-Model-Delegate机制和用法

文章目录 Model-View-Delegate机制Model(数据模型)设置模型属性访问元素操作元素数据排序封装好的模型View(视图)显示数据数据选择Delegate(代理)数据选择易用封装类QListWidgetQTreeWidgetQTableWidget元素拖拽代理模型参考示例Model-View-Delegate机制 Qt的View/Model/Deleg…...

【JavaScript】JavaScript 运行原理

执行上下文 JavaScript引擎会在执行代码之前&#xff0c;会在堆内存中创建一个全局对像&#xff1a;Global Object(GO) 该对象所有的作用域(scope)都可以访问&#xff0c;在浏览器中这个对象就是window&#xff1b;里面会包含Date、Array、StringNumber、setTimeout、setInte…...

力扣hot100刷题第一天

哈希 1. 两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。你可以按任意…...

数据结构-find()-判断字符串s1中是否包含字符串s2

find()库函数 #include <iostream> using namespace std;bool check(string s1,string s2){int n s1.size();int m s2.size();if(n0||m0 || n<m){return false;}if(s1.find(s2) ! string::npos){return true;}else{return false;} }int main () {string a "…...

寒假2.7

题解 web&#xff1a;[HCTF 2018]WarmUp 打开是张表情包 看一下源代码 访问source.php&#xff0c;得到完整代码 代码审计 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.p…...

【韩顺平linux】部分上课笔记整理

整理一下一些韩顺平老师上课时候的笔记 课程&#xff1a;【小白入门 通俗易懂】韩顺平 一周学会Linux linux环境&#xff1a;使用阿里云服务器 笔记参考 &#xff1a; [学习笔记]2021韩顺平一周学会Linux 一、自定义函数 基本语法 应用实例&#xff1a; 计算两个参数的和…...

Linux proc虚拟文件系统

文章目录 简介proc常用节点pid节点procfs接口参考 简介 测试环境&#xff1a;Linux dev-PC 5.18.17-amd64-desktop-hwe #20.01.00.10 SMP PREEMPT_DYNAMIC Thu Jun 15 16:17:50 CST 2023 x86_64 GNU/Linux proc虚拟文件系统是linux内核提供的一种让用户和内核内部数据结构进行交…...

IDEA中常见问题汇总

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…...

Spring Security 学习大纲

Spring Security 系统学习大纲 一、基础入门 Spring Security 概述 安全框架的核心功能&#xff08;认证、授权、攻击防护&#xff09;核心组件&#xff1a;SecurityFilterChain, UserDetailsService, AuthenticationProvider, AccessDecisionManager与 Servlet 容器的集成原理…...

本地部署模型全攻略阶段二_3---Kiln AI

Kiln AI && Ollma && DeepSeek Kil AI:简单介绍与入门教程Kiln AI简介核心功能优势与特点二、Kiln AI安装步骤下载安装创建项目和任务使用界面Fine Tuning三、资源与支持Kil AI:简单介绍与入门教程 Kiln AI简介 简述Kiln AI是什么 Kiln AI是一款开源的AI开发…...

从零开始:使用Jenkins实现高效自动化部署

在这篇文章中我们将深入探讨如何通过Jenkins构建高效的自动化部署流水线&#xff0c;帮助团队实现从代码提交到生产环境部署的全流程自动化。无论你是Jenkins新手还是有一定经验的开发者&#xff0c;这篇文章都会为你提供实用的技巧和最佳实践&#xff0c;助你在项目部署中走得…...

机器学习 - 线性回归(最大后验估计)

最大似然估计的一个缺点是当训练数据比较少时会发生过拟合&#xff0c;估计的参数可能不准确.为了避免过拟合&#xff0c;我们可以给参数加上一些先验知识. 一、先从最大似然估计的一个缺点入手 最大似然估计&#xff08;MLE&#xff09;在处理小样本数据时&#xff0c;容易发…...

Web前端开发--HTML

HTML快速入门 1.新建文本文件&#xff0c;后缀名改为.html 2.编写 HTML结构标签 3.在<body>中填写内容 HTML结构标签 特点 1.HTML标签中不区分大小写 2.HTML标签属性值中可以使用单引号也可使用双引号 3.HTML语法结构比较松散&#xff08;但在编写时要严格一点&…...

Linux | 系统调用

文章目录 Linux | 系统调用open 系统调用功能头文件和函数原型参数解释返回值示例代码 其他常用系统调用read 系统调用write 系统调用close 系统调用lseek 系统调用stat 系统调用 Linux | 系统调用 前言&#xff1a;在Linux系统中&#xff0c;系统调用是用户空间程序与内核进行…...

用easyExcel如何实现?

要使提供的 ExcelModelListener 类来解析 Excel 文件并实现批量存储数据库的功能&#xff0c;需要结合 EasyExcel 库来读取 Excel 数据。具体来说&#xff0c;可以使用 EasyExcel.read() 方法来读取 Excel 文件&#xff0c;并指定 ExcelModelListener 作为事件监听器。 下面是…...

ASP.NET Core SignalR身份验证

在需要登录才能访问的集线器类上或者方法上添加[Authorize]。也支持角色等设置&#xff0c;可以设置到Hub或者方法上。 配置好User、Role、MyDbContext、JWTSettings、IdentityHelper Program.cs using SignaIR的基本使用; using Scalar.AspNetCore; using Identity框架; us…...

查询语句来提取 detail 字段中包含 xxx 的 URL 里的 commodity/ 后面的数字串

您可以使用以下 SQL 查询语句来提取 detail 字段中包含 oss.kxlist.com 的 URL 里的 commodity/ 后面的数字串&#xff1a; <p><img style"max-width:100%;" src"https://oss.kxlist.com//8a989a0c55e4a7900155e7fd7971000b/commodity/20170925/20170…...

linux本地部署deepseek

目录 安装ollama安装open-webui网页客户端界面本地安装open-webui直接安装在裸机上安装在docker中 外部服务器安装open-webui&#xff0c;并链接本地的ollama服务直接安装在外部服务器裸机上配置systemd启动open-webui 安装在docker中 最后更新时间2024-05-24 安装ollama olla…...

ESP32_H2(IDF)学习系列-蓝牙基础学习(上)

一、简介 参考&#xff1a;[乐鑫-蓝牙] Bluetooth LE 的分层架构 Bluetooth LE 协议定义了三层软件结构&#xff0c;自上而下分别是 应用层 (Application Layer) 应用层&#xff08;Application Layer&#xff09; 主机层 (Host Layer) 控制器层 (Controller Layer) 应用…...

防御综合实验

需求一 配置vlan [SW2]int g 0/0/2 [SW2-GigabitEthernet0/0/2]port link-type access [SW2-GigabitEthernet0/0/2]port default vlan 10 [SW2-GigabitEthernet0/0/2]int g0/0/3 [SW2-GigabitEthernet0/0/3]port link-type access [SW2-GigabitEthernet0/0/3]port default vl…...

Blazor-<select>

今天我们来说说<select>标签的用法&#xff0c;我们还是从一个示例代码开始 page "/demoPage" rendermode InteractiveAuto inject ILogger<InjectPage> logger; <h3>demoPage</h3> <select multiple>foreach (var item in list){<…...

zy.21

PHP(续) PHP代码执行漏洞 1.PHP中代码漏洞的概念 代码执行漏洞就是在代码中若存在eval、assert等能将所接收的参数作为代码去执行,并且拼接的内容可被访问者控制,也就是把传入的参数给拼接进去了,造成了额外的代码执行,也就造成了代码执行漏洞。&#xff08;大概原理&#x…...

【c++】四种类型转换形式

【c】四种类型转换形式 编译时: static_cast&#xff08;静态转换&#xff09; const_cast&#xff08;去常性转换&#xff09; reinterpret_cast&#xff08;重新解释转换&#xff0c;直接转换地址&#xff09; 运行时: dynamic_cast&#xff08;动态转换&#xff0c;运行时类…...

在npm上传属于自己的包

最近在整理代码&#xff0c;上传到npm方便使用&#xff0c;所以学习了如何在npm发布一个包&#xff0c;整理写成一篇文章和大家一起交流。 1、注册npm账号 npm | Home 2、确保是登录状态 &#xff08;在包目录下&#xff0c;终端执行 npm login) 按enter键自动打开页面&…...

关系型数据库主备高可用方案对比笔记

目录标题 数据库高可用性解决方案对比Oracle Data GuardMySQL 主从复制SQL Server AlwaysOnPG Patroni 流复制达梦 DMDataWatch人大金仓 repmgr 备库故障是否影响主库&#xff1f;表格关系型数据库主备高可用方案对比笔记 数据库高可用性解决方案对比 Oracle Data Guard Orac…...

怎么查看电脑显存大小(查看电脑配置)

这里提供一个简单的方法查看 winr打开cmd 终端输入dxdiag进入DirectX 点击显示查看设备的显示内存&#xff08;VRAM&#xff09; 用这个方法查看电脑配置和显存是比较方便的 dxdiag功能 Dxdiag是Windows的DirectX诊断工具&#xff0c;其主要作用包括但不限于以下几点&#…...

深入理解指针(二)

深入理解指针&#xff08;二&#xff09; 前言&#xff1a;一、const修饰指针1.const修饰变量2.const修饰的指针变量 二、野指针1.野指针的成因(1).指针的未初始化(2).指针的越界访问(3).指针的空间释放 2.如何规避野指针(1).指针初始化(2).小心访问越界(3)指针不再使用的时候&…...

非华为电脑制作一碰传NFC贴纸

前提&#xff1a; 在笔记本上安装好华为电脑管家&#xff0c;可以在 github 上下载&#xff0c;并测试可以正常和手机或平板连接步骤&#xff1a; 1、打开电脑华为电脑管家&#xff0c;点【快捷服务】&#xff0c;记录下序列号&#xff0c;一般安装后会生成16位的序列号 2、…...

Wpf美化按钮,输入框,下拉框,dataGrid

Wpf美化按钮&#xff0c;输入框&#xff0c;下拉框&#xff0c;dataGrid 引用代码后 引用资源 <ControlTemplate x:Key"CustomProgressBarTemplate" TargetType"ProgressBar"><Grid><Border x:Name"PART_Track" CornerRadius&q…...

Office/WPS接入DeepSeek等多个AI工具,开启办公新模式!

在现代职场中&#xff0c;Office办公套件已成为工作和学习的必备工具&#xff0c;其功能强大但复杂&#xff0c;熟练掌握需要系统的学习。为了简化操作&#xff0c;使每个人都能轻松使用各种功能&#xff0c;市场上涌现出各类办公插件。这些插件不仅提升了用户体验&#xff0c;…...