26048608982lp-ai/wechat-file-sender/SKILL.md
# wechat-file-sender Send files via Windows WeChat client using RPA automation. No external dependencies — pure PowerShell + Windows Automation API. **Security:** filePath must be an absolute path. contactName is validated to 50 chars max, Chinese/alphanumeric/underscore/space only. No network calls, no data exfiltration. ## Setup Requirements: Windows OS with WeChat desktop client installed. ``` clawhub install wechat-file-sender --dir <your-skills-dir> ``` ## Usage ### Command line ```b
npx skillsauth add openclaw/skills 26048608982lp-ai/wechat-file-senderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Send files via Windows WeChat client using RPA automation. No external dependencies — pure PowerShell + Windows Automation API.
Security: filePath must be an absolute path. contactName is validated to 50 chars max, Chinese/alphanumeric/underscore/space only. No network calls, no data exfiltration.
Requirements: Windows OS with WeChat desktop client installed.
clawhub install wechat-file-sender --dir <your-skills-dir>
node scripts/send-file-to-wechat.js "<filePath>" "<contactName>"
向wechat发送文件给[联系人]:文件路径发微信文件给[联系人]:文件路径scripts/send-file.ps1)Full source — audit it before running:
param(
[string]$filePath,
[string]$contactName
)
Add-Type -AssemblyName UIAutomationClient
Add-Type -AssemblyName UIAutomationTypes
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName PresentationCore
# Step 0: Check file exists
if (-not (Test-Path $filePath)) {
Write-Host "[ERROR] File not found"
exit 1
}
# Step 1: Find WeChat window (class Qt51514QWindowIcon)
$root = [System.Windows.Automation.AutomationElement]::RootElement
$allWindows = $root.FindAll([System.Windows.Automation.TreeScope]::Children,
(New-Object System.Windows.Automation.PropertyCondition(
[System.Windows.Automation.AutomationElement]::ControlTypeProperty,
[System.Windows.Automation.ControlType]::Window)))
$wechatWindow = $null
foreach ($w in $allWindows) {
if ($w.Current.ClassName -match 'Qt51514QWindowIcon') {
$wechatWindow = $w
break
}
}
if (-not $wechatWindow) {
Write-Host "[ERROR] WeChat not found"
exit 1
}
# Win32 API for window focus
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class WinAPI {
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")]
public static extern bool IsIconic(IntPtr hWnd);
public const int SW_MINIMIZE = 6;
public const int SW_RESTORE = 9;
}
"@
$hwnd = [IntPtr]$wechatWindow.Current.NativeWindowHandle
if ([WinAPI]::IsIconic($hwnd)) {
[WinAPI]::ShowWindow($hwnd, [WinAPI]::SW_RESTORE)
}
[WinAPI]::SetForegroundWindow($hwnd)
Start-Sleep 1
# Step 2: Open search (Ctrl+F)
[System.Windows.Forms.SendKeys]::SendWait("^f")
Start-Sleep 1
# Step 3: Type contact name (via clipboard — SendKeys can't type Chinese)
[System.Windows.Forms.Clipboard]::Clear()
Start-Sleep 0.3
[System.Windows.Forms.Clipboard]::SetText($contactName)
Start-Sleep 0.5
[System.Windows.Forms.SendKeys]::SendWait("^v")
Start-Sleep 2
# Step 4: Select first result and enter chat
[System.Windows.Forms.SendKeys]::SendWait("{UP}")
Start-Sleep 0.5
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
Start-Sleep 1
# Step 5: CLIPBOARD ACTIVATION TRICK
# When staying in the same window, clipboard may not activate.
# Minimize -> set clipboard -> restore = clipboard activates
[WinAPI]::ShowWindow($hwnd, [WinAPI]::SW_MINIMIZE)
Start-Sleep 0.5
$fc = New-Object System.Collections.Specialized.StringCollection
$fc.Add((Resolve-Path $filePath))
[System.Windows.Forms.Clipboard]::Clear()
Start-Sleep 0.5
[System.Windows.Forms.Clipboard]::SetFileDropList($fc)
Start-Sleep 1
[WinAPI]::ShowWindow($hwnd, [WinAPI]::SW_RESTORE)
Start-Sleep 0.5
[WinAPI]::SetForegroundWindow($hwnd)
Start-Sleep 0.5
# Step 6: Paste and send
[System.Windows.Forms.SendKeys]::SendWait("^v")
Start-Sleep 1
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
Write-Host "[OK] File sent to: $contactName"
.ps1 scripts by default. Bypass only affects this specific script file, not system policy.tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。