能力值:
( LV3,RANK:30 )
2 楼
若能抓图,则我的OllyDbg插件又多了一个功能,呵呵
能力值:
( LV2,RANK:10 )
3 楼
PrintWindow()
能力值:
( LV3,RANK:30 )
4 楼
Windows NT: Pointer to a null-terminated character string that specifies either "DISPLAY" for a display driver, or the name of a printer driver, which is usually "WINSPOOL".
"WINSPOOL" :是这个吗?
能力值:
( LV2,RANK:10 )
5 楼
能力值:
( LV3,RANK:30 )
6 楼
谢谢,我看看
能力值:
( LV2,RANK:10 )
7 楼
看李易峰的回答,另外如果是opengl或者dx绘制的图形,设置过最小化窗口active=false,那是截不到图的。
能力值:
( LV3,RANK:30 )
8 楼
OD插件中实现已知一个窗口句柄的抓图,不考虚OpenGL等或窗口属性本来就是DisVisable的情况,能对大多数情况适用就可以了
能力值:
( LV2,RANK:10 )
9 楼
听说printwindow可以,不过很麻烦
能力值:
( LV3,RANK:30 )
10 楼
感谢二位前辈的无私帮助,我已经搜索到一个参考代码了,也给二位前辈看看:
http://www.programfan.com/CLUB/showtxt.asp?id=281515
能力值:
( LV3,RANK:30 )
11 楼
但该函数的调用有点麻烦,我现在把它包装一下,方便大家使用:
#define PW_CLIENTONLY 0x00000001
//WINUSERAPI BOOL WINAPI PrintWindow(IN HWND hwnd, IN HDC hdcBlt, IN UINT nFlags);
typedef BOOL(FAR WINAPI *PWFUNC)(HWND, HDC, UINT);
BOOL PrintWindow(IN HWND hwnd, IN HDC hdcBlt, IN UINT nFlags)
{
HMODULE hmod = LoadLibrary("user32.dll");
PWFUNC PrintWindow = (PWFUNC)GetProcAddress(hmod, "PrintWindow");
BOOL bReturn = PrintWindow(hwnd, hdcBlt, nFlags);
FreeLibrary(hmod);
return bReturn;
}
能力值:
( LV3,RANK:30 )
12 楼
指的是VC6下调用麻烦,其它的未知
能力值:
( LV3,RANK:30 )
13 楼
夜班回家,验证了一下,发现不能对控件如:按钮,编辑框等进行截图,截到的只是等大黑块,列表控件与树控件则正常
这个不知前辈们有何解决之法?
能力值:
( LV2,RANK:10 )
14 楼
你是直接对按钮的handle截图吧?如果对整个窗体截图应该是正常的。还有就是你的插件使用的不是mfc而是别的比如wpf的组件,wpf是dx绘制而不是gdi的。
办法我没研究过,对窗体截图,然后割取出控件所在的位置图片是最方便的了。
能力值:
( LV3,RANK:30 )
15 楼
谢谢你多次指点,在下不才,只会用也用惯了MFC,WPF只下载过只个例程,没深入过
要知道我做的是OllyDbg的插件,若在OllyDbg当前断点或当前eip前后的几行代码中获取到窗口句柄,还要回溯到最顶层窗口,才能对之正常截图,然后对按钮等子控件进行红框闪烁以指示该窗口句柄对应在的控件,但被调试程序被断点断下时,这很容易引起插件不响应
能力值:
( LV3,RANK:30 )
16 楼
这不是好方法,放弃,谢谢前辈们的方法,我另选他路了,结贴