Tastaturpuffer auslesen und verändern
-
Hi,
Ich möchte ein Programm schreiben, was eingegebenen Text in 1337 übersetzt, und zwar ohne dass die normalen Buchstaben erscheinen.
Soll heißen, das Programm ist in den Tray minimiert und macht aus jeder Eingabe der Tastatur den gleichen Buchstaben nur in 1337.
z.BIch habe Word offen und tippe "hallo". Dann soll im Word-Fenster erscheinen:
|-|4||().
Das Programm soll den Tastaturpuffer verändern und nicht nur neue Zeichen einsetzen, sonst würde da stehen:
h|-|a4l|_l|_o().Ich habe es mit folgendem Code probiert: (Noch nicht ganz fertig)
#include <iostream> #include <conio.h> using namespace std; int main(void) { while() { if(kbhit()) { char c = getch(); switch(c) { case 'a': cout << '4'; break; case 'b': cout << "|3"; break; case 'c': cout << "("; break; case 'd': cout << "|)"; break; case 'e': cout << "3"; break; case 'f': cout << "|="; break; case 'g': cout << "6"; break; case 'h': cout << "|-|"; break; case 'i': cout << "!"; break; case 'j': cout << "j"; break; case 'k': cout << "|<"; break; case 'l': cout << "1"; break; case 'm': cout << "M"; break; case 'n': cout << "/\/"; break; case 'o': cout << "()"; break; case 'p': cout << "|°"; break; case 'q': cout << "9"; break; case 'r': cout << "|2"; break; case 's': cout << "$"; break; case 't': cout << "7"; break; case 'u': cout << "|_|"; break; case 'v': cout << "\/"; break; case 'w': cout << "\/\/"; break; case 'x': cout << "><"; break; case 'y': cout << "´/"; break; case 'z': cout << "2"; break; case ' ': cout << " "; break; } } } }Klappt wunderbar, aber leider nur in dem Konsolenfenster nirgendwo sonst. Weiß jemand, wie dies realisierbar wäre?^^
-
Die Lösung ist plattformspezifisch. Unter Windows kannst du einen globalen Hook setzen (siehe "SetWindowsHookEx") und mit "SendInput" neue Tastaturereignisse senden.
-
Mal abgesehen von der technischen Machbarkeit (Windows Linux, MAC?). Wofür ist das Programm denn gedacht?