Delphi Brasil
Seja bem-vindo (a) ao Delphi Brasil,aqui você encontrará dicas,tutoriais e etc.
Por favor,registre-se para obter o maior proveito possivel do fórum.
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Conectar-se

Esqueci minha senha

Parceiros

Criando Programas de Console para Trabalhar com a Prompt de Comando

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por MasterMC em Sex Dez 17, 2010 10:42 am

Bom, neste tutorial ensinarei a vocês baseados em conhecimentos de C/C++ como criar programas para trabalhar em conjunto com a prompt de comando, ou seja, para seu programa poder usado em conjunto com Batch Script ou diretamente com a prompt.

Exemplos de programa:Taskkil, Tasklist, e a maioria dos comandos da prompt.

Bom, vamos começar:

1º - Temos aqui um código de um programa meu que trabalha em conjunto com a prompt de comando para de acordo com a descisão do usuário abrir/fechar o drive de cd-rom.Bem antigo e básico mas serve para estudar.

Abra o compilador ( eu utilizo o Dev-C++ e em breve migrarei para a Borland ), abra um novo projeto de console, linguagem C++, e cole o código.Feito isso se quiser execute-o.O programa abrirá e fechará rapidamente certo?E nada aconteceu?É assim que deve ser, pois para que haja alguma coisa o programa deve ser chamado por um arquivo .bat ou .cmd ou até mesmo pela própria prompt de comando.Caso os parâmetros estejam errados ele retorna um valor para você e diz como se usa o programa.Enfim, dúvidas me perguntem.

Código:

#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;//declarando as funções da std que vamos usar, como o cout

char str[100];//string que utilizaremos
int valor;//inteira que utilizaremos

typedef MCIERROR WINAPI(*CDROM)(const char*, char*, unsigned, HWND); //Definição de uso do CD

CDROM Command;//Declarando o comando para abrir o cd



int main(int argc, char *argv[]) //inicio
{
    if(argc==2){ //se existirem 2 argumentos(parâmetros)... Parâmetros:Nome_do_arquivo 0/1
               
                strcpy(str,argv[1]);//Copia o 2º argumento para str
                valor=(int)str[0]-48;//converte o 2ºparâmetro que agora é o primeiro char da string str em inteiro e diminui 48 para obter o número digitado pelo usuário pois na tabeça ASCII 0=48, 1=49... por isso realizamos esta conversão
                if(valor==1){//se o valor for 1...
                               
                                Command = (CDROM) GetProcAddress(LoadLibrary("winmm.dll"), "mciSendStringA");//inicializa a dll do sistema que abre/fecha o drive de cd rom
                                Command("Set CDAudio Door Open", NULL, 0, NULL);//manda ela abrir o drive
                                cout << endl << "CD Drive Door is Opened!\n";//retorna uma msg caso funcione
                                return 0;//retorna 0 que significa sucesso
                                system("goto:eof");//termina o programa
                                system("exit");//termina o programa, só por compatibilidade
                                } else if(valor==0){//caso o valor seja 0...
                               
                                Command = (CDROM) GetProcAddress(LoadLibrary("winmm.dll"), "mciSendStringA");//inicializa a dll do sistema...
                                Command("Set CDAudio Door Closed", NULL, 0, NULL);//manda fechar a porta do drive
                                cout << endl << "CD Drive Door is Closed!\n";//retorna uma msg
                                return 0;//retorna 0 ao errorlevel que significa sucesso
                                system("goto:eof");//termina
                                system("exit");//termina
                                }
                cout << endl << "Error in parameters!\n";//msg de erro
                return 1;//fracasso...
                system("goto:eof");//termina
                system("exit");//termina
                }
   
    printf("Form to use: %s 0(close)/1(open)\n",argv[0]);//forma de usar
    printf("To execute in silence acrescents >nul in the end of command.\n");//executar em silêncio
    printf("Program by MasterMC Version 1.0\n\n");//versão e créditos a mim ^^
    return 1;//fracasso...
    system("goto:eof");//termina
    system("exit");//termina

}

