もしやと思って探してみたら、SWTにWinAPIのラッパクラスがありました。
以下のサンプルを作ってみました。結構、いろんなことができます。

import org.eclipse.swt.internal.win32.*;

public class SwtTest {
    void testWinAPI() {
        int hWnd = OS.FindWindow(null, new TCHAR(OS.CP_INSTALLED, "(無題) - 秀丸", true));
        if (hWnd != 0) {
            RECT rect = new RECT();
            OS.GetWindowRect (hWnd, rect);
            System.out.println("rect="+rect.left+" "+rect.top+" "+rect.right+" "+rect.bottom);
            RECT client = new RECT();
            OS.GetClientRect(hWnd, client);
            POINT pt = new POINT();
            OS.ClientToScreen(hWnd, pt);
            System.out.println("client pos=("+(pt.x-rect.left)+" "+(pt.y-rect.top)+
                    ") size=("+client.right+" "+client.bottom+")");
            // ウィンドウのサイズを変更!
            WINDOWPLACEMENT wndpl = new WINDOWPLACEMENT();
            OS.GetWindowPlacement(hWnd, wndpl);
            wndpl.bottom -= 100;
            OS.SetWindowPlacement(hWnd, wndpl);
            // 秀丸にキーイベントを送る!
            OS.SendMessage(hWnd, OS.WM_CHAR, 'H', 0);
            OS.SendMessage(hWnd, OS.WM_CHAR, 'e', 0);
            OS.SendMessage(hWnd, OS.WM_CHAR, 'l', 0);
            OS.SendMessage(hWnd, OS.WM_CHAR, 'l', 0);
            OS.SendMessage(hWnd, OS.WM_CHAR, 'o', 0);
        }
        // 画面に対して描画!
        int hDC = OS.GetDC(0);
        for (int i=0; i<1000; i+=5) {
            OS.MoveToEx(hDC, 0, i, 0);
            OS.LineTo(hDC, 1000, 1000-i);
        }
        OS.ReleaseDC(0, hDC);
    }
    public static void main(String[] args) {
        new SwtTest().testWinAPI();
    }
}