如果是用的IE8,可以用以下代码禁止更改标题。仍可以用外部程序调用WinSetTitle、SetWindowText一类的函数更改IE窗口标题。
#include <WinAPI.au3>
Local $hWnd = WinGetHandle("百度一下,你就知道")
If $hWnd = 0 Then Exit
Local $iPid = WinGetProcess($hWnd)
Local $hProcess = _WinAPI_OpenProcess(0x28, 0, $iPID)
DllCall("Kernel32.dll", "bool", "WriteProcessMemory", "handle", $hProcess, "ptr", 0x3ED78CAB, "word*", 0x11EB, "long", 2, "long*", 0)
_WinAPI_CloseHandle($hProcess)
WinSetTitle($hWnd, "", "此窗口标题不变")
IE浏览器设置自身的窗口标题是通过调用SendMessageW函数发送WM_SETTEXT消息实现的,这段代码没有挂钩SendMessage函数,而是挂钩了SendMessage函数的调用方地址0x3ED78CAB。 |