Aí galera, sou novo aqui! Tenho que fazer um programa para controlar a porta paralela, mas o problema é que eu tenho que enviar um bit somente quando uma tecla for pressionada e quando eu soltar tal tecla o programa não deve enviar nada, já comecei e fiz um programa simples aqui mas não faz o que eu preciso, alguém ai pode me mostrar como fazer? (tentei com o keypressed não deu certo, talvez burrice minha =)) VALEU!Abaixo esta o que já fiz, estou usando dev c++ #include // Biblioteca Standard Input/Output #include <conio.h> // Biblioteca necessária para o uso da função getch(); #include <windows.h> // Biblioteca necessária para o carregamento da inpout32.dll /*Inpout32*/ //Declaração dos ponteiros para função. typedef short _stdcall (*PtrInp)(short EndPorta); typedef void _stdcall (*PtrOut)(short EndPorta, short datum); HINSTANCE hLib; //Instância para a DLL inpout32.dll. PtrInp inportB; //Instância para a função Imp32(). PtrOut outportB; //Instância para a função Out32(). /*Inpout32*/ int main() { /*Inpout32*/ //Carrega a DLL na memória. hLib = LoadLibrary("inpout32.dll"); if(hLib == NULL) { printf("\n\aErro. O arquivo inpout32.DLL não foi encontrado.\nO programa vai terminar apos digitar qualquer tecla."); getch(); } else {//Todo o programa só será executado apenas se a dll for carregada. //Obtém o endereço da função Inp32 contida na DLL. inportB = (PtrInp) GetProcAddress(hLib, "Inp32"); if(inportB == NULL) { printf("\n\aErro. Erro ao endereçar a função Inp32."); } //Obtém o endereço da função Out32 contida na DLL. outportB = (PtrOut) GetProcAddress(hLib, "Out32"); if(outportB == NULL) { printf("\n\aErro. Erro ao endereçar a função Out32."); } /*Inpout32*/ char teclado=' '; puts("Para enviar um dos bits da porta paralela\naperte as teclas referentes aos bits\n0,1,2,3,4,5,6,7. \nPara terminar o programa digite p."); teclado=getch(); while(teclado!='p') { switch(teclado) { case '0': outportB(0x378,1); /* A função que manda um byte para a porta paralela no caso o número 1 ou 0000 0001 em binário*/ break; case '1': outportB(0x378,2); /* Novamente a função que manda um dado a porta paralela*/ break; case '2': outportB(0x378,4); break; case '3': outportB(0x378,8); break; case '4': outportB(0x378,16); break; case '5': outportB(0x378,32); break; case '6': outportB(0x378,64); break; case '7': outportB(0x378,128); break; } teclado=getch(); } outportB(0x378,0); } }