Estou tentando criar uma função que configura as cores do console a partir da função system com o argumento “color” do dos. A definição da função e uma chamada da mesma está no código abaixo. A função ainda não funciona. Não consegui entender o que está saindo errado. A função system deveria receber um ponteiro de char como argumento, não é isso?
[quote=drWHO]Estou tentando criar uma função que configura as cores do console a partir da função system com o argumento “color” do dos. A definição da função e uma chamada da mesma está no código abaixo. A função ainda não funciona. Não consegui entender o que está saindo errado. A função system deveria receber um ponteiro de char como argumento, não é isso?
int main() {
CoresConsole(“4”, “F”);
printf(“Teste.\n”);
return 0;
}[/code][/quote]
O seu console precisa suportar o padrão ansi para obedecer a saída correta dos caracteres que formatam o texto. Isso pode ser configurado neles.
Embora em sistemas unix o ansi seja o padrão, no windows não é.
O comando “color” é um comando intrínseco do CMD.EXE (assim como o DIR) e não pode ser chamado diretamente usando Runtime.exec ou system.
Você precisa pedir ao cmd.exe para executar o comando.
Você precisa usar system (“cmd /c color”); ou Runtime.exec (“cmd /c color”);