GetWindowLong/SetWindowLong
hermeskid吧
全部回复
仅看楼主
level 11
hermeskid 楼主
2016年02月14日 08点02分 1
level 11
hermeskid 楼主
LONG GetWindowLong(HWND hWnd,int nlndex);
hWnd
目标窗口的句柄。它可以是窗口句柄及间接给出的窗口所属的窗口类。
nlndex
需要获得的相关信息的类型。指定要获得值的大于等于0的值的偏移量。有效值的范围从0到额外窗口内存空间的字节数一4例如,若指定了12位或多于12位的额外类存储空间,则应设为第三个32位整数的索引位8。要获得任意其他值,指定下列值之一:
GWL_EXSTYLE(-20) 获得扩展窗口风格。
GWL_HINSTANCE(-6) 获得应用实例的句柄。
GWL_HWNDPARENT(-8) 如果父窗口存在,获得父窗口句柄。
GWL_ID(-12) 获得窗口标识。
GWL_STYLE(-16) 获得窗口风格。
GWL_USERDATA(-21) 获得与窗口有关的32位值。每一个窗口均有一个由创建该窗口的应用程序使用的32位值。
GWL_WNDPROC(-4) 获得窗口过程的地址,或代表窗口过程的地址的句柄。必须使用CallWindowProc函数调用窗口过程。
hWnd参数为对话框句柄时,还可用下列值:
DWL_DLGPROC(4) 获得对话框过程的地址,或一个代表对话框过程的地址的句柄。必须使用函数CallWindowProc来调用对话框过程。
DWL_MSGRESULT(0) 获得在对话框过程中一个消息处理的返回值。
DWL_USER(8) 获得应用程序私有的额外信息,例如一个句柄或指针。
返回值
如果函数成功,返回值是所需的32位值;如果函数失败,返回值是0。若想获得更多错误信息请调用 GetLastError函数。
2016年02月14日 08点02分 2
level 11
hermeskid 楼主
LONG SetWindowLong(HWND hWnd,int nlndex,LONG dwNewLong);
hWnd
窗口句柄及间接给出的窗口所属的类。
nlndex
指定将设定的大于等于0的偏移值。有效值的范围从0到额外类的存储空间的字节数减4:例如若指定了12或多于12个字节的额外窗口存储空间,则应设索引位8来访问第三个4字节,同样设置0访问第一个4字节,4访问第二个4字节。要设置其他任何值,可以指定下面值之一:
GWL_EXSTYLE -20 设定一个新的扩展风格。
GWL_HINSTANCE -6 设置一个新的应用程序实例句柄。
GWL_ID -12 设置一个新的窗口标识符。
GWL_STYLE -16 设定一个新的窗口风格。
GWL_USERDATA -21 设置与窗口有关的32位值。每个窗口均有一个由创建该窗口的应用程序使用的32位值。
GWL_WNDPROC -4 为窗口过程设定一个新的地址。
GWL_HWNDPARENT -8   改变子窗口的父窗口,应使用SetParent函数。
当hWnd参数标识了一个对话框时,也可使用下列值:
DWL_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT) (值:4) 设置对话框过程的新地址。
DWL_MSGRESULT 0 设置在对话框过程中处理的消息的返回值。
DWL_USER DWLP_DLGPROC + sizeof(DLGPROC) (值:8) 设置的应用程序私有的新的额外信息,例如一个句柄或指针。
dwNewLong
指定的替换值。dwNewLong中可以使用以下一些列表控件的专用风格:
以下四种风格决定控件的外观,同时只可以选择其中一种:
LVS_ICON 大图标显示
LVS_SMALLICON 小图标显示
LVS_LIST 列表显示
LVS_REPORT 详细报表显示
LVS_EDITLABELS 结点的显示字符可以被编辑,对于报表风格来讲可编辑的只为第一列。LVS_SHOWSELALWAYS 在失去焦点时也显示当前选中的结点
LVS_SINGLESEL 同时只能选中列表中一项
返回值
如果函数成功,返回值是指定的32位整数的原来的值。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
2016年02月14日 08点02分 3
level 11
hermeskid 楼主
使用GetwindowLong GWL_WNDPROC来获取窗口过程
用IsWindowUnicode(hWnd)判断是不是Unicode的,如果是的,就用GetWindowLongW,不是Unicode就用GetWindowLongA
对于其他进程,可以使用钩子植入dll,再调用GetwindowLong,参考
http://blog.csdn.net/skyremember/article/details/3124381
2016年02月14日 08点02分 4
1