gpt4 book ai didi

c# - 确定任何打开的 IE 窗口的 URL

转载 作者:行者123 更新时间:2023-11-30 17:15:52 25 4
gpt4 key购买 nike

有人知道如何获取计算机上任何打开的 IE 进程的 URL 吗?我根本不需要操作 IE 实例——只需获取有关当前加载页面的信息。

谢谢!

最佳答案

这似乎是一种实现方式(代码是 Visual Basic,抱歉,但它显示了原理):

Private Declare Function GETWINDOWTEXT Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Integer, ByVal lpString As String, ByVal cch As Integer) As Integer
Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Integer) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
Private Declare Ansi Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
Private Const WM_GETTEXT As Short = &HDS
Private Const WM_GETTEXTLENGTH As Short = &HES

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim hwnd As Integer = FindWindowEx(0, 0, "IEFrame", vbNullString)

If Not hwnd = 0 Then
SetForegroundWindow(hwnd)

Dim Worker As Integer = FindWindowEx(hwnd, 0, "WorkerW", vbNullString)
Dim ToolBar As Integer = FindWindowEx(Worker, 0, "ReBarWindow32", vbNullString)
Dim ComboBoxEx As Integer = FindWindowEx(ToolBar, 0, "ComboBoxEx32", vbNullString)

Dim txtLength As Long = SendMessage(ComboBoxEx, WM_GETTEXTLENGTH, CInt(0), CInt(0)) + 1 ' Get Length Of Text
Dim txtBuff As String = Space(txtLength)
Dim URL As Long = URL = SendMessage(ComboBoxEx, WM_GETTEXT, txtLength, txtBuff) 'Get URL From ComboBoxEx

MsgBox(txtBuff)
End If
End Sub

基本上,您要找到 IE 窗口,然后向下钻取以找到键入 URL 的组合框,然后获取其中键入的任何字符串。显然这不是一个完美的方法(如果有人覆盖了 URL 但没有按 Enter,您将不会知道)。

关于c# - 确定任何打开的 IE 窗口的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7732705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com