麻烦用vbs写一段获取某个ie句柄或者是当前网页的URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了麻烦用vbs写一段获取某个ie句柄或者是当前网页的URL相关的知识,希望对你有一定的参考价值。

请用vbs写一段获取某个网页的网页地址。
已知某ie句柄的变量是Hwnd
现在如何获取这个hwnd的url

<script Language="vbscript">
dim url
function geturl()
url=window.location.href
document.getElementById("ur").innerText=url
end function
</script>
<input type="button" value="获取" onclick="geturl()"> 当前网页地址为:<span id="ur"></span>

下面一段是转帖过来的,应用在VB上,通过取得ie句柄获得ie的url,希望对你有帮助:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Dim dWinFolder As SHDocVw.ShellWindows
Set dWinFolder = New SHDocVw.ShellWindows
Dim objIE1 As SHDocVw.InternetExplorer
Dim ActID As Long
Dim myUrl as String
ActID = FindWindow("IEFrame", vbNullString)

For Each objIE1 In dWinFolder
'过滤掉windows资源管理器的窗口
  If InStr(1, objIE1.FullName, "IEXPLORE.EXE", vbTextCompare) <> 0 Then
'是否是当前正在浏览的IE窗口
If objIE1.hWnd = ActID Then
'执行程序
myUrl = objIE1.LocationURL '取得地址
End If
End If
Next
参考技术A 建议你分析一下迅雷.
看它的IE右键菜单在注册表的什么地方
还有的是在注册表中分析那个菜单调用的.html
注意external.menuArguments.document是获取点击该菜单的页面句柄.知道了这个就好办事了.其它的就是普通的客户端脚本与网页的配合了.
多思考一下.
祝你成功
不过如果系统屏蔽了WSH,或者禁止了FSO那么就搞不定了
参考技术B Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Dim dWinFolder As SHDocVw.ShellWindows
Set dWinFolder = New SHDocVw.ShellWindows
Dim objIE1 As SHDocVw.InternetExplorer
Dim ActID As Long
Dim myUrl as String
ActID = FindWindow("IEFrame", vbNullString)

For Each objIE1 In dWinFolder

vbs获取当前活动窗口标题

如题,用下列代码并没成功获取
===========================
wscript.sleep 5000
Set objWord = CreateObject("Word.Application")
Set colTasks = objWord.Tasks

For Each objTask in colTasks
If objTask.Visible Then
Wscript.Echo objTask.Name
Exit For
End If
Next
objWord.Quit
======================================
请高人指教

参考技术A 函数功能:该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控制,则拷贝控制的文本。但是,GetWindowTeXt不能接收在其他应用程序中的控制文本。

函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);

参数:

hWnd:带文本的窗口或控制的句柄。

IpString:指向接收文本的缓冲区的指针。

nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。

返回值:如果函数成功,返回值是拷贝的字符串的字符个数,不包括中断的空字符;如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。

函数不能返回在其他应用程序中的编辑控制的文本。

备注:如果目标窗口属于当前进程,GetWindowText函数给指定的窗口或控制发送WM_GETTEXT消息。如果目标窗口属于其他进程,并且有一个窗口标题,则GetWindowTeXt返回窗口的标题文本,如果窗口无标题,则函数返回空字符串。本回答被提问者采纳

以上是关于麻烦用vbs写一段获取某个ie句柄或者是当前网页的URL的主要内容,如果未能解决你的问题,请参考以下文章

(求思路)autoit3或者VBS怎么么实现点击IE内的TABLE表格中的链接

怎样用PHP或者js获取网页中某个部分的值

我想在一台电脑上开两个网页,并且两个网页能同步操作。比如点击某个地方,另一个网页同时也点击那个地方

怎么用VBS脚本点击网页中的某个按钮(这个按钮没有元素ID)

如何用vb.net 调用VBS文件?

关于使用vbs操作excel的问题