2010-12-21 46 views
0

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

先决条件:a)现有的窗口不能被分类b)Windows挂钩不是案例。


是的,看起来没错。如果这不成问题,我不会问这个问题。忘了说OS是Vista 2,应用程序是IE。我尝试制作一个跟在IE主窗口后面的应用程序,将它对齐。不允许IE的子类化,并且SetWindowsHook在普通用户下无法正常工作(当用户具有管理权限应用程序正常工作时)。所有人都在讨论在Vista之前的Windows下工作的方式。

看起来好像没有无用的方法来解决这个任务。谢谢你们。

+0

因此,你希望能够双手绑在背后做到这一点? – 2010-12-21 17:41:50

回答

0

我想你不能没有钩子。 SetWindowLong允许你设置WndProc,但如果窗口属于不同的应用程序,这将不起作用。

+0

这是禁止的方法a:继承 – 2010-12-21 19:53:35

0

如果你不希望/倾斜子类或设置全局钩子,你可以看看下面:

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