使用下一个答案,我试图以编程方式重新定位 citrix 窗口,但窗口不会移动。
我假设保存 Citrix 窗口的进程名称是Process.GetProcesses()
我启动 Citrix 后添加的下一个进程之一:Receiver、wfica32、pnamain、concentr、wfcrun32。
任何帮助为什么窗口不移动?
IntPtr hWnd = IntPtr.Zero;
var p1 = Process.GetProcesses().Where(p => p.Id != 0 && p.ProcessName == _processToRepositionWindowName).FirstOrDefault();
if (p1 != null && p1.MainWindowHandle != IntPtr.Zero)
{
hWnd = p1.MainWindowHandle;
//tried both options
//hWnd = p1.Handle;
}
else
{
hWnd = FindWindow(_processToRepositionWindowName, null);
if(hWnd == IntPtr.Zero)
{
hWnd = FindWindow(null, _processToRepositionWindowName);
}
}
if (hWnd != IntPtr.Zero)
{
var i = SetWindowPos(hWnd, IntPtr.Zero, windowXLocation, windowYLocation, 0, 0, SWP_NOSIZE | SWP_NOZORDER | 0x0040);
}