尝试使用PowerShell脚本将当前活动的PowerShell窗口移动到屏幕左侧。
我找到this function,但它并没有真正附带任何例子。
答案 0 :(得分:1)
有趣且有趣的问题。
如果你想要移动窗口,你需要知道它的变化。对于控制台,您可以通过kernel32.dll中的GetConsoleWindow函数来完成。
检查此脚本,它会将powershell控制台移动到左上角,大小为500,500。
onClick
如果你知道窗口的hwnd,你可以用这个窗口做很多事情。您可以在此处找到所有功能:https://msdn.microsoft.com/en-us/library/windows/desktop/ff468919(v=vs.85).aspx
但是这个脚本只使用真正的PowerShell控制台,如果你从Powershell ISE启动它,hwnd将为0,因为Powershell ISE没有真正的控制台。
答案 1 :(得分:1)
为您提供Set-Window
的完整示例,该示例模仿手册 Window + 左箭头。
在我的1920 * 1200屏幕上, Window + Left-Arrow 之后的窗口尺寸为:
# Left Top Width Heigth
# -7 0 974 1207
因此,您需要首先获得屏幕尺寸,对于主显示器,这样做:
Add-Type -AssemblyName System.Windows.Forms
$ScreenSize = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize
$MyLeft = -7
$MyTop = 0
$MyWidth = $ScreenSize.Width/2+2*7
$MyHeight= $ScreenSize.Height +7
"Left:{0} Top:{1} Width:{2} Height:{3}" -f $MyLeft,$MyTop,$MyWidth,$MyHeight
Get-Process powershell | Set-Window -X $MyLeft -Y $MyTop -Width $MyWidth -Height $MyHeight
答案 2 :(得分:0)
另一种移动当前豪华流程窗口的方法:
$MethodDefinition = @'
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, int wFlags);
'@
$User32 = Add-Type -MemberDefinition $MethodDefinition -Name 'User32' -Namespace 'Win32' -PassThru
$CurrentProcess = Get-Process -id $PID
$User32::SetWindowPos($CurrentProcess.MainWindowHandle, 0x1, 0, 0, 0, 0, 0x0040 -bor 0x0020 -bor 0x0001)