实时获取鼠标指向连接的url(200分)

  • 主题发起人 主题发起人 未来107
  • 开始时间 开始时间

未来107

Unregistered / Unconfirmed
GUEST, unregistred user!
bho例程中能实时获取鼠标指向的连接的url(指的是在浏览器中,当鼠标移向某一链接时,
在自己的应用程序中即时获取该连接的url)。请教各位朋友,这如何变成实现。希望能
讲的具体些,最好配和源代码。
 
应该在OnStatusTextChange里写代码就可以了,因为你鼠标移上去时一般StatusText就是
你的URL,当然,是不是URL你还得判断一下。
我猜的,没试过。
 
同意xianjun,不过具体怎么识别,有不少有源码的控件可以参考,比如:DreamMemo
 
思路如下:
1.得到鼠标所在位置的句柄。
2.取出句柄内的值(如:Tlable:'www.delphibbs.com')
3.分析句柄内的值是否为url

若需要相关资料email索取,aliang.quiet@163.net
 
各路朋友,能讲的具体些吗?
 
下面的代码是用来获取鼠标当前的窗口句柄,所属类别及获取里面的内容(对密码*也有用呀!):

procedure TForm1.Timer1Timer(Sender: TObject);
var
className: PChar;
atCursor: TPoint;
hWndMouseOver: HWND;
text: PChar;
L:integer;
begin
GetCursorPos(atCursor);
hWndMouseOver:=WindowFromPoint(atCursor);
GetMem(ClassName, 100);
getmem(text,255);
try
GetClassName(hWndMouseOver, ClassName, 100);
GetWindowText(hwndmouseover,text,L);
Label_ClassName.Caption:='所属类名: '+String(ClassName);
Edit1.Text:=String(text);
finally
FreeMem(ClassName);
FreeMem(Text);
end;
end;
end.
 

试写了一个,只能应用在windows应用程序中,
能得到大部控件的句柄,但是Tlabel没有句柄得不到! :(

[red]不知道金山词爸是怎么做到的(又能取label,又能取网页中的内容),
估计使用了比较低级的方法。[/red]


procedure TForm1.Timer1Timer(Sender: TObject);
var
pos:Tpoint;
ali:Thandle;
len:integer;
pcha:pchar;
begin
GetCursorPos(pos);
ali:=WindowFromPoint(pos);
len:=GetWindowTextLength(ali)+1;
GetMem(pcha,len);
try
GetWindowText(ali,pcha,len);
Form1.Caption:=pcha;

//在这里判断是滞为url
finally
FreeMem(pcha);
end;

end;  
 
各路朋友:
不知道你们有否试过,你的源代码只能获得窗体的标题。我需要的是鼠标指向一个超级链接
(在各类浏览器中)程序立即获得该超级链接的url。
 
朋友们到底这功能能不能在delphi中实现阿!
 
试试这个:
在你的窗体上放一个WebBrowser和一个Edit及一个Button.在Button的单击事件中加入:
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('www.sohu.com');
end;
在WebBrowser的StatusTextChange事件中加入:
procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
begin
Edit1.Text:=Text;
end;
然后自己做一些判断工作吧
 
ln_jinsong:
你的方法可行,但是控制权在主页的手中,有些主页已经强行
把statusText写死了!
 
我需要的是在其他浏览器中如ie,Opera,TE,
Netscape等,当鼠标指向他们的超链接时即时
获得该超链接的url.
好像超链接没有句柄,是不是?
 
超链接没有提供直接的句柄调用!要想对其操作,只有先解析HTML文档源码,然后分离出超级链接
的字符串,然后检测鼠标事件,一旦鼠标所指的字符串为解析出的超级链接,即显示相应URl。
 
1、如何获得ie以及以ie为核心的浏览器、以及Opera,TE,
Netscape等浏览器正在访问的网页地址

2、如何取出鼠标所指的超级链接的标题。利用hook行不行?


 
真的无人能解吗?
 
1:取得IE的接口IWEBBROWSER2,可以用SHEL的编程,在www.codeguru.com上有一个关于这样的例子
包括了事件的响应。
2:你可以试试IWEBBROWSER2,StatusTextChange这个方法。
3:通过IWEBBROWSER2->GetDocument可以得到IHTMLDocument2接口,也许会对你有帮助。
以上只是想法,没有实践!
 
谢谢各位!
 
后退
顶部