2010-12-21 41 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並相應地調整窗口。