更改属于另一进程的窗口的大小和位置

本文关键字:窗口 位置 进程 属于 | 更新日期: 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可能会有很大帮助)。

很有可能:

  1. 要更改窗口位置或/和大小,可以使用SetWindowPos

    http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545(v=vs.85).aspx

  2. 为了找出窗口的句柄(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