首页
学习
活动
专区
圈层
工具
发布

WPF 从裸 Win 32 的 WM_Pointer 消息获取触摸点绘制笔迹

本文将告诉大家如何在 WPF 里面,接收裸 Win 32 的 WM_Pointer 消息,从消息里面获取触摸点信息,使用触摸点信息绘制简单的笔迹 开始之前必须说明的是使用本文的方法不会带来什么优势,既不能带来笔迹书写上的加速...本文唯一的作用只是让大家了解一下基础机制 需要再次说明的是,在 WPF 里面,开启了 WM_Pointer 消息之后,通过 Touch 或 Stylus 事件收到的信息也是从 WM_Pointer 消息里面过来的...大家可以尝试在 Touch 事件监听函数添加断点,通过堆栈可以看到是从 Windows 消息循环来的 可以从调用堆栈看到如下函数,此函数就是核心的 WPF 框架里面从 WM_Pointer 消息获取触摸信息的代码...Win32 消息获取的触摸信息,和从 WPF 提供的 Touch 或 Stylus 事件里面获取的触摸信息的来源是相同的 这时候也许有人会说,在 WPF 里面经过了一些封装,可能性能不如自己写的。...且别忘了消息是从 UI 线程里面获取的,无论你用不用 WPF 的事件,在 WPF 底层的解析消息获取触摸数据引发事件的代码都会跑,也就是无论你用不用,需要 WPF 干的活一点都没少。

