VB6獲取IE8的位址列的URL資訊

2022-02-20 13:24:07 字數 1378 閱讀 4664

這是個老梗了,也沒什麼技術含量。因為自從接觸linux之後,windows上我所知道的那一點api基本上都忘光了。所以這樣的博文可以當做是備忘,說不定有天還能用的到。

windows上想要獲取瀏覽器的位址列資訊,基本思路是列舉瀏覽器的子窗體,然後獲取hwnd(handle of window),最後使用sendmessage & wm_gettext(或者 getwindowtext大體上沒什麼區別)。好,基於這樣的事實,我們來做個簡單的實現。

1.獲取ie視窗

這個很簡單通過findwindow就可以做到,前提是我們已經知道了ie8的classname(視窗的類名稱)是「ieframe」。這樣的話,用findwindow這樣的函式,就可以直接獲取。當然,如果你是像獲取chrome這類瀏覽器,請先在spy++中抓取視窗看看類名稱。

2.通過列舉得到位址列子窗體

使用spy++可以很輕鬆地得到ie8的子窗體分布情況,請看下圖:

下面兩個我就不列出來了(因為編輯這個太累了),我們需要獲取的是這樣乙個路徑:ieframe->workerw->rebarwindow32->address band root->edit。

到此為止基本上問題分析就已經結束了,直接上**吧(敘述真累人)。

3.**

private

function getie8url() as

string

dim hwnd as

long

'default 0, which eq top-hwnd.

dimlpsz1

dim url as

string * 2048

dim length as

long

foreach lpsz1 in array("

ieframe

", _

"workerw

", _

"rebarwindow32

", _

"address band root

", _

"edit")

hwnd = findwindowex(hwnd, 0&, lpsz1, vbnullstring)

next

length = sendmessage(hwnd, wm_gettext, 2048&, byval

url)

getie8url = left

(url, length)

end function

如上所示,獲取ie8位址列url資訊的函式就實現了。我沒有寫函式宣告,和容錯處理,因為這樣的函式是在確定ie8在執行的情況下執行的(當然你可以改寫)。

c 獲取IE位址列中的URL

一直在想測試使用者行為分析的時候,通過程式 本地服務程式 獲取ie上的url位址,對當前的url分析,並結合我的情況分析我的行為方式。現在瀏覽 的時候偶然看到了幾行 不知道原始出處,就暫時 記錄下來。name 的值 屬性configurationfile dynamic base dynamicba...

獲取url位址列的引數

獲取url位址列的引數 var url window.location.href var index url.substring url.lastindexof 1 1 window.location.href 整個url字串 在瀏覽器中就是完整的位址列 2 window.location.prot...

如何獲取位址列 號前面的引數和位址列最後的引數

外部跳轉vue專案時自帶引數,例如 http 1.外部進入的url會放在vue專案編譯以後自動加 其中帶的引數在 之前 那麼我們只能用js的方法來獲取 var url window.location.href 獲取當前url var dz url url.split 0 獲取 之前的字串 var c...