If the different hWnd values return the same results for the API functions
[DllImport( "user32.dll" )]
public static extern int GetClassNameW( HandleRef hWnd, [MarshalAs( UnmanagedType.LPWStr )] StringBuilder className, int nMaxCount );
[DllImport( "user32.dll" )]
public static extern int GetWindowTextLength( HandleRef hWnd );
[DllImport( "user32.dll" )]
public static extern int GetWindowTextW( HandleRef hWnd, [MarshalAs( UnmanagedType.LPWStr )] StringBuilder text, int maximum );
you may be stuck having to do your edits based in the position the objects exist on the form
public struct WindowPlacement {
public int length;
public int flags;
public int showCmd;
public Point minPosition;
public Point maxPosition;
public Rectangle normalPosition;
}
[DllImport( "user32.dll" )]
public static extern bool GetWindowPlacement( HandleRef hWnd, ref WindowPlacement position );