IE 自動完成保存的密碼無法直接導出。網頁密碼框(``)並非標準 EDIT 控件,無法通過 `FindWindow`/`GetWindowText` 獲取。必須通過 WebBrowser 控件的 COM 接口 訪問 DOM 解析表單元素。
利用註冊表 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ 添加自定義右鍵菜單項。菜單項指向一個 HTML/HTA 文件,包含腳本代碼。用戶右鍵點擊密碼框選擇菜單,腳本在隱藏窗口運行,可訪問當前文檔 DOM。
Contexts (DWORD):顯示條件位掩碼:
0x1 DEFAULT 0x2 IMAGE 0x4 CONTROL (表單元素) 0x8 TABLE 0x10 TEXTSELECT 0x20 ANCHOR 0x40 UNKNOWN密碼框屬於 CONTROL,設置
Contexts = 0x4。
var win = external.menuArguments; // 獲取當前 IE 窗口
var doc = win.document;
var frames = doc.frames;
var pwd = "";
// 遍歷所有框架及表單元素
for (var i = 0; i < frames.length; i++) {
var fDoc = frames[i].document;
var inputs = fDoc.all.tags("INPUT");
for (var j = 0; j < inputs.length; j++) {
if (inputs[j].type == "password") {
pwd += "Frame " + i + ": " + inputs[j].name + " = " + inputs[j].value + "\n";
}
}
}
// 主文檔
var inputs = doc.all.tags("INPUT");
for (var j = 0; j < inputs.length; j++) {
if (inputs[j].type == "password") {
pwd += "Main: " + inputs[j].name + " = " + inputs[j].value + "\n";
}
}
if (pwd != "") {
// 發送給宿主應用(需配合註冊表 COM 服務器或寫文件/剪貼板)
alert("找到密碼:\n" + pwd);
// clipboardData.setData("Text", pwd); // 或寫入文件
}