我有一个编译的 c# 控制台应用程序,我想有一个选项来更改某个窗口(* .exe 从,比如说,任务管理器)的位置和大小。是否可以通过 VS2010 中提供的命名空间?目标窗口没有以任何方式连接到 VS 编译的 exe。
问问题
857 次
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
很有可能:
要更改窗口位置或/和大小,您可以使用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
枚举窗口
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633497(v=vs.85).aspx
于 2013-08-19T07:02:40.697 回答