Add-Type -Name Window -Namespace Console -MemberDefinition '
[DllImport("Kernel32.dll")]
public static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
public static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int W, int H); '
$consoleHWND = [Console.Window]::GetConsoleWindow();
$consoleHWND
[Console.Window]::MoveWindow($consoleHWND,0,0,500,500);
3条答案
按热度按时间hfyxw5xn1#
有趣的问题。
如果你想移动窗口,你需要知道它的窗口句柄
hWnd
。控制台可以使用kernel32.dll中的GetConsoleWindow
函数。这个脚本会将powershell控制台移动到 * 左上角 *,大小为
(500, 500)
。如果你知道窗口的属性,你可以用它做很多事情。您可以找到所有函数here。
但是这个脚本只能在真实的的powershell * 控制台 * 上工作。如果您将从
Powershell ISE
启动它,hWnd将是Zero0
,因为Powershell伊势中没有真实的控制台。tzdcorbm2#
给予你一个完整的例子,
Set-Window
模仿手动窗口+左箭头。在我的1920*1200屏幕上,窗口+左箭头后的窗口尺寸是:
因此,您需要首先获得屏幕尺寸,对于主显示器,这将完成:
rkue9o1l3#
另一种移动当前豪华流程窗口的方法: