Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[DOWNLOAD] Delphi "My Own CMD"


luxfer
 Compartilhar

Posts Recomendados

Ola

Fiz uma cópia de um CMD, inicialmente era para apenas ajudar um cara ai, porém acabei me empolgando ^^

 

Download Source + Executavel mais abaixo ↓

 

No arquivo tem o readme.txt que explica tudo, porém vou postar aqui para os preguissosos, cliquem no botão aê:

 

 

myCMD vB3t4

 

* * * * * * * * * * * * * * * * BUGS * * * * * * * * * * * * * * * *

NAO USE "CTRL + V";

Não use o mouse para mudar de coluna;

Tente nao usar acentos.

 

 

* * * * * * * * * * * * * * * * COMANDOS * * * * * * * * * * * * * * * *

-----------------------------------> HELP

Descrição: Exibe um texto para ajuda-lo em relação à o que fazem os comandos.

Para usar digite:

help

 

-----------------------------------> ECHO:

Descrição: Exibe uma mensagem de texto no programa.

Ainda nao possui suporte a variáveis.

Para usar digite:

echo SUA MENSAGEM

*Para uma mensagem em branco(Uma linha em branco)

echo.

 

-----------------------------------> ALERT:

Descrição: Exibe uma mensagem na tela do usuario, com diversas opções:

@ with title -> para alterar o titulo da caixa da mensagem;

@ with button -> para alterar os botoes da mensagem;

@ in front -> para deixar a mensagem a frente de todos os outros aplicativos.

@ with var -> para exibir variáveis.

Para usar, siga os exemplos:

 

alert SUA MENSAGEM AQUI

2ª opção:

alert "SUA MENSAGEM AQUI"

-> Alert com extras:

alert "SUA MENSAGEM AQUI" with title MEU TITULO AQUI

alert "SUA MENSAGEM AQUI with title "MEU TITULO AQUI" and button OKCANCEL

alert "SUA MENSAGEM AQUI" in front with title "MEU TITULO AQUI" and button YESNO

 

@@ Alert mais avançado(utilizando varáveis)

@ with var

Como usar: Após criar a variavel com seu devido valor, siga os exemplos:

Variavel Meu_Nome criada com valor = Lucas

variavel Minha_Idade criada com valor = 16

alert "MEU NOME EH %1% E EU TENHO %2% ANOS" with var Meu_Nome,Minha_Idade

 

Podemos também juntar quase todos(*Alguns ainda nao tem suporte a " ", então nao da para o programa saber) os codes acima:

alert "OLA%2% VOCE TEM %1% ANOS?" in front with title "MEU TITULO" with var minha_idade,meu_nome

 

*EXEMPLO:

Alert MINHA MENSAGEM with title MEU TITULO

A mensagem acima resultaria numa caixa de texto com a mensagem "MINHA MENSAGEM with title MEU TITULO" sem nenhum titulo;

 

-----------------------------------> TITLE

Descrição: Altera o Caption do MyCMD

Para usar digite:

title TITULO DO PROGRAMA

 

-----------------------------------> COLOR

Descrição: Altera a cor do texto e do fundo do programa, respectivamente;

Para usar digite:

color white black

//Texto com cor branca e fundo preto

 

-----------------------------------> EXIT

Descrição: Sai do programa

Para usar digite:

exit

 

-----------------------------------> CLEAR

Descrição: Limpa a tela

Para usar digite:

clear

 

-----------------------------------> BEEP

Descrição: Emite um som(irritante)

Para usar digite:

beep

 

-----------------------------------> ALPHABLEND

Descrição: Troca a transparencia do programa.

Para usar digite:

alphablend 0-255

 

-----------------------------------> CREATE_INFO

Descrição: Cria uma variável para armazenar informações

Para usar digite:

create_info NOME_DA_VARIAVEL CONTEUDO_DA_VARIAVEL

 

-----------------------------------> UPDATE_INFO

Descrição: Altera o valor de uma variável já criada.

Para usar digite:

update_info NOME_DA_VARIAVEL NOVO_VALOR

 

-----------------------------------> ALWAYS_IN_FRONT

Descrição: Deixa o seu programa à frente de todos os demais(Com esse comando voce nao presisa usar o "in front" no ALERT).

Para usar digite:

always_in_front

 

-----------------------------------> TRANSPARENT_BACKGROUND

Descrição: Deixa o background transparente, aparecendo apenas as letras

Para usar digite:

transparent_background

 

-----------------------------------> VERSION

Descrição: Para exibir os dados da versão do programa.

Para usar digite:

version

 

 

 

Não ta pronto ainda, mas para quem tava com duvida de como criar um CMD, ai já dá pra ter uma boooa noção...

 

poucos vao vir aqui já que eles devem estar muito ocupados criando os complexos INJETORES deles né, mas quem sabe um dia eles terminam, nesse dia se eles vierem aqui, eu ja vou ter deletado o link seus filha da :chingando: :chingando:

 

[DOWN]

N0 L1NK!

[/DOWN]

 

[sENHA]

É necessário se cadastrar para acessar o conteúdo.

[/sENHA]

 

 

@Edit

 

Só para exclarecer para quem nao entendeu nada do código:

Procurem pela procedure tForm1.verifyComm(com:string);

