簡體   English   中英

有沒有辦法用用戶定義的名稱打開一個 IE window。 當同樣的 URL 打開時,已經打開的 IE window 來到前台

[英]Is there a way to open an IE window with a user-defined name. When same URL opened, already opened IE window comes to foreground

這是我打算實施的要求。 有一個 window 應用程序顯示了一些圖標,這些圖標將我帶到不同的 web 站點。 當我單擊其中一個圖標時,它應該打開一個 IE window 和 append 自定義名稱。

因此,在單擊網站圖標后打開任何網站之前,我想檢查是否已經打開了具有該自定義名稱的 IE window,如果是,則將已打開的 window 帶到前台。 如果沒有,請打開一個新的 IE window。

我檢查了發布的各種問題,這些問題與我希望實現的目標相關,但不知何故無法正確解決。 下面是我的嘗試。

For Each e In shellWins
    If InStr(1, e.GetProperty("IEWindowName"), namedWindow, CompareMethod.Text) <> 0 Then
        hWnd = e.HWND   
        myIE = e
    End If
Next

If hWnd == -1
    Dim p As New Process
        Dim psi As New ProcessStartInfo(IEPath, webSiteURL)
        p.StartInfo = psi  'Trying to open a new IE window
        p.Start()                   

        For Each ie In shellWins
            If ie.hwdn = p.MainWindowHandle Then
                ie.PutProperty("IEWindowName", namedWindow)         
            End If
        Next
End if 

Else
myIE.BringToForeground()

這有時有效,有時無效。 有沒有更好的方法呢?

在什么情況下不起作用? 當它不起作用時是否會拋出任何錯誤? 如果有,請告訴我們詳細的錯誤信息以及發生在哪一行。

此外,您可以嘗試比較 url 來檢查網站是否已經在 IE 中打開,如下所示:

Sub Main()
        Dim shellWins As SHDocVw.ShellWindows
        Dim explorer As SHDocVw.InternetExplorer

        shellWins = New SHDocVw.ShellWindows
        Dim SQuery As String = "https://www.example.com/"
        For Each explorer In shellWins
            If explorer.Application.Name = "Internet Explorer" And explorer.LocationURL.Contains(SQuery) Then
                explorer.BringToForeground()
            End If
        Next

        shellWins = Nothing
        explorer = Nothing
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM