QTP和Clipboard(剪切板)完美组合解决QQ聊天记录获得的问题

简介:
问题和背景:
         需要得到QQ2009中聊天记录无法获取的问题,由于QQ整个软件都是直画的,用QTP的SPY根本就无法获得QQ聊天对话框内容,因此也无法判断发送的聊天记录是否在聊天历史记录中有显示。为此非常困顿,某日和曾爷诉苦的过程中,突然想到剪切版,如果内取得剪切版内容那么我在打开聊天窗体的时候,在历史聊天记录中来个Ctrl+c 问题不就解决了吗。听上去感觉是很土的八路做法,不过关键是抗战能够胜利即可。照着这个思路顺利的解决了这个问题,特将代码和过程贴如下
         C#,提供DLL解决取得剪切版内容的问题:
         首先需要新建类库工程, ClipboardHelp。需要引用System.Forms等库若干,需要新建窗体类,因为主要使用窗体消息机制来实现的。
         原代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace ClipboardHelp
{
    public partial class ClipboardForm : Form
    {
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern IntPtr SetClipboardViewer(IntPtr hwnd);
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern IntPtr ChangeClipboardChain(IntPtr hwnd, IntPtr hWndNext);
        [System.Runtime.InteropServices.DllImport("user32")]
        private static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);
 
        const int WM_DRAWCLIPBOARD = 0x308;
        const int WM_CHANGECBCHAIN = 0x30D;
 
        IntPtr NextClipHwnd;
        private String _cText ;
        public string cText
        {
            get { return this._cText; }
            set { this._cText = value; }
        }
 
 
        public ClipboardForm()
        {
            InitializeComponent();
        }
 
        private void ClipboardForm_Load(object sender, EventArgs e)
        {
            NextClipHwnd = SetClipboardViewer(this.Handle); 
        }
        protected override void WndProc(ref System.Windows.Forms.Message m)
        {
            switch (m.Msg)
            {
                case WM_DRAWCLIPBOARD:
                    //将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口
                    SendMessage(NextClipHwnd, m.Msg, m.WParam, m.LParam);
                    IDataObject iData = Clipboard.GetDataObject();
                    //检测文本
                    if (iData.GetDataPresent(DataFormats.Text) | iData.GetDataPresent(DataFormats.OemText))

本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/283263,如需转载请自行联系原作者
相关文章
|
C++ Python Perl
终于解决VScode中python/C++打印中文全是乱码的问题了
终于解决VScode中python/C++打印中文全是乱码的问题了
1323 0
终于解决VScode中python/C++打印中文全是乱码的问题了
|
安全 C++
Spdlog日志库的使用,支持文件名/行号/函数名的log打印输出
Spdlog日志库的使用,支持文件名/行号/函数名的log打印输出
6403 0
Maven之阿里云镜像仓库配置
方式一:全局配置可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点: <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.
|
5月前
|
数据采集 人工智能 安全
开源赋能双碳:MyEMS 能源管理系统的架构与实践价值
在全球碳中和趋势与“双碳”目标推动下,能源管理趋向精细化与智能化。MyEMS是一款基于Python开发的开源能源管理系统,具备灵活适配、功能全面的优势,覆盖工厂、建筑、数据中心等多元场景。系统支持能源数据采集、分析、可视化及设备管理、故障诊断、AI优化控制等功能,提供“监测-分析-优化”闭环解决方案。遵循“国家+省级+接入端”三级架构,MyEMS在重点用能单位能耗监测中发挥关键作用,助力实现能源效率提升与政策合规。开源模式降低了技术门槛,推动“双碳”目标落地。
192 0
|
5月前
|
数据采集 存储 算法
MyEMS 开源能源管理系统:基于 4G 无线传感网络的能源数据闭环管理方案
MyEMS 是开源能源管理领域的标杆解决方案,采用 Python、Django 与 React 技术栈,具备模块化架构与跨平台兼容性。系统涵盖能源数据治理、设备管理、工单流转与智能控制四大核心功能,结合高精度 4G 无线计量仪表,实现高效数据采集与边缘计算。方案部署灵活、安全性高,助力企业实现能源数字化与碳减排目标。
147 0
|
4月前
|
机器学习/深度学习 人工智能 算法
AI 基础知识从 0.4 到 0.5—— 计算机视觉之光 CNN
本文系统回顾了计算机视觉的发展历程,从早期基于手工特征的传统方法,到深度学习的崛起与卷积神经网络(CNN)的广泛应用,并通过数学原理、代码示例与可视化手段,全面解析了卷积操作的本质与CNN的架构设计。
414 33
AI 基础知识从 0.4 到 0.5—— 计算机视觉之光 CNN
|
10月前
|
自然语言处理 算法 数据可视化
《一文吃透!NLTK与SpaCy,自然语言处理的神兵利器》
在自然语言处理(NLP)领域,NLTK和SpaCy是Python中两大利器。NLTK功能全面、语料库丰富,适合学术研究与教学;SpaCy则以高效、准确和易用性著称,专为工业级应用设计。两者各有所长,可根据需求选择或结合使用,助力开发者实现强大的NLP功能。
367 9
|
7月前
|
存储 安全 大数据
网安工程师必看!AiPy解决fscan扫描数据整理难题—多种信息快速分拣+Excel结构化存储方案
作为一名安全测试工程师,分析fscan扫描结果曾是繁琐的手动活:从海量日志中提取开放端口、漏洞信息和主机数据,耗时又易错。但现在,借助AiPy开发的GUI解析工具,只需喝杯奶茶的时间,即可将[PORT]、[SERVICE]、[VULN]、[HOST]等关键信息智能分类,并生成三份清晰的Excel报表。告别手动整理,大幅提升效率!在安全行业,工具党正碾压手动党。掌握AiPy,把时间留给真正的攻防实战!官网链接:https://www.aipyaipy.com,解锁更多用法!
|
3月前
|
JavaScript Java 关系型数据库
2025版基于springboot的企业办公用品采购管理系统
本系统旨在优化企业办公用品采购流程,通过自动化、标准化管理,提升采购效率,降低运营成本。结合Spring Boot、Vue、Java与MySQL技术,实现需求申请、审批、采购、入库全流程数字化,助力企业实现高效、智能的采购管理,增强市场竞争力。
|
人工智能 自然语言处理 API
手把手教你搭建微信公众号AI助手
【8月更文挑战第6天】手把手教你搭建微信公众号AI助手
1057 2
手把手教你搭建微信公众号AI助手