C#怎么获取屏幕上的文字信息 怎么编程实现直接或间接的 获取 屏幕上面的文字信息 :如桌面上的 “我的电脑”,“回收站”……! 如果屏幕上有进程在运行!怎么获取其窗体上的文字信息 如:IE浏览器菜单上的 文字 信息 ,“文件”“编辑”……有什么好的方法没有? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个问题好像有很多人问过啊,建立lz去搜索一下,那里肯定有你需要的答案,等待接分感谢lz http://topic.csdn.net/u/20090724/17/88dc00a8-5912-4e6a-bf6b-3d2a0942acf4.html?39558接分 通过遍历获取窗体句柄enumwindows,enumchildwindows参考 原理,就是hook 系统几个画文字的api,然后,然桌面,或指定的位置重画,api一执行,内容就来了! http://www.cnblogs.com/del/archive/2008/02/28/1085432.htmlFindWindow( lpClassName, {窗口的类名} lpWindowName: PChar {窗口的标题}): HWND; {返回窗口的句柄; 失败返回 0}//FindWindowEx 比 FindWindow 多出两个句柄参数:FindWindowEx( Parent: HWND; {要查找子窗口的父窗口句柄} Child: HWND; {子窗口句柄} ClassName: PChar; {} WindowName: PChar {}): HWND;{如果 Parent 是 0, 则函数以桌面窗口为父窗口, 查找桌面窗口的所有子窗口;如果 是 HWND_MESSAGE, 函数仅查找所有消息窗口;子窗口必须是 Parent 窗口的直接子窗口;如果 Child 是 0, 查找从 Parent 的第一个子窗口开始;如果 Parent 和 Child 同时是 0, 则函数查找所有的顶层窗口及消息窗口.}--------------------------------------------------------------------------------//测试1: 试着找找新建程序主窗口的句柄var h: HWND;begin {现在我们知道窗口的标题是: Form1、窗口的类名是: TForm1} h := FindWindow('TForm1', 'Form1'); ShowMessage(IntToStr(h)); {656180; 这是随机, 每次启动窗口肯定不一样} {假如不知道类名} h := FindWindow(nil, 'Form1'); ShowMessage(IntToStr(h)); {656180} {假如不知道标题名} h := FindWindow('TForm1', nil); ShowMessage(IntToStr(h)); {656180} {其实这个窗口的句柄不就是 Self.Handle 吗} ShowMessage(IntToStr(Handle)); {656180}end;--------------------------------------------------------------------------------//测试2: 找计算器窗口的句柄(先打开计算器)var h: HWND;begin {如果不是简体中文系统, 这样可能不灵} h := FindWindow(nil, '计算器'); ShowMessage(IntToStr(h)); {1508334} {最好这样, 但你得提前知道计算器窗口的类名是: SciCalc} h := FindWindow('SciCalc', nil); ShowMessage(IntToStr(h)); {1508334}end; 楼主是要 屏幕取词吗 ??这个问题我刚研究了。你只要找一个 2005版金山词霸的 dll 然后在网上搜一下就可以了网上的代码都可以用 dll 也有 。 关于c#的一些疑问,估计很简单 若何获得 DataTable 对应的表结构 判断EXCEL是否有该表 decimal的使用,急。在线等 求《C#实用编程百例》一书 一个初学者的问题 ??? 如何获取网页中的email C#中关于调用Dll的实现?各位大虾急!!! 加载窗体出错,求教高手 貨櫃裝箱數計算? 新人问 白痴问题 关于正则 数组 也没有将java代码转换成C#代码的工具。
感谢lz
接分
enumwindows,enumchildwindows
参考
FindWindow(
lpClassName, {窗口的类名}
lpWindowName: PChar {窗口的标题}
): HWND; {返回窗口的句柄; 失败返回 0}//FindWindowEx 比 FindWindow 多出两个句柄参数:
FindWindowEx(
Parent: HWND; {要查找子窗口的父窗口句柄}
Child: HWND; {子窗口句柄}
ClassName: PChar; {}
WindowName: PChar {}
): HWND;
{
如果 Parent 是 0, 则函数以桌面窗口为父窗口, 查找桌面窗口的所有子窗口;
如果 是 HWND_MESSAGE, 函数仅查找所有消息窗口;
子窗口必须是 Parent 窗口的直接子窗口;
如果 Child 是 0, 查找从 Parent 的第一个子窗口开始;
如果 Parent 和 Child 同时是 0, 则函数查找所有的顶层窗口及消息窗口.
}
--------------------------------------------------------------------------------//测试1: 试着找找新建程序主窗口的句柄
var
h: HWND;
begin
{现在我们知道窗口的标题是: Form1、窗口的类名是: TForm1}
h := FindWindow('TForm1', 'Form1');
ShowMessage(IntToStr(h)); {656180; 这是随机, 每次启动窗口肯定不一样} {假如不知道类名}
h := FindWindow(nil, 'Form1');
ShowMessage(IntToStr(h)); {656180} {假如不知道标题名}
h := FindWindow('TForm1', nil);
ShowMessage(IntToStr(h)); {656180} {其实这个窗口的句柄不就是 Self.Handle 吗}
ShowMessage(IntToStr(Handle)); {656180}
end;
--------------------------------------------------------------------------------//测试2: 找计算器窗口的句柄(先打开计算器)
var
h: HWND;
begin
{如果不是简体中文系统, 这样可能不灵}
h := FindWindow(nil, '计算器');
ShowMessage(IntToStr(h)); {1508334} {最好这样, 但你得提前知道计算器窗口的类名是: SciCalc}
h := FindWindow('SciCalc', nil);
ShowMessage(IntToStr(h)); {1508334}
end;
这个问题我刚研究了。你只要找一个 2005版金山词霸的 dll
然后在网上搜一下就可以了网上的代码都可以用 dll 也有 。