Thank you @zezba9000 & @NetMage your answsers were the ones that worked ... I went on PInvoke - EnumWindows to get the general idea of how it works and the used Reed's answer to get to this code :
public class SearchData{ public string Title; public IntPtr hWnd; } private delegate bool EnumWindowsProc(IntPtr hWnd, ref SearchData data); [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, ref SearchData data); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount); [DllImport("user32.dll", EntryPoint = "SetWindowPos")] public static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int Y, int cx, int cy, int wFlags); private void test(){ IntPtr hwnd = SearchForWindow("Discord"); SetWindowPos(hwnd, 0, 50, 175, 1000, 750, 0x0040); } public IntPtr SearchForWindow(string title){ SearchData sd = new SearchData { Title = title }; EnumWindows(new EnumWindowsProc(EnumProc), ref sd); return sd.hWnd; } public bool EnumProc(IntPtr hWnd, ref SearchData data){ StringBuilder sb = new StringBuilder(1024); GetWindowText(hWnd, sb, sb.Capacity); if (sb.ToString().Contains(data.Title)){ data.hWnd = hWnd; return false; } else return true; }
Also @Jimi I tried your approach but I could not work with it because it could not find Automation in the System.Windows namespace
SHDocVw.ShellWindows()only lists IE and Explorer windows which are all the shell controls directly (remnants of IE integration in Windows). You need something like this answer.FromHandle()orFromPoint()etc.) + TransformPattern → Move(), → Resize()