简而言之,我想知道是否有办法从其他程序更改Windows窗体的显示属性。
例如,假设我有两个应用程序正在运行(分别为A和B),程序A有一个显示“重新调整程序B”的按钮。我的问题是,在程序A中按下该按钮是否有任何方法,我可以访问内存中的程序B并更改其窗体宽度和高度属性(或任何属性)?
我不一定需要源代码,(如果这甚至可能 - 会非常感激),主要是我只是好奇这样的事情是可能的(在任何语言/ IDE中) - 然后我可以下沉我是时候学习如何实现这个概念了。
我的猜测 - 出于明显的安全原因,不会......但如果你问我,最好问一个愚蠢的问题而不是假设一个愚蠢的答案。
非常感谢你在这个问题上的时间
获得窗口大小,像'TopMost'这样的属性怎么样?
再次感谢,
非常感谢大家的帮助!
答案 0 :(得分:0)
如果窗口已经打开并且您的代码可以找到它,那么它可以调整它的大小。例如,右键单击任务栏的空白区域时排列窗口的代码可以执行此操作。
答案 1 :(得分:0)
您可以通过向其发送系统消息来调整其他程序的窗口大小。它由WinAPI函数
完成LRESULT WINAPI SendMessage(
__in HWND hWnd,
__in UINT Msg,
__in WPARAM wParam,
__in LPARAM lParam
);
第一个参数是目标窗口的句柄。您可以使用其他API函数(如FindWindow)来获取它。
其次是消息代码 - 在你的情况下是WM_SIZE。
最后两个参数在此处描述http://msdn.microsoft.com/en-us/library/ms632646(v=vs.85).aspx
这适用于C ++ WinAPI。在.NET中,您可以使用P-Invoke来调用WinAPI函数。可以在http://www.pinvoke.net/
找到P-Invoke的声明UPD :还有其他适合此功能的功能:SetWindowPos和MoveWindow
这是调整大小的示例。有关您可以执行的其他操作,请参阅此MSDN部分
http://msdn.microsoft.com/en-us/library/ff468919(v=VS.85).aspx
窗口内的大多数控件(按钮等..)也是窗口。您可以获得他们的句柄并以相同的方式控制它们