Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Código Fonte de um simples programa que Ativa e Desativa o teclado.

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Código Fonte de um simples programa que Ativa e Desativa o teclado.

    Olá pessoal quero compartilhar com vocês um código de um programa que Ativa e desativa o teclado.

    Código:
    #include<stdio.h>
    #include<conio.h>
    #include<dos.h>
    
    main() 
    {
     clrscr();
     outportb(0x64,0xAD);    /*Código para desativar o TECLADO*/
     printf("
    Teclado Desativado");
     delay(10000);
     clrscr();
     printf("
    Teclado Ativado");
     outportb(0x64,0xAE);    /*Código para habilitar o TECLADO*/
     getch();
    
    }

    Espero que gostem.


    WCG 147
    sigpic

  • Font Size
    #2
    Muito bom da onde voce tira comandos especificos como esse tem uma boa fonte que possa compartilhar?

    Comment


    • Font Size
      #3
      Belo codigo em mano, ta de parabéns.

      Por incrível que pareça agora pouco eu estava vendo este post, não sei o que deu no meu teclado mais ele travou e começou a ligar e desligar a luz do NumLock, CapsLock e Scroll Lock sozinhoooo :O, acho que foi culpa do seu posta auahauhauhauahuah

      Comment


      • Font Size
        #4
        WCG147 posta aí a fonte de onde vc tirou, seja livro, site, etc...

        Comment


        • Font Size
          #5
          to precisando de um que ativa o caps look pra mim colocar ele pra carregar na inicialização do meu Slackware... acredito que em C ele va funfar
          Não Acha Estranha Essa Frase:
          Eu Sou Hacker e Uso Windows XP!

          Use Débian, Aprenda Slackware e Brinque Muito Com Back|Track


          Fã ->Nickguitar.dll


          Quer ajudar nossso fórum e não sabe como?
          Então click na imagem e ajude-nos com os links off

          Comment


          • Font Size
            #6
            Programa Windows, não funciona em outros sistemas operacionais... é bom avisar para o pessoal não ficar tentando compilar em vão no Linux.
            sigpic
            Eis que estou à porta, e bato; se alguém ouvir a minha voz, e abrir a porta,
            entrarei em sua casa, e com ele cearei, e ele comigo. (Apocalipse 3:20)

            https://twitter.com/jackads
            http://www.facebook.com/jackson.beneteferreira

            Comment


            • Font Size
              #7
              vlw . WCG muito legal..

              FalcoOmxD


              "stay hungry stay foolish" - Um perfeito círculo virtuoso, talvez utópico, mas alcançável.
              Steve Jobs

              Comment


              • Font Size
                #8
                Código Adaptado e Funcionando

                Por fim consegui, estava faltando adcionar a biblioteca sys/io pois pensei que a própria unistd já habilitava os comandos que usei.

                Código:
                /*Adaptacao de programa que ativa e desativa teclado no Linux*/
                
                #include <stdio.h>
                #include <time.h>
                #include <unistd.h>
                #include <sys/io.h>
                
                main(void) 
                {
                
                 ioperm(0x64, 1, 1); 	//libera a porta 0x64
                /*Libera acesso a porta 0x64  ioperm(porta, ateasproximas, 1(verdadeiro)) */
                 
                
                 printf("\033[2J"); 	//Limpa a tela
                 printf("Teclado Desativado");
                 outb(0xAD,0x64);   	//desativa o teclado
                 usleep(5000000);  	//substitui o "delay" 5000000 = 5 segundos
                 printf("\033[2J");
                 printf("Teclado Ativado");
                 outb(0xAE,0x64);    	//ativa o teclado
                 getchar(); 		//permite escrever na tela ou espera ate ser pressionada alguma tecla
                
                 return 0;
                }

                O código funciona, o teclado realmente fica desabilitado, as portas estão certas e o código também, comentei para o pessoal entender, o único problema é que ele não está limpando a tela na hora certa, mas isso é um mistério, tentei modificar o código de várias formas aqui trocando a ordem de alguns comandos que eu pensei que poderiam influenciar isso mas não adiantou, mas o único problema está nesse problema com a limpeza da tela o resto funciona tudo direitinho, o teclado fica travado durante 5 segundos e depois volta.

                O pessoal fala que migrar programa de windows para linux é complicado porque os códigos são completamente diferentes e possui algumas incompatibilidades de biblioteca, e agora eu sei que é verdade, um programa simples desse já deixa a desejar na adaptação, imaginem programas grandes.

                Se puderem podem apagar a postagem acima já que foi resolvido, se fizerem isso agradeço.


                Shalom!
                sigpic
                Eis que estou à porta, e bato; se alguém ouvir a minha voz, e abrir a porta,
                entrarei em sua casa, e com ele cearei, e ele comigo. (Apocalipse 3:20)

                https://twitter.com/jackads
                http://www.facebook.com/jackson.beneteferreira

                Comment


                • Font Size
                  #9
                  Obrigado Jackads, irá ser muito útil vou comessar a postar mais códigos para Linux é que estou meio sem tempo pra isso, mais postarei.

                  Abraços.

                  WCG 147
                  sigpic

                  Comment


                  • Font Size
                    #10
                    Será muito útil irmão, só de você postar qualquer código seja ele Linux ou não já ajuda, se postar de Linux é mais útil ainda para nós usuários Linux.

                    De qualquer forma foi uma boa forma de estudo ter convertido esse seu código aí para Linux, demorou um pouquinho, teve uma hora que quase desisti mas consegui. Programar para um sistema operacional é uma realidade completamente diferente, se já demorou um pouco transformar esse código aí de windows para linux desse programa simples imagine adaptar um photoshop da vida? rs

                    Mas qualquer esforço é válido para fins de estudo. Obrigado pelo código.

                    Shalom!
                    sigpic
                    Eis que estou à porta, e bato; se alguém ouvir a minha voz, e abrir a porta,
                    entrarei em sua casa, e com ele cearei, e ele comigo. (Apocalipse 3:20)

                    https://twitter.com/jackads
                    http://www.facebook.com/jackson.beneteferreira

                    Comment


                    • Font Size
                      #11
                      Ai galera o código fonte do Gerador de CPF, CNPJ e Titulo de Eleitor!!! em C++


                      #include<stdio.h>
                      #include<stdlib.h>
                      #include<string.h>
                      #include<conio.h>
                      main()
                      {
                      int opcao,erro=0;
                      char resp;
                      inicio:
                      fflush(stdin);
                      system("cls");
                      printf("*========================================= =========================*\n");
                      printf("|____ GERADOR DE NUMEROS DE CPF, CNPJ E TITULO ELEITORAL V. 1.0 ___|\n");
                      printf("| |\n");
                      printf("| Autor: Eliel sodre |\n");
                      printf("| E-mail: elielsodre@gmail.com |\n");
                      printf("| 3o. Semestre - Licenciatura em Computacao |\n");
                      printf("| Disciplina: Linguagem de Programacao I |\n");
                      printf("| Prof. hacker |\n");
                      printf("*========================================= =========================*\n\n");
                      printf("*-----------------------------*\n");
                      printf("| Menu de opcoes |\n");
                      printf("*-----------------------------*\n");
                      printf("| 1 - Gerar numeros de CPF |\n");
                      printf("| 2 - Gerar Numeros de CNPJ |\n");
                      printf("| 3 - Gerar Numeros de TE |\n");
                      printf("| 4 - Finalizar programa |\n");
                      printf("*-----------------------------*\n");
                      erro=0;
                      do
                      {
                      erro++;
                      if(erro>1)
                      {
                      printf("Erro: Opcao invalida!\n");
                      erro=1;
                      }
                      printf("Informe a sua opcao: ");
                      scanf("%d",&opcao); fflush(stdin);
                      }while(opcao>4 || opcao<1);
                      switch(opcao)
                      {
                      case 1:
                      {
                      system("cls");
                      int numero[9],soma1,soma2,i,erro,cpf,quant;
                      int parte1,parte2,parte3,dig1;
                      int parte5,parte6,parte7,dig2;
                      printf("*========================================= =========================*\n");
                      printf("|____ GERADOR DE NUMEROS DE CPF, CNPJ E TITULO ELEITORAL V. 1.0 ___|\n");
                      printf("| |\n");
                      printf("| Autor: Eliel sodre |\n");
                      printf("| E-mail: elielsodre@gmail.com |\n");
                      printf("| 3o. Semestre - Licenciatura em Computacao |\n");
                      printf("| Disciplina: Linguagem de Programacao I |\n");
                      printf("| Prof. hacker |\n");
                      printf("*========================================= =========================*\n\n");
                      printf("Deseja gerar quantos numeros de CPF: ");
                      scanf("%d",&quant);
                      printf("*========================================= =========================*\n");
                      //*==========================================*
                      //| Geração dos numeros do CPF |
                      //*==========================================*
                      for(cpf=1;cpf<=quant;cpf++)
                      {
                      for(i=1;i<= 9;i++)
                      {
                      erro=1;
                      do
                      {
                      if(erro>1)
                      {
                      printf("Numero invalido.\n");
                      erro=1;
                      }
                      numero[i]=rand()%9;
                      erro++;
                      }while(numero[i]>9 || numero[i]<0);
                      }
                      //*==========================================*
                      //| Primeiro digito veridicador |
                      //*==========================================*
                      soma1=((numero[1]*10)+
                      (numero[2]*9)+
                      (numero[3]*8)+
                      (numero[4]*7)+
                      (numero[5]*6)+
                      (numero[6]*5)+
                      (numero[7]*4)+
                      (numero[8]*3)+
                      (numero[9]*2));
                      parte1=int(soma1 / 11);
                      parte2=(parte1 * 11);
                      parte3=(soma1 - parte2);
                      dig1=(11 - parte3);
                      if(dig1>9)dig1=0;
                      //*==========================================*
                      //| Segundo digito veridicador |
                      //*==========================================*
                      soma2=((numero[1]*11)+
                      (numero[2]*10)+
                      (numero[3]*9)+
                      (numero[4]*8)+
                      (numero[5]*7)+
                      (numero[6]*6)+
                      (numero[7]*5)+
                      (numero[8]*4)+
                      (numero[9]*3)+
                      (dig1*2));
                      parte5=int(soma2 / 11);
                      parte6=(parte5 * 11);
                      parte7=(soma2 - parte6);
                      dig2=(11 - parte7);
                      if(dig2>9)dig2=0;
                      //*==========================================*
                      //| Impressao do numero completo |
                      //*==========================================*
                      for(i=1;i<=9;i++)
                      {
                      printf("%d",numero[i]);
                      if(i-1==2) printf(".");
                      if(i-1==5) printf(".");
                      }
                      printf("-%d%d\n",dig1,dig2); //dois últimos digitos
                      printf("*========================================= =========================*\n");
                      }
                      printf("Pressione \"enter\" para continuar...");
                      getchar();
                      getchar();
                      break;
                      }
                      case 2:
                      {
                      system("cls");
                      int numero[12],soma1,soma2,i,erro,cnpj,quant;
                      int parte1,parte2,parte3,dig1;
                      int parte5,parte6,parte7,dig2;
                      printf("*========================================= =========================*\n");
                      printf("|____ GERADOR DE NUMEROS DE CPF, CNPJ E TITULO ELEITORAL V. 1.0 ___|\n");
                      printf("| |\n");
                      printf("| Autor: Eliel sodre |\n");
                      printf("| E-mail: elielsodre@gmail.com |\n");
                      printf("| 3o. Semestre - Licenciatura em Computacao |\n");
                      printf("| Disciplina: Linguagem de Programacao I |\n");
                      printf("| Prof. hacker |\n");
                      printf("*========================================= =========================*\n\n");
                      printf("Deseja gerar quantos numeros de CNPJ: ");
                      scanf("%d",&quant);
                      printf("*========================================= =========================*\n");
                      //*==========================================*
                      //| Geração dos numeros do CNPJ |
                      //*==========================================*
                      for(cnpj=1;cnpj<=quant;cnpj++)
                      {
                      for(i=1;i<=8;i++)
                      {
                      numero[i]=rand()%9;
                      }
                      numero[9]=0;
                      numero[10]=0;
                      numero[11]=0;
                      numero[12]=rand()%9;
                      //*==========================================*
                      //| Primeiro digito veridicador |
                      //*==========================================*
                      soma1=((numero[1]*5)+
                      (numero[2]*4)+
                      (numero[3]*3)+
                      (numero[4]*2)+
                      (numero[5]*9)+
                      (numero[6]*8)+
                      (numero[7]*7)+
                      (numero[8]*6)+
                      (numero[9]*5)+
                      (numero[10]*4)+
                      (numero[11]*3)+
                      (numero[12]*2));
                      parte1=int(soma1 / 11);
                      parte2=(parte1 * 11);
                      parte3=(soma1 - parte2);
                      dig1=(11 - parte3);
                      if(dig1>9)dig1=0;
                      //*==========================================*
                      //| Segundo digito veridicador |
                      //*==========================================*
                      soma2=((numero[1]*6)+
                      (numero[2]*5)+
                      (numero[3]*4)+
                      (numero[4]*3)+
                      (numero[5]*2)+
                      (numero[6]*9)+
                      (numero[7]*8)+
                      (numero[8]*7)+
                      (numero[9]*6)+
                      (numero[10]*5)+
                      (numero[11]*4)+
                      (numero[12]*3)+
                      (dig1*2));
                      parte5=int(soma2 / 11);
                      parte6=(parte5 * 11);
                      parte7=(soma2 - parte6);
                      dig2=(11 - parte7);
                      if(dig2>9)dig2=0;
                      //*==========================================*
                      //| Impressao do numero completo |
                      //*==========================================*
                      for(i=1;i<=12;i++)
                      {
                      printf("%d",numero[i]);//numeros do CNPJ
                      if(i==2) printf(".");//imprime um ponto depois da 2ª casa
                      if(i==5) printf(".");//imprime um ponto depois da 5ª casa
                      if(i==8) printf("/");//imprime uma barra depois da 8ª casa
                      }
                      printf("-%d%d\n",dig1,dig2); // dois últimos digitos
                      printf("*========================================= =========================*\n");
                      }
                      printf("Pressione \"enter\" para continuar...");
                      getchar();
                      getchar();
                      break;
                      }
                      case 3:
                      {
                      system("cls");
                      int numero[10],soma1,soma2,i,te,quant;
                      int parte1,parte2,parte3,parte4,dig1,dig2;
                      printf("*========================================= =========================*\n");
                      printf("|____ GERADOR DE NUMEROS DE CPF, CNPJ E TITULO ELEITORAL V. 1.0 ___|\n");
                      printf("| |\n");
                      printf("| Autor: Eliel sodre |\n");
                      printf("| E-mail: elielsodre@gmail.com |\n");
                      printf("| 3o. Semestre - Licenciatura em Computacao |\n");
                      printf("| Disciplina: Linguagem de Programacao I |\n");
                      printf("| Prof. hacker |\n");
                      printf("*========================================= =========================*\n\n");
                      printf("Deseja gerar quantos numeros de TE: ");
                      scanf("%d",&quant);
                      printf("========================================== ==\n");
                      //*==========================================*
                      //| Geração dos numeros do TE |
                      //*==========================================*
                      for(te=1;te<=quant;te++)
                      {
                      for(i=1;i<=8;i++)
                      {
                      numero[i]=rand()%9;
                      numero[9]=rand()%2;
                      numero[10]=rand()%8;
                      }
                      //*==========================================*
                      //| Primeiro digito veridicador |
                      //*==========================================*
                      soma1=((numero[1]*2)+
                      (numero[2]*3)+
                      (numero[3]*4)+
                      (numero[4]*5)+
                      (numero[5]*6)+
                      (numero[6]*7)+
                      (numero[7]*8)+
                      (numero[8]*9));
                      parte1=int(soma1 / 11);
                      parte2=(parte1 * 11);
                      dig1=(soma1 - parte2);
                      if(dig1>9)dig1=0;
                      //*=========================================*
                      //| Segundo digito verificador |
                      //*=========================================*
                      soma2=((numero[9]*7)+
                      (numero[10]*8)+
                      (dig1*9));
                      parte3=int(soma2 / 11);
                      parte4=(parte3 * 11);
                      dig2=(soma2 - parte4);
                      if(dig2>9)dig2=0;
                      //*==========================================*
                      //| Impressao do numero completo |
                      //*==========================================*
                      for(i=1;i<=10;i++)
                      {
                      printf("%d",numero[i]);
                      if(i==4) printf(" "); //imprime um espaço apos a 4ª casa
                      if(i==8) printf(" "); //imprime um espaço apos a 8ª casa
                      }
                      printf("%d%d\n",dig1,dig2); //dois últimos digitos
                      printf("========================================== ==\n");
                      }
                      printf("Pressione \"enter\" para continuar...");
                      getchar();
                      getchar();
                      break;
                      }
                      case 4:
                      {
                      printf("Deseja continuar no programa (s/n)? ");
                      scanf("%s",&resp);
                      if((resp=='n') || (resp=='N')) goto fim;
                      else goto inicio;
                      }
                      }
                      goto inicio;
                      fim:;
                      }

                      participe da minha comunidadee!!!
                      Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

                      Comment

                      X
                      Working...
                      X