C#/실습으로 다지는 C#

[C# 소소] 콘솔 글자 색 바꾸기 - Windows API 사용

언제나휴일 2020. 4. 13. 19:11
반응형

실행 화면

소스 코드

WrapAPI.cs

using System;
using System.Runtime.InteropServices;

namespace Windows_API_활용하여_콘솔_글자색_바꾸기
{
    public enum ConTextColor { LACK, BLUE, GREEN, JADE, RED,
        PURPLE, YELLOW, WHITE, GRAY, LIGHT_BLUE, LIGHT_GREEN,
        LIGHT_JADE, LIGHT_RED, LIGHT_PURPLE,
        LIGHT_YELLOW, LIGHT_WHITE };

    public static class WrapAPI
    {
        [DllImport("Kernel32.dll")]
        static extern int SetConsoleTextAttribute(IntPtr hConsoleOutput, short wAttributes);

        [DllImport("Kernel32.dll")]
        static extern IntPtr GetStdHandle(int nStdHandle);

        const int STD_OUTPUT_HANDLE = -11;
        public static void SetConsoleTextColor(ConTextColor color)
        {
            IntPtr handle = GetStdHandle(STD_OUTPUT_HANDLE);
            SetConsoleTextAttribute(handle, (short)color);
        }
    }
}

Program.cs

//http://ehpub.co.kr
//실력으로 다지는 C#
//Windows API를 활용하여 콘솔 글자색 바꾸기

using System;
namespace Windows_API_활용하여_콘솔_글자색_바꾸기
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ReadKey();
            WrapAPI.SetConsoleTextColor(ConTextColor.GREEN);
            Console.WriteLine("언제나 휴일");
            Console.ReadKey();
            WrapAPI.SetConsoleTextColor(ConTextColor.WHITE);
            Console.WriteLine("실습으로 다지는 C#");
            Console.ReadKey();
            WrapAPI.SetConsoleTextColor(ConTextColor.LIGHT_PURPLE);
            Console.WriteLine("http://ehpub.co.kr");
            Console.ReadKey();
            WrapAPI.SetConsoleTextColor(ConTextColor.WHITE);
        }
    }
}

 

 

[실습으로 다지는 C#] 콘솔 글자 색 바꾸기 – Windows API 함수 사용 – 언제나 휴일

 이번 강의는 콘솔 글자 색을 바꾸는 실습입니다.  별다른 알고리즘은 없고 필요한 몇 개의 기술을 사용할 거예요.  기술 사용 노하우를 들여다 보고 따라해 보는 것이라 크게 고민을 하실 필요는 없어요.  콘솔의 글자 색을 바꾸기 위해 Windows API 함수를 사용할 수 있어요. - 콘솔의 글자 색을 바꾸는 함수 WINBASEAPI BOOL WINAPI SetConsoleTextAttribute(_In_ HANDLE hConsoleOutput,_In_

ehpub.co.kr

 

반응형