Изменить шрифт в консольном приложение ( программно )

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Andrushka25, 31 Jul 2011.

  1. Andrushka25

    Andrushka25 New Member

    Joined:
    19 Jul 2010
    Messages:
    24
    Likes Received:
    0
    Reputations:
    0
    Как можно это реализовать?
    Я новичок, объясните пожалуйста на конкретном примере!
    Заранее спасибо!

    OC: Windows.
     
  2. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    231
    Likes Received:
    11
    Reputations:
    4
    на каком языке реализовать? на c# например так:
    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("ololololo");
                Console.ReadKey();
            }
        }
    }
    
    
    если ты про развер шрифта, то его по моем никак не изменить, т.к. символы выводяться только одним шрифтом через видеобуфер
     
  3. Andrushka25

    Andrushka25 New Member

    Joined:
    19 Jul 2010
    Messages:
    24
    Likes Received:
    0
    Reputations:
    0
    на си++;

    В поиске нашел что есть структура _CONSOLE_FONT_INFOEX
    но конкретного примера не нашел
     
  4. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    944
    Likes Received:
    427
    Reputations:
    139
    эта страктура используется ф-й SetCurrentConsoleFontEx, но она начиная с висты. есть недокементированная ф-я SetConsoleFont, но я ее не импользовал, так что гугли.
     
  5. DooD

    DooD Moderator

    Joined:
    30 Sep 2010
    Messages:
    1,181
    Likes Received:
    424
    Reputations:
    288
    HKEY_CURRENT_USER\console подсказую
     
    _________________________
  6. Andrushka25

    Andrushka25 New Member

    Joined:
    19 Jul 2010
    Messages:
    24
    Likes Received:
    0
    Reputations:
    0
    если в реестре изменить то будет только на моем компьютере, хотелось что бы на всех изменялось.
     
  7. Andrushka25

    Andrushka25 New Member

    Joined:
    19 Jul 2010
    Messages:
    24
    Likes Received:
    0
    Reputations:
    0
    спасибо!
     
  8. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    82
    Likes Received:
    14
    Reputations:
    7
    Можете еще попробовать функцию SetConsoleTextAttribute

    Например так получается красивый зеленый цвет в консоли (можно другие задать)
    Code:
    	
    #include <windows.h>
    
    setlocale(LC_ALL,"Russian");
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(h,FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    std::cout<<"привет мир"<<std::endl;
    Так я делал в стиле DOS,черный шрифт на сером фоне. Довольно симпатично :)
    Code:
    
    
    system("color 70");
    setlocale(LC_ALL, "Russian");
    std::cout<<"привет мир"<<std::endl;
     
    #8 enigma, 1 Aug 2011
    Last edited: 1 Aug 2011
  9. Andrushka25

    Andrushka25 New Member

    Joined:
    19 Jul 2010
    Messages:
    24
    Likes Received:
    0
    Reputations:
    0
    enigma, это мне известно. Вопрос был как изменить шрифт.

    В прочем вот решение. Может кому понадобится.

     
  10. enigma

    enigma Member

    Joined:
    10 Jul 2011
    Messages:
    82
    Likes Received:
    14
    Reputations:
    7
    Пардон за невнимательность, тогда таки да, или еще как вариант:
    При запуске приложения, программно изменить этот шрифт в реестре.
    Но думаю это плохая мысль :)
     
Loading...