[C#] 纯文本查看 复制代码#region Win32 API 方法

#region SendMessage 重载

[DllImport("user32.dll", CharSet = CharSet.Unicode)]

private static extern bool SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, StringBuilder lParam);

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]

private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wparam, IntPtr lparam);

[DllImport("user32.dll", CharSet = CharSet.Unicode)]

private static extern int SendMessage(IntPtr hWnd, uint Msg, out int wParam, out int lParam);

#endregion

private const uint WM_GETTEXTLENGTH = 0x000E;

private const uint WM_GETTEXT = 0x000D;

private const uint EM_GETSEL = 0xB0;

[DllImport("user32.dll", ExactSpelling = true)]

private static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll", ExactSpelling = true)]

private static extern IntPtr GetFocus();

[DllImport("user32.dll", SetLastError = true)]

private static extern int GetWindowThreadProcessId(int handle, out int processId);

[DllImport("user32", SetLastError = true, ExactSpelling = true)]

private static extern int AttachThreadInput(int idAttach, int idAttachTo, bool fAttach);

[DllImport("kernel32.dll")]

private static extern int GetCurrentThreadId();

#endregion

private string GetTextFromWin32Api()

{

//获取活动窗口的控件hWnd

int activeWinPtr = GetForegroundWindow().ToInt32();

int activeThreadId = 0;

int processId;

activeThreadId = GetWindowThreadProcessId(activeWinPtr, out processId);

int currentThreadId = GetCurrentThreadId();

if (activeThreadId != currentThreadId)

AttachThreadInput(activeThreadId, currentThreadId, true);

IntPtr activeCtrlId = GetFocus();

//获取全部文本长度

int textlength = (int)SendMessage(activeCtrlId, WM_GETTEXTLENGTH, IntPtr.Zero, IntPtr.Zero) + 1;

//Have any text at all?

if (textlength > 0)

{

//Get selection

int selstart;

int selend;

SendMessage(activeCtrlId, EM_GETSEL, out selstart, out selend);

StringBuilder sb = new StringBuilder(textlength);

SendMessage(activeCtrlId, WM_GETTEXT, (IntPtr)textlength, sb);

//Slice out selection

string value = sb.ToString();

sb.Clear();

if ((value.Length > 0) && (selend - selstart > 0) && (selstart < value.Length) && (selend < value.Length))

return value.Substring(selstart, selend - selstart);

}

//失败返回null

return null;

}

pdf屏幕取词 android,===C#屏幕取词Demo热键版鼠标划词版【含语音版】【附源码】===...相关推荐

  1. 【Android App】给三维魔方贴图以及旋转动画讲解和实战(附源码和演示视频 超详细必看)

    需要源码请点赞关注收藏后评论区留言私信~~~ 一.给三维物体贴图 除了位置坐标.颜色向量和矩阵向量,着色器还支持声明材质坐标和纹理采样器. 其中材质坐标表示物体表面摊平后的二维空间,纹理采样器表示采用 ...

  2. Android小项目之--前台界面与用户交互的对接 进度条与拖动条(附源码)

    都知道水果公司(苹果)是己尊重用户体验著称的公司,其设计的产品人性化十足,不得不令后来者赞叹,竞相模仿.iphone的成功就是其典型的案例,做为其移动系统的死对头 Google 想要在市场上分得一杯羹 ...

  3. Android开发之6.0动态权限工具类(高德地图官方扣出来的)附源码

    感觉这个权限申请类写的比较好. 使用方法:activity直接继承就可以了. 看下mainactivity.java package com.qfy.permissiondemo;import and ...

  4. 【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)

    需要源码请点赞关注收藏后评论区留言私信~~~ 一.开启定位功能 手机定位分为卫星定位和网络定位两大类. (1)卫星定位 卫星定位服务由几个全球卫星导航系统提供. 卫星定位的原理是根据多颗卫星与导航芯片 ...

  5. android触摸效果,Android开发进阶:仿MIUI12控件触摸反馈效果(下沉+倾斜)附源码...

    简单模仿了下MIUI12里控件的触摸反馈效果,转载请标明出处 效果简述 按压控件内圈区域,控件整体缩小,高度降低(阴影消失) 按压内圈 按压控件外圈区域,依据触摸点控件以中心为支点,向触摸点倾斜 按压 ...

  6. 【Android App】人脸识别中使用Opencv比较两张人脸相似程度实战(附源码和演示 超详细)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 一.比较两张人脸的相似程度 直方图由一排纵向的竖条或者竖线组成,横轴代表数据类型,纵轴代表数据多少. 图像直方图经常应用于特征提取.图像匹配等方面. ...

  7. 【Android App】实战项目之仿微信的私信和群聊App(附源码和演示视频 超详细必看)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 手机最开始用于通话,后来增加了短信功能,初步满足了人与人之间的沟通需求.然而短信只能发文字,于是出现了能够发图片的彩信,但不管短信还是彩信,资费都太贵 ...

  8. 【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 与传统的影视行业相比,诞生于移动互联网时代的短视频是个全新行业,它制作方便又容易传播,一出现就成为大街小巷的时髦潮流. 各行各业的人们均可通过短视频展 ...

  9. 【Android App】实战项目之使用OpenCV人脸识别实现找人功能(附源码和演示 超详细)

    需要全部代码请点赞关注收藏后评论区留言私信~~~ 人脸识别自古有之,每当官府要捉拿某人时,便在城墙贴出通缉告示并附上那人的肖像.只是该办法依赖人们的回忆与主观判断,指认结果多有出入,算不上什么先进. ...

最新文章

  1. PostgreSQL备份之手工备份(Low Level API)
  2. 网络推广外包专员浅析货拉拉坠车事件后宣布整改增加录音录像功能
  3. SVG Authoring Guidelines[转]
  4. bzoj5368 [Pkusc2018]真实排名
  5. Windows环境下MinGW/gcc安装和环境配置
  6. CV:传统视觉知识—机器视觉系统的基础知识(机器视觉三要素+典型的工业机器视觉系统五大组件)
  7. camel 多个 to_具有多个查询参数的Camel CXF服务
  8. 第一百零九期:双十一光棍节调试一个商城必备功能,Java Springboot开源秒杀系统
  9. java网络接口_java网络编程之识别示例 获取主机网络接口列表
  10. 排序算法:快速排序算法实现及分析(递归形式和非递归形式)
  11. neo4j 节点与关系
  12. 5G手机江湖:一场卡位战,一位“关键先生”,一个“王者”
  13. jquery.form.js ajax提交上传文件
  14. 【leetcode】91. Decode Ways A-Z的字母表示1-26的数字,反向破解多少种字符串的可能性...
  15. Linux高性能网络:协程系列01-前言
  16. atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较
  17. python自动交易 缠论_缠论自动交易系统实现了
  18. 商城前端模板_新零售时代如何玩转微信商城
  19. 大学生网页制作之美食篇html+css静态网页设计
  20. 2023年软考高项论文秘籍大讲堂|开篇

热门文章

  1. python3.6.4安装教程-centos7中安装python3.6.4的教程
  2. python工程师薪资坑吗-最新Python面试经验总结,避免采坑的进来
  3. python输入任意多个成绩-Python 实现输入任意多个数,并计算其平均值的例子
  4. python基础知识整理-Python 重点知识整理(基于Python学习手册第四版)
  5. python读取excel表格-Python读取Excel单元格的内容
  6. es中的AllocationService
  7. docker-compose常用命令
  8. 8月21日至8月27日技术积累
  9. 接口测试入门软件及使用注意事项
  10. C/C++如何整行读入字符串?