Win32API我的窗口如何跟随现有窗口

时间:2010-12-21 17:14:09

标签: windows winapi subclass

致所有Win32专业人士。假设我们已经用窗口完成了现有的应用程序。任务是用(我的)窗口编写另一个应用程序。当用户在屏幕上移动现有窗口时,我的窗口必须始终将其左边缘与现有窗口右边缘对齐(我的窗口不允许用户移动)。

前提条件:a)现有窗口不能被子类化b)Windows挂钩不是一个案例。


是的,看起来正确。如果不成问题,我不会问这个问题。忘了说操作系统是Vista 2,应用程序是IE。我尝试在IE主窗口后面创建一个应用程序,对齐边缘。不允许对IE进行子类化,并且在常规用户下SetWindowsHook无法正常工作(当用户具有管理员权限应用程序正常工作时)。就像所有人谈论在Vista之前的Windows下工作一样。

看起来没有简单的方法可以解决这个问题。谢谢大家。

2 个答案:

答案 0 :(得分:0)

我想你不能没有钩子。 SetWindowLong允许您设置WndProc,但如果窗口属于不同的应用程序,则无法使用。

答案 1 :(得分:0)

如果您不想要/不能创建子类或设置全局挂钩,您可以查看以下内容:

  • 在DLL中实现您的代码
  • 在LoadLibrary的地址和DLL的名称上调用CreateRemoteThread以将DLL注入目标进程
  • 在DLL的DllMain中,您可以在拥有该窗口的线程上设置SetWindowHook。这是一个本地钩子,不需要特殊权限,对系统非常好。
  • 在钩子函数中,在主窗口的HWND上处理WM_WINDOWPOSCHANGED并相应地调整窗口。