有一些赢得OS API调或这样会让一个获得文本从屏幕上

不是通过获得快照,然后做OCR,但通过API

这个想法是让的文本是下鼠标用户点和点击次数。

这是如何的工具,如巴比伦(http://www.babylon.com)和1击的答复(http://www.answers.com/main/download_answers_win.jsp)和许多其他工作。

可以有人点我要正确的方向,获得这种功能?

有帮助吗?

解决方案

有没有直接的方法来获得的文本。应用程序可以呈现无数个不同的方式文本(Windows API的是其中之一),它的渲染后 - 它只是一堆像素

但你可以尝试的方法是找到窗口直属鼠标,并试图从他们那里得到的文本。这会工作在最标准的Windows控件(标签,文本框等)的罚款不会对互联网浏览器的工作,虽然。

我想你能做的最好是使应用程序,使得它支持以上述方式为许多不同的(公用的)的控制成为可能。

其他提示

您可以得到与GetWindowText函数API每个窗口的文本。鼠标位置可以与GetCursorPos API被发现。

在Delphi中,你可以使用此功能(荣誉彼得下)

Function ChildWindowUnderCursor: HWND;
Var
  hw, lasthw: HWND;
  pt, clientpt: TPoint;
Begin
  Result := 0;
  GetCursorPos( pt );
  // find top-level window under cursor
  hw := WindowFromPoint( pt );
  If hw = 0 Then Exit;

  // look for child windows in the window recursively
  // until we find no new windows
  Repeat
    lasthw := hw;
    clientpt := Pt;
    Windows.ScreenToClient( lasthw, clientpt );
    // Use ChildwindowfromPoint if app needs to run on NT 3.51!
    hw := ChildwindowFromPointEx( lasthw, clientpt, CWP_SKIPINVISIBLE );
  Until hw = lasthw;
  Result := hw;
End;

的问候,结果 利芬

窗户已经用于辅助工具,如屏幕阅读器的盲目。(较新的版本也是用于其他目的,如UI自动化和测试。) 它的工作与许多应用程序,即使大多数浏览器,这使他们自己的内容没有使用标准的控制。它不会与所有应用,但它可以使用的文字下鼠标在大多数情况下。

当前API被称为 Windows自动化API.描述如何做到这一点在一般范围的一个堆栈溢出回答,因此我只是提供了一个链接到文件。

老API,是广泛提供当这个问题被第一发布是所谓的 Microsoft活动的无障碍API.作为与现代Api,范围在这里太宽泛,可以详细说明。

注意,文件为这两个Api写既为开发建筑辅助工具(如屏幕阅读器)以及开发人员用于编写的应用程序,希望能与那些无障碍的工具。

基本的想法是,一个辅助工具得到COM接口提供的目标应用程序的窗口(s),并且它可以使用这些接口,以图控制和他们的文本以及它们如何是相关的两个逻辑上和空间。应用程序的组成的标准Windows控制大都是自动的支持。应用与自定义用户界面实现必须做的工作,提供这些接口。幸运的是,重要的,喜欢的主流浏览器,必须完成的工作,以支持这些接口。

我认为其称为剪贴板。我要去打赌这些计划注入单击,双击和键盘事件,然后那里复制的项目进行检查。另外,他们刚开了Windows文本控件的Jiggy,并抢得内容的方式。我怀疑,由于安全问题,这些工具在Vista上运行同样的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top