Ну вот. Только тебе придется думать, как консоль рефрешнуть после этого или запустить отдельным процессом. В этом коде сугубо редактирование ключа, который отвечает за консоль. Кроме этого можешь поиграться со значениями в родительском ключе Console - там есть значения отвечающие за цвета. Ну и в конце концов нужно позаботиться о том, чтобы потом все вернуть назад, поскольку значения применятся ко всем консолям.
[codebox]
#include <windows.h>
#include <iostream>
using namespace std;
void UpdateReg(HKEY hk, LONG lret)
{
DWORD pbuf1;
TCHAR* pbuf=_T("Lucida Console");
lret=RegSetValueEx ( hk, _T("FaceName"), NULL, REG_SZ,(LPBYTE)pbuf, strlen(pbuf));
pbuf1 = 0x36;
lret=RegSetValueEx ( hk, _T("FontFamily"), NULL, REG_DWORD,(LPBYTE)&pbuf1, sizeof(DWORD));
pbuf1 = 0x100000; //Размер шрифта
lret=RegSetValueEx ( hk, _T("FontSize"), NULL, REG_DWORD,(LPBYTE)&pbuf1, sizeof(DWORD));
pbuf1 = 0x190;
lret=RegSetValueEx ( hk, _T("FontWeight"), NULL, REG_DWORD,(LPBYTE)&pbuf1, sizeof(DWORD));
pbuf1 = 0x0;
lret=RegSetValueEx ( hk, _T("HistoryNoDup"), NULL, REG_DWORD,(LPBYTE)&pbuf1, sizeof(DWORD));
pbuf1 = 0x800;
lret=RegSetValueEx ( hk, _T("QuickEdit"), NULL, REG_DWORD,(LPBYTE)&pbuf1, sizeof(DWORD));
pbuf1 = 0x88008e;
lret=RegSetValueEx ( hk, _T("WindowPosition"), NULL, REG_DWORD,(LPBYTE)&pbuf1, sizeof(DWORD));
pbuf1 = 0x1e0053;
lret=RegSetValueEx ( hk, _T("WindowSize"), NULL, REG_DWORD,(LPBYTE)&pbuf1, sizeof(DWORD));
RegCloseKey(hk);
}
int _tmain(int argc, _TCHAR* argv[])
{
HKEY hk;
LONG lret=RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Console\\%SystemRoot%_system32_cmd.exe"),
NULL,KEY_WRITE|KEY_SET_VALUE,&hk);
if(lret==ERROR_SUCCESS&&NULL!=hk)
{
UpdateReg(hk, lret);
}
else
{
if(RegCreateKey(HKEY_CURRENT_USER, _T("Console\\%SystemRoot%_system32_cmd.exe"), &hk)==ERROR_SUCCESS)
{
LONG lret=RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Console\\%SystemRoot%_system32_cmd.exe"),
NULL,KEY_WRITE|KEY_SET_VALUE,&hk);
if(lret==ERROR_SUCCESS&&NULL!=hk)
UpdateReg(hk, lret);
}
else
::MessageBox(NULL, "Error", "ERROR", MB_OK);
}
return 0;
}
[/codebox]
ЗЫ: Да неприятная особенность, это то, что в ХРшке похоже поддерживается только один шрифт из семейства TrueType - Lucida Console. Это видно, по крайней мере из настроек консоли.