카테고리

분류 전체보기 (509)
문학 (128)
찬양 콘티(Continuity) (80)
Business as heritage (6)
IT . Web (148)
Photo (127)
etc. (20)
Total415,105
Today4
Yesterday5






블로그 이미지

윈도 서버에서 일정 시간간격으로 실행되는 작업을 만들고 싶을 때, 윈도 서비스를 개발할 수도 있겠지만, 간단하게 콘솔 애플리케이션으로 만들고 싶을 때가 있죠.(밑을 알 수 없는 귀차니즘)

그런데 콘솔 애플리케이션이 코드가 적지만 검정 윈도우가 자꾸 화면에 나타나서 거슬리게 하는 측면이 있습니다. 이럴 때 C#에서는 using System.Runtime.InteropServices; 을 상단에 선언해주고,

        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);

        [DllImport("user32.dll")]       
        static
extern
extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

클래스 안에 메소드를 정의해줍니다. extern이 외부구현 메소드를 연결해주는 방식은 MSDN을 보면 친절히 나와있습니다(http://msdn.microsoft.com/ko-kr/library/e59b22c5.aspx).

        IntPtr hWnd = FindWindow(null, Console.Title);
        if (hWnd != IntPtr.Zero)
        {
            //Hide the window
            ShowWindow(hWnd, 0); // 0 = SW_HIDE
        }

FindWindow가 윈도 제목표시줄의 문자열(캡션)을 갖고 핸들을 반환하므로 Console.Title 대신 다른 창의 캡션을 지목하면 액세스 가능한 한도 내에서 숨길 수도 있을 것 같습니다.

Posted by One of Remnants

댓글을 달아 주세요

달력

« » 2021.12
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

최근에 받은 트랙백

글 보관함