易语言处理浏览器按键消息源码
系统结构:处理窗口OCX消息,钩子接口,取消OCX处理,CreWeb,SetWindowsHookEx,GetModuleHandleA,CallNextHookEx,GetFocus,GetParent,SendMessageMsg,UnhookWindowsHookEx,GetCurrentThreadId,GetClassName,CLSIDFromString,AtlAxWinInit,AtlAxGetControl,CreateWindowEx,RtlMoveMemory,MoveWindow,
======OCX
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 处理窗口OCX消息
| |
| |------ 钩子接口
| |
| |------ 取消OCX处理
| |
| |
======窗口程序集1
| |
| |------ _窗口1_创建完毕
| |
| |------ CreWeb
| |
| |------ _窗口1_将被销毁
| |
| |------ _窗口1_尺寸被改变
| |
| |------ _按钮1_被单击
| |
| |------ _按钮2_被单击
| |
| |------ _按钮3_被单击
| |
| |
======调用的Dll
| |
| |---[dll]------ SetWindowsHookEx
| |
| |---[dll]------ GetModuleHandleA
| |
| |---[dll]------ CallNextHookEx
| |
| |---[dll]------ GetFocus
| |
| |---[dll]------ GetParent
| |
| |---[dll]------ SendMessageMsg
| |
| |---[dll]------ UnhookWindowsHookEx
| |
| |---[dll]------ GetCurrentThreadId
| |
| |---[dll]------ GetClassName
| |
| |---[dll]------ CLSIDFromString
| |
| |---[dll]------ AtlAxWinInit
| |
| |---[dll]------ AtlAxGetControl
| |
| |---[dll]------ CreateWindowEx
| |
| |---[dll]------ RtlMoveMemory
| |
| |---[dll]------ MoveWindow
调用的DLL命令:
.DLL命令 SetWindowsHookEx, 整数型, "user32", "SetWindowsHookExA"
.参数 idHook, 整数型
.参数 lpfn, 子程序指针
.参数 hmod, 整数型
.参数 dwThreadId, 整数型
.DLL命令 GetModuleHandleA, 整数型, "kernel32", "GetModuleHandleA"
.参数 lpModuleName, 整数型
.DLL命令 CallNextHookEx, 整数型, "user32", "CallNextHookEx"
.参数 hhk, 整数型
.参数 nCode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 GetFocus, 整数型, "user32", "GetFocus"
.DLL命令 GetParent, 整数型, "user32", "GetParent"
.参数 hWnd, 整数型
.DLL命令 SendMessageMsg, 整数型, "user32", "SendMessageA"
.参数 hWnd, 整数型
.参数 Msg, 整数型
.参数 wParam, 整数型
.参数 lParam, MSG
.DLL命令 UnhookWindowsHookEx, 逻辑型, "user32", "UnhookWindowsHookEx"
.参数 hhk, 整数型
.DLL命令 GetCurrentThreadId, 整数型, "kernel32", "GetCurrentThreadId"
.DLL命令 GetClassName, 整数型, "user32", "GetClassNameA", , 为指定的窗口取得类名 以字节数表示的类名长度;排除最后的空中止字符。零表示出错。会设置GetLastError
.参数 hwnd, 整数型, , 欲获得类名的那个窗口的句柄
.参数 lpClassName, 文本型, , 随同类名载入的缓冲区。预先至少必须分配nMaxCount+1个字符
.参数 nMaxCount, 整数型, , 由lpClassName提供的缓冲区长度;
.DLL命令 CLSIDFromString, 整数型, "ole32.dll", "CLSIDFromString"
.参数 lpsz, 字节集
.参数 pclsid, 字节集
.DLL命令 AtlAxWinInit, 整数型, "atl.dll", "AtlAxWinInit"
.DLL命令 AtlAxGetControl, 整数型, "atl.dll", "AtlAxGetControl"
.参数 h
.参数 x, 对象
.DLL命令 CreateWindowEx, 整数型, "user32", "CreateWindowExA"
.参数 dwExStyle, 整数型
.参数 lpClassName, 文本型
.参数 lpWindowName, 文本型
.参数 dwStyle, 整数型
.参数 x, 整数型
.参数 y, 整数型
.参数 nWidth, 整数型
.参数 nHeight, 整数型
.参数 hWndParent, 整数型
.参数 hMenu, 整数型
.参数 hInstance, 整数型
.参数 lpParam, 整数型
.DLL命令 RtlMoveMemory, , "kernel32.dll", "RtlMoveMemory"
.参数 Destination, MSG
.参数 Source, 整数型
.参数 Length, 整数型
.DLL命令 MoveWindow, 整数型, "user32", "MoveWindow", , 改变指定窗口的位置和大小。顶级窗口可能受最大或最小尺寸的限制,那些尺寸优先于这里设置的参数 非零表示成功,零表示失败
.参数 hwnd, 整数型, , 欲移动窗口的句柄
.参数 x, 整数型, , 窗口新的左侧位置
.参数 y, 整数型, , 窗口新的顶部位置
.参数 nWidth, 整数型, , 窗口的新宽度
.参数 nHeight, 整数型, , 窗口的高宽度
.参数 bRepaint, 整数型, , 如窗口此时应重画,则设为TRUE(非零)。FALSE(零)则表明应用程序会自己决定是否重画窗口;
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。