FindWindow()如何获取隐藏窗口的句柄
由于项目需要将matlab绘制出的图形窗口嵌入到VC界面里去。
为了有好的显示效果matlab里让窗口先隐藏然后抓到VC界面里再显示出来。
由于matlab程序比较复杂是由合作方提供的。
不能用COM等形式实现联合编程。
这里遇到的问题是:FindWindow()函数无法找到隐藏的Figure窗口句柄(显示情况下能找到)由于对Windows理解不够我无从下手。
望高手指明方向。
。
。
。
------解决方案--------------------------------------------------------你用EnumWindow试试------解决方案--------------------------------------------------------不管窗口有没有影藏,findwindow都能够找到它,如果它是顶级窗口并且没有经过特殊处理的话。
我猜,你那matlab的figure可能不是顶级窗口,就是不是主程序的窗口,因此,你可以通过枚举的方式来找到子窗口。
代码如下,参考下:C/C++ codeCWnd* cwnd=CWnd::FindWindow(NULL,matlab标题名);//找到matlab的主窗口CWnd* child=cwnd-GetWindow(GW_CHILD);//获得matlab的第一个子窗口CString buf;while(child){//这里可以判断是不是你那个figurechild-SendMessage(WM_GETTEXT,50,(LPARAM)(buf.GetBuffer(50)));buf.ReleaseBuffer();if (buf==发送){child-PostMessage(WM_LBUTTONDOWN);child-PostMessage(WM_LBUTTONUP);break;}else{//child-SendMessage(WM_SETTEXT,0,(LPARAM)hello,this is me);}child=(child-GetNextWindow(GW_HWNDNEXT));//获取下一个子窗口}------解决方案--------------------------------------------------------枚举窗口
postMessage 发送隐藏消息的问题?
哎?这个问题已经回答了一次了啊。
采用CreateProcess的LPSECURITY_ATTRIBUTES lpProcessAttributes这个参数。
加上隐藏属性即可。
------------------------------------------------那我就告诉你一个绝对可行的办法:1、首先运行监控软件。
然后安装迅雷,在监控软件中监视迅雷的安装程序都是干了什么,比如写了什么注册表,注册了什么服务?往系统目录里写了什么文件?2、将已经安装好的迅雷的安装目录打包。
3、自己写一个程序,首先将第二步中的包解开,放到你自己想装的目录。
然后,模拟第一步中监控到的操作。
事实上,这种方法就是模拟了迅雷的安装过程,不仅界面可以隐藏,而且可以实现你自己想要的界面。
不过,这个方法对于安装未知的软件,是无能为例的。
还是建议用上面说的CreateProcess中的隐藏属性解决。
POSTMESSAGE不会直接导致画面显示的,一定是有其他原因导致了界面重现。
找到它,解决它。
我认为导致画面重现的原因是:由于多数软件的安装程序界面是一个Sheet,而且是向导模式的。
当你按下“下一步”的时候,系统会隐藏当前的对话框然后显示下一步的对话框。
由于有“显示”操作,因此,会导致界面重现。
因此,还有一种方法:1、首先进行注入,注入的方法很多,自己可以去查,或者看《核心编程》。
2、挂钩。
不要下全局挂钩,下一个局部挂钩即可,挂钩的目标线程是安装软件的界面处理线程。
不要挂钩CreateWindow,而是挂钩ShowWindow,如果发现ShowWindow的参数是SW_SHOW,那就改成SW_HIDE,然后再调用NextHook。
此种方法绝对可以。
高分求WIN7 64位可以用的进程隐藏软件!
枚举窗口, 嘻嘻 我有个源码 这里不好发 大概的 我还是发一下吧 我的Q 243999711 教你!我用的是取窗口标题。
的方法 取句柄也可以的 ----------------------------------------------代码分割----------------------------------------------.版本 2.支持库 eAPI临时_判断句柄 = 枚举窗口句柄_ (取屏幕句柄_ (), #GW_CHILD).循环判断首 ().如果真 (取窗口标题 (临时_判断句柄) = “Login”)截屏画板.底图 = 截取窗口位图 (临时_判断句柄)截屏画板.底图方式 = 2跳出循环 ().如果真结束.循环判断尾 (临时_判断句柄 ≠ 0)----------------------------------------------代码分割----------------------------------------------