Acharam? Todo o código abaixo dessa procedure serve apenas para evitar bugs..ou seja, nao é necessário.Exceto pela função OnKeyPress do Memo1, que nela eu verifico se o usuário pressionou enter, para então verificar os comandos que ele digitou(Chamando a procedure tForm1.verifyComm(com:string)

 

Se vocês derem uma olhada nas variaveis globais, tem uma assim:

uLastComm:ARRAY[1..100] of STRING;

 

Essa variável serve para armazenar os últimos comandos que você digitou, para que, igual ao CMD.exe, quando voce pressionar a seta de cima ou baixo, ele re-escreve o comando que foi capturado.

 

Também temos outras duas varíaveis:

fixCommand:STRING;

fixCOL:SmallInt;

 

A variável fixCommand, tem como objetivo arrumar um bug extremo:

Quando o usuário digita um comando muito longo, e a linha 'quebra', o comando bugava...

Porem com essa varíavel isso nao acontece, pq uma variável do tipo STRING nunca irá 'quebrar de linha'...E o fixCOL serve para mostrar à variavel fixCommand em qual coluna você está, pois se eu digitar meu comando, e resolver voltar algumas colunas para adicionar mais coisas naquele mesmo comando, a variável string nao irá detectar em qual coluna voce está...

Por isso dessa variável.

Como eu faço adiciono uma determinada palavra no meio de uma string? Através desta função:

 

function addChar(ch:char;col:integer):string;

var str1,str2:string;

begin

Result := fixCommand;

str1 := Copy(fixCommand,1,col-1);

str2 := Copy(fixCommand,col,Length(fixCommand));

Result := str1 + ch + str2;

end;

 

Divido a string verdadeira em 2 partes

pego o comando que voce quer adicionar

colo a 1ª parte, colo o comando, e para finalizar colo a 2ª parte

Pronto.

 

Qualquer duvida, só perguntar.

 

flw

Link para o comentário
Compartilhar em outros sites

Interessante, parabéns pelo trabalho, mas... você poderia identar os seus sources, fica mais legível.

Interessante seria vc criar um comando pra rodar num console (invisível) e vc pegar o texto do console, assim parece bem real.

Link para o comentário
Compartilhar em outros sites

Gostei dos códigos, muito bons.

Feito com inteligencia, da pra ver que usou poucas linhas rs ' ZUERA

 

Ficou muito bom mesmo cara, gostei dos códigos, ele são muitos complexos.

Tinha um cara que queria fazer uma CMD, agora é so ele ver este tópico (:

 

Abrasz :amor:

4I1ShmNRGyg2k.webp

Link para o comentário
Compartilhar em outros sites

Interessante, parabéns pelo trabalho, mas... você poderia identar os seus sources, fica mais legível.

Interessante seria vc criar um comando pra rodar num console (invisível) e vc pegar o texto do console, assim parece bem real.

 

ahushua

É verdade, tá bem confuso sim.

Mas é porque, inicialmente isso era para ser somente um exemplo, para ajudar um cara, tendo 1 ou 2 comandos apenas.Porém acabei colocando mais e mais e ficou essa bagunça ;D

 

 

Gostei dos códigos, muito bons.

Feito com inteligencia, da pra ver que usou poucas linhas rs ' ZUERA

 

Ficou muito bom mesmo cara, gostei dos códigos, ele são muitos complexos.

Tinha um cara que queria fazer uma CMD, agora é so ele ver este tópico (:

 

Abrasz :amor:

 

vlw cara.

Sim, inclusive ja enviei uma MP para ele...

 

@

 

Só para exclarecer para quem nao entendeu nada do código:

Procurem pela procedure tForm1.verifyComm(com:string);

Acharam? Todo o código abaixo dessa procedure serve apenas para evitar bugs..ou seja, nao é necessário.Exceto pela função OnKeyPress do Memo1, que nela eu verifico se o usuário pressionou enter, para então verificar os comandos que ele digitou(Chamando a procedure tForm1.verifyComm(com:string);)

 

Se vocês derem uma olhada nas variaveis globais, tem uma assim:

uLastComm:ARRAY[1..100] of STRING;

 

Essa variável serve para armazenar os últimos comandos que você digitou, para que, igual ao CMD.exe, quando voce pressionar a seta de cima ou baixo, ele re-escreve o comando que foi capturado.

 

Também temos outras duas varíaveis:

fixCommand:STRING;

fixCOL:SmallInt;

 

A variável fixCommand, tem como objetivo arrumar um bug extremo:

Quando o usuário digita um comando muito longo, e a linha 'quebra', o comando bugava...

Porem com essa varíavel isso nao acontece, pq uma variável do tipo STRING nunca irá 'quebrar de linha'...E o fixCOL serve para mostrar à variavel fixCommand em qual coluna você está, pois se eu digitar meu comando, e resolver voltar algumas colunas para adicionar mais coisas naquele mesmo comando, a variável string nao irá detectar em qual coluna voce está...

Por isso dessa variável.

Como eu faço adiciono uma determinada palavra no meio de uma string? Através desta função:

 

function addChar(ch:char;col:integer):string;

var str1,str2:string;

begin

Result := fixCommand;

str1 := Copy(fixCommand,1,col-1);

str2 := Copy(fixCommand,col,Length(fixCommand));

Result := str1 + ch + str2;

end;

 

Divido a string verdadeira em 2 partes

pego o comando que voce quer adicionar

colo a 1ª parte, colo o comando, e para finalizar colo a 2ª parte

Pronto.

 

Qualquer duvida, só perguntar.

 

flw

Link para o comentário
Compartilhar em outros sites

Interessante huh. Gostei ^_^

Pra ver como que, com códigos simples e com um bom raciocínio, dá pra se fazer um ótimo trabalho ^^

 

#Dicas pra próxima versão

Tem 3 coisinhas simples, que eu acho que você poderia acrescentar na próxima versão:

1 - FullScreen (alt+enter): Bem fácil esse né ^-^

2 - Uso de arquivos tipo .bat. Pra abrir bastaria arrastar o arquivo pra cima do MyCMD, pegar o arquivo com ParamStr(1) e usar um loop pra rodar os comandos.

3 - Quando não encontrar um comando imprimir uma mensagem de erro.

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.