更改属于另一进程的窗口的大小和位置
本文关键字:窗口 位置 进程 属于 | 更新日期: 2023-09-27 18:28:04
我有一个编译过的c#控制台应用程序,我想有一个选项来更改某个窗口(比如任务管理器中的*.exe)的位置和大小。是否可以通过VS2010中提供的命名空间实现?目标窗口未以任何方式连接到VS编译的exe。
正如评论中所说,您肯定必须使用SetWindowPos函数。
你需要窗户把手。为此,您可以调用EnumWindows,使用GetWindowModuleFileName检查每个窗口的可执行文件名。
伪代码:
foreach window in EnumWindows()
if GetWindowModuleFileName(window) == "program.exe"
SetWindowPos(window, ...)
这些函数属于Windows API。要调用它们,您需要P/invoke(pinvoke.net可能会有很大帮助)。
很有可能:
-
要更改窗口位置或/和大小,可以使用SetWindowPos
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v=vs.85).aspx
-
为了找出窗口的句柄(hWnd参数),您可能会发现有用的
查找窗口
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499(v=vs.85).aspx
EnumWindows
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497(v=vs.85).aspx