63210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    企业微信API接口发消息实战:从0到1的技术突破之旅

    摘要:本文详细介绍了通过企业微信官方API接口实现消息发送功能的完整实战流程。首先阐述了企业微信API在数字化办公中的重要性,重点讲解了消息发送接口的应用场景。...3.实战步骤详解 3.1 获取 Access Token Access Token 是企业微信 API 的全局唯一接口调用凭据,在调用其他 API 接口时都需要使用它来进行身份验证,其有效期目前为 7200...,希望能帮助开发者在使用企业微信官方 API 接口发送消息时,更加顺利地解决遇到的各种问题,确保消息发送功能的稳定运行。...从前期准备开始,注册企业微信并创建应用,这是接入 API 的基础,获取应用的 AgentId 和 Secret 为后续操作提供了身份标识。...5.3 企业微信API关键术语速查表 (含解释+官方链接,建议收藏备用) 1. AccessToken 解释:企业微信API的“通行证”,有效期2小时,所有接口调用前需先获取。

    3.2K11

    LangGraph实战教程:构建会思考、能记忆、可人工干预的多智能体AI系统

    如果你不知道它是什么,我们将在下一节讨论它的用途。如果你已经知道了,可以跳过他。 要获取 LangSmith API 密钥,你可以访问他们的网站并创建一个帐户。...""" # 从帐户验证中检索到的客户标识符 customer_id: str # 具有自动消息聚合的对话历史记录 messages: Annotated...此函数检查对话中的最后一条消息,以决定智能体是应继续执行工具还是结束对话。...# 检查最近的消息以查看是否有工具调用 last_message = messages[-1] # 如果最后一条消息不包含任何工具调用,则智能体已完成 if not...""" # 获取最近的用户消息 user_input = state["messages"][-1] # 使用结构化LLM从消息中解析客户标识符

    1.7K30

    关于python版微信使用经验分享

    本人最近在使用python版的微信做了一些模拟操作,使用的wxpy封装好的框架api,聊天机器人接入的是图灵,其他的暂时还没有功能的接入计划。...在实施的过程中遇到了很多问题,大部分是微信api过时导致了,因为本身调用的是web微信的api,我看到git上的项目已经最近的更新时间是2017年,中间很多次微信的api调整都没更新到,比如添加好友,比如被...今天分享一下自己的使用经验和一些自己的封装方法: 朋友列表和群列表,因为会自动同步最近活跃的群,所以如果新添加的群需要重新获取一下groups。...api提供了一个search的搜索方法,使用起来稍微麻烦一些,我换了一种思路,直接下标获取好友和群。...撤回消息。这个我只是对原来的recall()方法做了简单封装,这里也见识了python的简洁性。主要是在调试模式中使用。

    1.4K40

    故障定位与 AI 结合前后端编码实践

    ,将GraphImg(调用关系图子组件)和DialogBox(大模型聊天对话框子组件)引入 GraphImg(调用关系图子组件):显示图的子组件 DialogBox(大模型聊天对话框子组件):显示对话框与大模型对话的子组件..., false); }); const nodeItem = e.item; // 获取被点击的节点元素对象 this.graph.setItemState...}); const edgeItem = e.item; // 获取被点击的边元素对象 this.graph.setItemState(edgeItem, 'click'...主要就是流式从Java端中获取结果缓存到Channel中,然后再流式提供给前端展示。 同样,这里不提供Java部分代码,网上很多实现了。...ai.go负责与Java端的大模型对话,流式获取数据 sse.go负责与前端交互,流式发送数据 ai.gosse.go ai.go package intelligent import ( "bufio

    30210

    📖《数字人开发手册:从建模到情感交互全链路》

    多帧加权算法多人交互混乱undefined→ 根因:声源定位误差>15°undefined→ 优化方案:undefined▸ 腾讯云TI-ASR定向增强undefined▸ 麦克风阵列拓扑优化 技术演进思考从某车企数字销售员项目获得的启示...轮对话)开发风险过滤中间件(敏感词/逻辑矛盾检测) 对话管理系统设计教育数字人场景架构:graph TBA[学生提问] --> B(知识点抽取)B --> C{知识图谱查询}C --> D[标准答案生成...文化敏感问题undefined→ 案例:少数民族礼仪误判undefined→ 优化方案:建立地域文化特征库动态加载本地化策略文件 认知科学跨界思考从心理学实验获得的启示:恐怖谷效应突破undefined...节点负载不均衡根因分析:undefined▸ 视频分析服务未开启定时预热undefined▸ 负载均衡策略未考虑区域性流量特征解决方案:部署定时任务预热模型(减少冷启动)采用地域亲和性调度策略 架构设计哲学思考从智慧城市项目总结的教训...每周伦理小组会议敏感场景AB测试运营阶段:月度影响评估报告用户反馈情感分析看板伦理红线清单: ✅ 允许:情绪安抚、信息查询 ❌ 禁止:医疗诊断、投资建议 ⚠️ 限制:法律咨询(需人工复核) 终极技术哲学思考从某宗教场所导引数字人争议获得的启示

    68720

    Multi-Agent全面爆发!一文详解多智能体核心架构及LangGraph框架

    通过定义节点和边,可以精确控制 Agent 的执行逻辑,包括条件分支、循环和并行执行等 LangGraph 能够无缝集成各种外部工具(如搜索引擎、数据库、API 等),让 Agent 能够获取实时信息、...(历史对话、检索到的文档、工具执行结果等),在各个节点中共享,且每个节点都可以修改。...) LangGraph提供的专用Reducer函数,能智能的合并消息列表,不只是简单的追加,add_messages能够保证消息列表正确被累计,常用在多轮对话系统中,主要逻辑包括: 追加新消息:如果新消息的...覆盖旧消息:如果新消息的 ID 与列表中某条现有消息的 ID 相同,则用新消息替换掉旧消息。用于处理工具调用中间结果或更新流式生成的临时消息。...,是能够连贯对话的核心能力,LangGraph中提供了短期记忆和长期记忆。

    2.6K62

    AIOps系列 | Agent 入门实战

    最近在学习《AIOps》相关的知识课程,为了让学习有一定的收获,所以将其进行了总结分享,如果你恰好也需要,很荣幸能帮到你。...它允许 AI 从过去的交互中学习,并在未来的任何会话中调用这些知识。 核心特点: 会话间持久化:信息可以长期存储,即使用户关闭了对话,下次打开时依然可用。...规模更大:可以存储海量的对话历史、用户偏好、系统知识等。 最后 在实际应用中,两者往往是协调工作的: 长期记忆 负责从海量历史数据中检索出与当前问题最相关的片段。.../v1" ) # 定义状态类,用于在工作流中传递数据 # messages: 存储对话历史的消息列表,使用 add_messages 函数进行累积 class State(TypedDict):...这个函数检查最后一条消息是否包含工具调用: - 如果包含工具调用,则转到工具执行节点 - 如果不包含,则结束对话 Args: state: 包含消息历史的状态对象

    53011

    微软365“设备代码钓鱼”风暴来袭:无需密码,黑客秒控企业邮箱

    受害者通常会收到来自看似内部IT部门、微软支持团队,甚至是合作方的邮件或 Teams 消息,内容大同小异:“检测到您的账户存在异常活动,请立即完成设备验证以防止服务中断。”...消息中附带一个标准微软短链:**https://aka.ms/devicelogin**(真实有效的微软设备登录入口),并提供一组8位字母数字混合的“设备代码”,例如 XK92-MPQ7。..."❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:# 示例:读取受害者最近10封邮件...API。”...芦笛总结道,“企业必须从‘被动防御’转向‘主动狩猎’。”五、行业反思:便利与安全的天平该如何摆?设备代码钓鱼的流行,暴露出一个深层矛盾:现代身份协议在追求用户体验的同时,是否牺牲了安全可见性?

    28310

    AI智能体开发实战:17种核心架构模式详解与Python代码实现

    # 校验所需的 API key 是否齐全 for key in ["NEBIUS_API_KEY", "LANGCHAIN_API_KEY", "TAVILY_API_KEY"]:..., "帮我写一个计算斐波那契数列的Python函数", "最近OpenAI有什么新发布吗?"...基本流程: 交互阶段:智能体与用户对话 记忆检索:处理新查询时同时检索两种记忆 增强生成:基于检索到的记忆生成个性化回复 记忆更新:分析对话内容,更新两种记忆存储 核心是"记忆制造者",负责从对话中创建新记忆...") memory_graph.add_edge("update", END) memory_agent = memory_graph.compile() 测试记忆能力的关键是多轮对话: #...这种记忆架构让智能体从"健忘的工具"进化为"记住用户的伙伴",是构建长期AI关系的关键技术。 图记忆:世界模型的构建 前面的记忆架构能记住对话和事实,但对于复杂的实体关系网络理解还不够深入。

    1.2K10

    salesforce零基础学习(八十五)streaming api 简单使用(接近实时获取你需要跟踪的数据的更新消息状态)

    Streaming API用于制定一套你想要接收的数据的条件,并且指定哪些事件(create/update/delete/undelete)情况下符合的数据推送一条通知到客户端,一条通知就是事件触发的结果发送到渠道的消息...Streaming API使用的推送技术,即服务器端会主动给订阅的客户端发送通知信息,而不是客户端去调用服务器端返回消息,使用Bayeux协议和CometD用于长轮询。...使用Streaming API实现订阅者接收符合条件的推送消息可以三步走: 1.创建PushTopic 去除一下PushTopic神奇的面纱,简单的来说,PushTopic是一个标准的sObject,封装了以下的字段...ReplayId接收不同的事件消息进行重播,主要有三种ReplayId 赋值 -2:订阅者连接渠道后,接收所有的事件,包括订阅时前24小时的事件消息; -1:订阅者连接渠道后,接收订阅以后的事件消息;...LastReferencedDate : 存储当前用户最近一次查看的这条记录的时间戳 Name:绑定的PushTopic,以/u/开始,命名为/u/pushtopic Name OwnerId : Streaming

    2.2K80

    .NET+AI | MEAI | 上下文压缩(7)

    Chat Reducer:让 AI 对话突破上下文限制 一句话简介 Microsoft.Extensions.AI 的 Chat Reducer 通过智能压缩策略,在保持对话质量的前提下,有效控制上下文长度...核心价值 ✅ 突破限制:解决 LLM 上下文窗口限制(如 GPT-4 的 8K/32K tokens) ✅ 成本优化:减少输入 token,显著降低 API 调用成本 ✅ 性能提升:缩短上下文长度,加快模型推理速度...MessageCountingChatReducer(计数压缩器) 通过限制消息数量来控制对话长度。...核心特性: 始终保留第一条系统消息 保留最近 N 条用户/助手消息 自动排除函数调用相关消息 零延迟,无额外 API 成本 适用场景: 客服机器人(只关注最近几轮) 快速问答系统 技术支持(问题独立...,不需复杂摘要 性能与成本对比 对比项 MessageCounting Summarizing 额外 API 调用 ✅ 无 ❌ 每次摘要 1 次 延迟 ✅ 0ms ⚠️ 1-3 秒 语义完整性 ⚠️

    16010
    领券