You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WinForm应用如何向WhatsApp Desktop聊天附加并发送文件

问题原因

WhatsApp官方公开的URI协议whatsapp://仅支持phone、text两个核心参数,没有提供attachment相关的官方传参规则,所以你自定义添加的参数不会被客户端识别生效。

可行实现方案

方案1:使用WhatsApp Business API(适合正规商用场景)

如果你的应用是商用场景,直接对接官方的WhatsApp Business API,支持发送文本、图片、文档等各类附件,调用稳定且合规,不需要依赖本地安装的WhatsApp Desktop客户端。

方案2:通过UI自动化实现本地客户端操作(适合个人自用场景)

如果你必须依赖本地安装的WhatsApp Desktop客户端实现功能,可以用UI自动化的方式模拟手动操作步骤:

  • 先用你原有的URI协议打开对应联系人的聊天窗口
  • 调用Windows UI自动化接口(比如System.Windows.Automation命名空间下的类,或者第三方库FlaUI)定位到聊天窗口的附件上传按钮
  • 模拟点击附件按钮后,自动在文件选择对话框中填入你选中的文件路径,模拟确认操作
  • 最后定位发送按钮模拟点击完成发送

示例代码参考:

// 需先通过NuGet安装FlaUI.UIA3包
using FlaUI.Core;
using FlaUI.Core.AutomationElements;
using FlaUI.UIA3;

// 1. 打开对应联系人聊天窗
Process.Start($"whatsapp://send?phone={numero}&text={text}");
// 等待窗口加载,可根据设备性能调整时长
Thread.Sleep(3000);

// 2. 查找已启动的WhatsApp进程
var app = Application.Attach("WhatsApp");
using var automation = new UIA3Automation();
var mainWindow = app.GetMainWindow(automation);

// 3. 定位附件按钮,不同版本WhatsApp控件ID可能有差异,可通过FlaUInspect工具自行查看调整
var attachButton = mainWindow.FindFirstDescendant(cf => cf.ByAutomationId("AttachButton")).AsButton();
attachButton.Click();

// 4. 选择对应附件类型,此处以文档为例
var docButton = mainWindow.FindFirstDescendant(cf => cf.ByName("文档")).AsButton();
docButton.Click();

// 5. 处理系统文件选择对话框,填入目标文件路径
Thread.Sleep(1000);
var fileDialog = app.GetAllTopLevelWindows(automation).First(w => w.Name == "打开");
var filePathInput = fileDialog.FindFirstDescendant(cf => cf.ByControlType(FlaUI.Core.Definitions.ControlType.Edit)).AsTextBox();
filePathInput.Text = txtRuta.Text;
var openButton = fileDialog.FindFirstDescendant(cf => cf.ByName("打开(O)")).AsButton();
openButton.Click();

// 6. 等待文件加载完成后点击发送
Thread.Sleep(2000);
var sendButton = mainWindow.FindFirstDescendant(cf => cf.ByAutomationId("SendButton")).AsButton();
sendButton.Click();

方案3:使用WhatsApp Web封装实现

可以通过内嵌WebView2控件加载WhatsApp Web,完成登录后模拟调用页面JS接口实现文件上传发送,不需要依赖本地桌面客户端。

注意:UI自动化和Web模拟方案强依赖WhatsApp客户端、网页端的版本迭代,官方更新布局、控件ID后逻辑可能失效,不适合商用生产环境大规模使用。

内容的提问来源于stack exchange,提问作者user14351562

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:15:04