Se quiserem testar, abram o bloco de notas, e colem isso:


Já comentei todo o código do programa, então não há a necessidade de explicar de novo, certo?Caso alguém tenha alguma dúvida basta perguntar que responderei.

OBS:Sei que o foco do fórum é Delphi, porém sei melhor C/C++ do que Delphi, que estou iniciando agora.

_________________
lol! MASTERMC, O MESTRE DA PROGRAMAÇÃO! lol!

CUIDADO! AGORA ESTOU NA ÁREA!
avatar
MasterMC
Moderador
Moderador

Mensagens : 3
Data de inscrição : 17/12/2010
Idade : 20
Localização : Na frente do PC

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por sargita em Sex Dez 17, 2010 11:01 am

Muito bom!!!
Use o Visual studio ele vc pode copilar em varias linguas! C++,VB e etc

sargita
Membro
Membro

Mensagens : 10
Data de inscrição : 17/12/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por leandrohackerx em Sex Dez 17, 2010 1:16 pm

Não testei mmas parece muito bom,parabens pelo tutorial.
avatar
leandrohackerx
Administrador
Administrador

Mensagens : 19
Data de inscrição : 17/12/2010
Idade : 21
Localização : Na frente do PC

Ver perfil do usuário http://delphibrasil.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por sargita em Sex Dez 17, 2010 1:21 pm

Comu escrevi no topico e apagaram...
o forum ficou maneiro...Gostei muito...
nao sou muito bom em linguagens diferente de batch...mas se rpecisar estamos ai...

sargita
Membro
Membro

Mensagens : 10
Data de inscrição : 17/12/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por leandrohackerx em Sex Dez 17, 2010 1:32 pm

Eu tive que apagar por motivo de flood,lembre-se,regras são regras,mas eu deichei passar,da próxima vez eu lamento muito,mas terei q tirar 25% da sua barra de "warning" (Respeito de Regras).
avatar
leandrohackerx
Administrador
Administrador

Mensagens : 19
Data de inscrição : 17/12/2010
Idade : 21
Localização : Na frente do PC

Ver perfil do usuário http://delphibrasil.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por MasterMC em Sex Dez 17, 2010 2:54 pm

Olá galera, muito obrigado, em breve estarei postando mais conteúdos sobre ambas as linguagens ^^

_________________
lol! MASTERMC, O MESTRE DA PROGRAMAÇÃO! lol!

CUIDADO! AGORA ESTOU NA ÁREA!
avatar
MasterMC
Moderador
Moderador

Mensagens : 3
Data de inscrição : 17/12/2010
Idade : 20
Localização : Na frente do PC

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por Salathiel em Seg Dez 27, 2010 6:22 pm

ensinarei

Cara existem leis contra plagio sabia?
(O BOPE vai te pegar)

Não entendi pra que serve essa porcaria (Desculpa)

Pelo que eu entendi você quis fazer algo para abrir o diver do CD, aqui não funcionou não.

Mais como eu sou bonzinho (Mentira) vou passar um código que funciona:

Código:
#include <windows.h>
#include <stdio.h>

typedef MCIERROR WINAPI (*CDROM)(const char*,char*,unsigned,HWND);//MAIN

CDROM pCD;

void AbrirCD()//Abrindo
{
pCD("Set CDAudio Door Open",NULL,0,NULL);//Função
}

void FecharCD(){
pCD("Set CDAudio Door Closed",NULL,0,NULL);//Função

}

int menu()
{
int choice;
printf("Voce deseja abrir ou fechar o drive de cd?\n");
printf("[1]Abrir\n");
printf("[2]Fechar\n");
scanf("%d", &choice);
switch(choice)
{
case 1:
AbrirCD();
goto finish;
case 2:
FecharCD();
goto finish;
default:
printf("Opcao inexistente\n");
Sleep(250);
exit(0);
}
finish:
exit(0);
return 0;
}

