Mar*_*rtW 2 vb6 hook winapi message
我们最大的旧版VB6应用程序中包含一些代码,允许其他应用程序(包括一些dotNET)通过Windows消息将ID传递给它 - 然后VB6应用程序使用此ID在常规Windows中加载条目形成.在用户登录并进行身份验证后添加消息挂钩,并在用户注销后将其删除.
Public Sub HookClaimFinderCall()
lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub UnhookClaimFinderCall()
Dim temp As Long
If gHW <> 0 Then temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
End Sub
Private Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_FINDCLAIM Then
MasterFindClaim lParam
End If
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function
Run Code Online (Sandbox Code Playgroud)
但是,这有两个问题.第一个涉及Visual Studio 6.如果正在调试代码,并且出现错误以显示"继续结束调试帮助"对话框,则按End会立即退出Visual Studio(丢失任何未保存的更改).如果尚未激活消息挂钩,则不会发生这种情况.是什么导致这种情况,有什么办法可以阻止它注释掉加载钩子的代码?
其次,如果用户退出应用程序而没有正确登出(通过任何方式),消息挂钩会发生什么?
我希望我在上面的所有条款都正确......
| 归档时间: |
|
| 查看次数: |
1125 次 |
| 最近记录: |