1

我有一个编译的 c# 控制台应用程序,我想有一个选项来更改某个窗口(* .exe 从,比如说,任务管理器)的位置和大小。是否可以通过 VS2010 中提供的命名空间?目标窗口没有以任何方式连接到 VS 编译的 exe。

4

2 回答 2

2

正如评论中所说,您肯定必须使用SetWindowPos函数。

您将需要窗口句柄。为此,您可以调用EnumWindows ,使用GetWindowModuleFileName检查每个窗口的可执行文件名。

伪代码:

foreach window in EnumWindows()
    if GetWindowModuleFileName(window) == "program.exe"
        SetWindowPos(window, ...)

这些函数属于 Windows API。要给他们打电话,您需要 P/invoke(pinvoke.net可能会有很大帮助)。

于 2013-08-19T06:57:30.287 回答
2

很有可能:

  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

    枚举窗口

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

于 2013-08-19T07:02:40.697 回答