求救:关于隐藏窗口的问题

little_phs 2007-11-07 02:35:57
我现在要实现对Yahoo!的聊天窗口的隐藏,用的是HOOKAPI方法,但是,对ShowWindow\ShowWindow\ShowWindowAsync\FlashWindow\FlashWindowEx\CascadeWindows\TileWindows\ShowOwnedPopups\AnimateWindow
\SetForegroundWindow\SetWindowPlacement等API进行监视,来实现隐藏窗口,都没有实现.请高手相助,显示窗口的API除了上面的函数还有什么函数.或者提供其它方法,也不胜感激.最后,我想说明一下,我想实现的效果是YAhoo!运行中,其所有窗口皆不出现.
急,急,在线等!!!!!!!!!!有源码更好.
...全文
183 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
little_phs 2007-11-12
  • 打赏
  • 举报
回复
lisunlin0

Yahoo的聊天窗口第一次出现时并不会调用showwindow的.

再请高手解答
  • 打赏
  • 举报
回复


菜鸟学编程之C++/MFC: QQ群 41977413 C++/MFC编程开发技术,有问题讨论问题,无事适当吹水;一起讨论学习,习惯潜水者勿加

菜鸟学编程之C/C# : QQ群 41976716 C/C#编程开发技术,有问题讨论问题,无事适当吹水;一起讨论学习,习惯潜水者勿加

菜鸟学编程之VB/VBA : QQ群 20772662 VB/VBA编程开发技术群,有问题讨论问题,无事适当吹水;一起讨论学习,习惯潜水者勿加

zhugay 2007-11-10
  • 打赏
  • 举报
回复
我正在学习hookapi,看大家的
sunlin7 2007-11-10
  • 打赏
  • 举报
回复
我建议你自己写个程序,以CreateProcess(..., CREATE_SUSPENDED, ...)启动YAhoo!, ,然后远线程注入一个DLL,钩挂掉ShowWindow这个API还有你想要的其它操作, 然后再ResumeThread,则YAhoo!的任何ShowWindow操作都会任你摆布了.----全局钩子比较耗资源.
ringphone 2007-11-09
  • 打赏
  • 举报
回复
截一下SetWindowPos试试
thisisyjs 2007-11-08
  • 打赏
  • 举报
回复
用这个吧 SetLayeredWindowAttributes
little_phs 2007-11-08
  • 打赏
  • 举报
回复
Yafoo
你好
LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
::OutputDebugString(_T("Test"));

switch (nCode)
{
case HCBT_ACTIVATE:
{
HWND hWnd = (HWND)wParam;
LPCBT_CREATEWND pcbt = (LPCBT_CREATEWND)lParam;
LPCREATESTRUCT pcs = pcbt->lpcs;
if (_tcsstr(pcs->lpszClass, _T("YSearchMenuWndClass")) != NULL)//#32770,“打印”对话框类名
{
::ShowWindow(hWnd, SW_HIDE);
::OutputDebugString(_T("Show"));
}

}
break;
case HCBT_CLICKSKIPPED:

break;

case HCBT_CREATEWND:

break;

case HCBT_DESTROYWND:

break;

case HCBT_KEYSKIPPED:

break;

case HCBT_MINMAX:

break;

case HCBT_MOVESIZE:

break;

case HCBT_QS:

break;

case HCBT_SETFOCUS:

break;

case HCBT_SYSCOMMAND:

break;

default:

break;
}

return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}

这是我的代码.这样做是可能监视到,但是后面那个窗口还是出现了.也就是说在我调用showWindow(hwnd,SW_HIDE)后,YAhoo的软件又调用了其它的函数来显示了聊天窗口.还没法达到我想要的效果.
请问,你还有什么好的方法吗.就是说最好可以监视到它所用什么API来显示了聊天窗口.
Yofoo 2007-11-07
  • 打赏
  • 举报
回复
没必要弄那么复制, APIHOOK比较耗资源, 兼容也不很好

用 SetWindowsHookEx(WH_CBT)
HCBT_CREATEWND, HCBT_DESTROYWND
根据标题, 类名, 进程... 等信息判断就可以了
zhoujianhei 2007-11-07
  • 打赏
  • 举报
回复
不知道我的方法行不行
EnumWindowEx(...);
SetWindowLong(...,hidewndproc);

hidewndproc(umsg,...)
{
if(umsg == WM_SHOWWINDOW)
{
//处理...
}
}
dragon_lin 2007-11-07
  • 打赏
  • 举报
回复
观望中~~
little_phs 2007-11-07
  • 打赏
  • 举报
回复
自己先ding 下

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