如何根据hwnd句柄,获取hInstance句柄
有经验的老手都知道
me.hwnd(窗口句柄) 和 app.hInstance(称:实例句柄 或 实体句柄) 是两个不同的句柄
同一个应用程序下 取得的结果不一样
现在我碰到一个问题
我已经知道了其他名部程序的hwnd ,请问,如何转换为 hInstance
HOOK函数 (SetWindowsHookEx) 的第三个参数就是hInstance类型的,只有找到hInstance才能钩住外部程序
我这样的思路谁帮我解决一下问题,谢谢
[解决办法]
Option Explicit'¡¾²Ù×÷ϵͳ¡¿'Win9X: Yes'WinNT: Yes'¡¾ËµÃ÷¡¿' ´ÓÖ¸¶¨´°¿ÚµÄ½á¹¹ÖÐÈ¡µÃÐÅÏ¢'¡¾·µ»ØÖµ¡¿' Long£¬ÓÉnIndex¾ö¶¨¡£Áã±íʾ³ö´í¡£»áÉèÖÃGetLastError'¡¾ÆäËü¡¿'¡¾²ÎÊý±í¡¿' hwnd ----------- Long£¬ÓûΪÆä»ñÈ¡ÐÅÏ¢µÄ´°¿ÚµÄ¾ä±ú' nIndex --------- Long£¬ÓûÈ¡»ØµÄÐÅÏ¢£¬¿ÉÒÔÊÇÏÂÊöÈκÎÒ»¸ö³£Êý£º' GWL_EXSTYLE' À©Õ¹´°¿ÚÑùʽ' GWL_STYLE' ´°¿ÚÑùʽ' GWL_WNDPROC' ¸Ã´°¿ÚµÄ´°¿Úº¯ÊýµÄµØÖ·' GWL_HINSTANCE' ÓµÓд°¿ÚµÄʵÀýµÄ¾ä±ú' GWL_HWNDPARENT' ¸Ã´°¿ÚÖ®¸¸µÄ¾ä±ú?²»ÒªÓÃSetWindowWordÀ´¸Ä±äÕâ¸öÖµ' GWL_ID' ¶Ô»°¿òÖÐÒ»¸ö×Ó´°¿ÚµÄ±êʶ·û' GWL_USERDATA' º¬ÒåÓÉÓ¦ÓóÌÐò¹æ¶¨' DWL_DLGPROC' Õâ¸ö´°¿ÚµÄ¶Ô»°¿òº¯ÊýµØÖ·' DWL_MSGRESULT' ÔÚ¶Ô»°¿òº¯ÊýÖд¦ÀíµÄÒ»ÌõÏûÏ¢·µ»ØµÄÖµ' DWL_USER' º¬ÒåÓÉÓ¦ÓóÌÐò¹æ¶¨Private Const GWL_HINSTANCE = (-6)Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Sub Command1_Click() Dim lngP As Long lngP = GetWindowLong(Me.hwnd, GWL_HINSTANCE) Me.Caption = "±¾´°ÌåµÄhInstance£½" & CStr(lngP)End Sub