int main()
{
HINSTANCE dll = LoadLibrary("winmm.dll");
if(!dll)
return 1;


pCD = (CDROM)GetProcAddress(dll,"mciSendStringA");
if(!pCD)
return 1;

menu();

return 0;
}
avatar
Salathiel
Membro
Membro

Mensagens : 8
Data de inscrição : 27/12/2010
Idade : 21
Localização : Frente do PC

Ver perfil do usuário http://world-games.forumeiro.com/

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por sargita em Ter Dez 28, 2010 1:59 am

Salathiel,
Infelizmente nao sao todos os sistemas operacionais que aceitam...
aceito somente ate o windows XP

sargita
Membro
Membro

Mensagens : 10
Data de inscrição : 17/12/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por Salathiel em Ter Dez 28, 2010 6:41 am

sargita escreveu:Salathiel,
Infelizmente nao sao todos os sistemas operacionais que aceitam...
aceito somente ate o windows XP
O sistema operacional daqui e windows XP e mesmo assim não funfo cara.
Agora meu código ai em cima funciona no XP
avatar
Salathiel
Membro
Membro

Mensagens : 8
Data de inscrição : 27/12/2010
Idade : 21
Localização : Frente do PC

Ver perfil do usuário http://world-games.forumeiro.com/

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por sargita em Ter Dez 28, 2010 9:02 am

BLZ!!
Qlinguagem q ele esta escrito c++?

sargita
Membro
Membro

Mensagens : 10
Data de inscrição : 17/12/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por Salathiel em Ter Dez 28, 2010 5:35 pm

sargita escreveu:BLZ!!
Qlinguagem q ele esta escrito c++?
Nossa cara, você ainda acha que tem futuro na programação?
E claro que ta em C. Pois printf é uma função do C, em c++ usa-se cout.
avatar
Salathiel
Membro
Membro

Mensagens : 8
Data de inscrição : 27/12/2010
Idade : 21
Localização : Frente do PC

Ver perfil do usuário http://world-games.forumeiro.com/

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por sargita em Sab Jan 08, 2011 1:22 pm

Eu nao sei C e C++ nao...e nen sou obrigado a saber todas a slinguas...

sargita
Membro
Membro

Mensagens : 10
Data de inscrição : 17/12/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por Salathiel em Sab Jan 08, 2011 1:26 pm

Eu nao sei C e C++ nao...e nen sou obrigado a saber todas a slinguas...

Não falei que você tem que saber todas as linguagens de programação. Só falei porque isso é um fórum de delphi, ai eu pensei que os membros sabiam o básico de C/C++.
avatar
Salathiel
Membro
Membro

Mensagens : 8
Data de inscrição : 27/12/2010
Idade : 21
Localização : Frente do PC

Ver perfil do usuário http://world-games.forumeiro.com/

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por sargita em Sab Jan 08, 2011 1:41 pm

o q tem haver delphi com c/c++??
que saber de uma coisa nao vou ficar discutindo uma coisa boba dessa!

sargita
Membro
Membro

Mensagens : 10
Data de inscrição : 17/12/2010

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por Salathiel em Sab Jan 08, 2011 1:48 pm

o q tem haver delphi com c/c++??

E porque a maioria das pessoas que sabe delphi sabe um pouco de C/C++.

que saber de uma coisa nao vou ficar discutindo uma coisa boba dessa!

Se você esta discutindo...eu não to.
avatar
Salathiel
Membro
Membro

Mensagens : 8
Data de inscrição : 27/12/2010
Idade : 21
Localização : Frente do PC

Ver perfil do usuário http://world-games.forumeiro.com/

Voltar ao Topo Ir em baixo

Re: Criando Programas de Console para Trabalhar com a Prompt de Comando

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum