Sí, es posible con la API de Windows.
Esta entrada no tiene información sobre cómo obtener toda la ventana se encarga de los procesos activos: http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=35545
using System;
using System.Diagnostics;
class Program
{
static void Main()
{
Process[] procs = Process.GetProcesses();
IntPtr hWnd;
foreach(Process proc in procs)
{
if ((hWnd = proc.MainWindowHandle) != IntPtr.Zero)
{
Console.WriteLine("{0} : {1}", proc.ProcessName, hWnd);
}
}
}
}
y luego se puede mover la ventana usando la API de Windows: http://www.devasp.net/net/articles/display/689.html
[DllImport("User32.dll", ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]
private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int cx, int cy, bool repaint);
...
MoveWindow((IntPtr)handle, (trackBar1.Value*80), 20 , (trackBar1.Value*80)-800, 120, true);
Éstos son el parámetros para la función MoveWindow:
Para moverse la ventana, utilizamos la función MoveWindow, que toma el identificador de ventana, las coordenadas para la esquina superior, así como la anchura y la altura deseada de la ventana , basado en la pantalla coordenadas. La función MoveWindow se define como:
MoveWindow (HWND hWnd, int nX, int nY, int nWidth, int nHeight, BOOL bRepaint);
La bandera bRepaint determina si el área de cliente debe ser invalidado, causando un mensaje WM_PAINT que se enviará, permitiendo el área de cliente para ser pintada. Como un lado, la pantalla coordenadas se pueden obtuvieron utilizando una llamada similar a GetClientRect (GetDesktopWindow(), & rcDesktop) con rcDesktop ser una variable de tipo RECT, aprobada por referencia.
(http://windows-programming.suite101.com/article.cfm/client_area_size_with_movewindow)
Utilice un Mechanical Turk - sólo aparecerá un cuadro de mensaje y pedir al usuario que lo haga por usted. Asegúrese de proporcionar instrucciones detalladas. : P Lo siento, solo me divierto aquí ... –