[User32.dll] 윈도우 위치 지정 하기



 
Created with colorer-take5 library. Type 'csharp'

using System;
using System.Windows;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Threading;

namespace ProcessTEST
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        //user32.dll 을 임포트 한다
        [DllImport("user32.dll", SetLastError = true)]
        //MoveWindow 함수를 호출한다.
        internal static extern bool MoveWindow(IntPtr hwnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);

        protected override void OnInitialized(EventArgs e)
        {
            //프로세스로 메모장을 열고 실행 한다
            Process proc = new Process();
            proc.StartInfo.FileName = "notepad.exe";
            proc.Start();

            //잠시 정지후에..
            Thread.Sleep(10);

            //위에서 실행시킨 프로세스의 윈도우 핸들을 얻는다.
            IntPtr id = proc.MainWindowHandle;
            //함수호출!
            MoveWindow(proc.MainWindowHandle, 2000, 0, 500, 500, true); 
            base.OnInitialized(e);
        }
    }
}

추가로 Process 에서 IntPtr 을 쉽게 얻을수 있는 아이디어,
Yamecoder 야매코더_
분류없음 2011.09.05 16:04
Powerd by Tistory, designed by criuce
rss