bestimmte Tasten deaktivieren
-
ich hab mal ein wenig geschaut, das blöde auf der MSDN page,
gibts Beispiele nur für VB...Ich arbeite mit dem Borland und kann leider das meiste davon,
nicht so einfach anwenden.Was die Funktionen nun tun bzw. welche ich brauche ist mir
nur klar...Aber wie mache ich diese Hauptfunktion, wo die ganzen Funktionen
ablaufen sollen ??
-
budili schrieb:
ich hab mal ein wenig geschaut, das blöde auf der MSDN page,
gibts Beispiele nur für VB...Das halte ich für ein Gerücht... Außerdem ist die MSDN einfach nützlich wegen der Funktionsdefinitionen. Dass du z.B. sehen kannst, welche Parameter welche Funktion erwartet, was sie zurückgibt, eine Beschreibung der Funktion, Querverweise, etc.
budili schrieb:
Aber wie mache ich diese Hauptfunktion, wo die ganzen Funktionen
ablaufen sollen ??Du suchst dir eine Stelle deines Programmes aus, an dem der Hook installiert werden soll. Und eine Stelle, an der er wieder entfernt werden soll.
Wenn du ein Fenster-Programm hast, ist es das Beste, du installierst den Hook, während das Fenster initialisiert wird und entfernst ihn wieder, wenn das Fenster geschlossen wird.PS: Wenn du das nicht hinbekommst, solltest du auch besser kein Programm schreiben, was man nicht beenden kann, den Taskmanager lahmlegt und so

-
ja ich weiß halt net genau, wie das gehen soll...
will es halt mal probieren.
gibt doch das eine schöne Sprichwort: Probieren geht über studieren
bzw. habe auch net viel Zeit atm da zu recherchieren, weil muss an dem
richtigen Projekt arbeiten, das mache ich so nebenbei in den Pausen
aber komme halt net so richtig weiter, deshalb frag ich euch ja ...
-
Versteh mich nicht falsch, Fragen ist super! Ist schließlich auch die Existenzgrundlage des Boards :xmas2:
-
gibt es eigentlich auch eine Möglichkeit,
die Tastatur einfach zu deaktivieren ??oder den Treiber vllt abstellen ?
ist sowas möglich ??
-
budili schrieb:
bzw. habe auch net viel Zeit atm da zu recherchieren, weil muss an dem
richtigen Projekt arbeiten, das mache ich so nebenbei in den Pausen
Dann solltest du das vielleicht etwas zurückstellen und dich erstmal auf den wesentlichen Teil des Projekts (sprich: Das Programm selber läuft fehlerfrei) konzentrieren. Und die Tastatur kannst du afaik nur entweder komplett abschalten (das wird nichts, wenn du sie im Programm noch brauchst) oder komplett einschalten (in dem Fall mußt du "verbotene" Tasten per Hook abfangen und neutralisieren).
-
ja schon, nur ich könnte es halt nach den Eingabe praktisch deaktivieren...
weil danach bräuchte man die nicht.
-
Vielleicht reicht ja für denjenigen, der mit deinem Programm arbeitet, ein "Bitte nicht anfassen" Schild, das er auf die Tastatur legen kann

(ansonsten: Wir haben dir hier eine Lösung genannt - nimm sie oder lass es bleiben)
-
hmm.. nee andere Frage:
und zwar gibts da ne Möglichkeit ne bestimmte Taste zu setzen?
z.B. ich drücke einen Button und die Enter Taste oder WinTaste wird
gesetzt und übergibt das dem OS ??thx
-
SendInput
-
moin,
irgendwas geht da nicht so Recht...
ich will mir nun die Struktur für sendInput erzeugen..
INPUT structInput;
structInput = new INPUT();aber das hier will er nicht machen..
Compilermeldung--> Fehler: E2034 Konvertierung von tagINPUT nach tagINPUT nicht möglich....
wieso macht er das nicht?
-
new liefert einen Zeiger, also müsstest du den auch in einer Zeigervariablen (INPUT* pinput) speichern. Alternativ kannst du den new-Aufruf auch weglassen und direkt mit deiner Stack-Variablen weiterarbeiten:
INPUT input; SendInput(1,&input,sizeof(input));
-
boaa VIELEN DANK !!
stand irgendwie auf der Leitung... und bin net weiter gekommen.
aber nun gehts.
Also der Hook scheint auch zu laufen

-
hmm noch ne andere Frage:
wie frage ich eigentlich so ne Tastenkombination ab?
bsp: Str + Escalso wenn 2 Tasten gedrückt werden.
mit dem && gehts doch nicht oder ??
bsp: if ( wParam == VK_CONTROL && ..... )
-
Die WM_KEYDOWN etc reagieren nur auf einzelne Tasten. Aber du kannst über GetAsyncKeyState() abfragen, ob eine Taste gerade gedrückt ist:
if(GetAsyncKeyState(VK_CONTROL) && GetAsyncKeyState(VK_ESCAPE))...
-
hmm irgendwie klappt das nicht ganz...
diese if-Abfrage ist immer false bei dem...
es sei den ich halte die Str Taste permanent gedrückt,
aber nur kurz drücken und hinterher Esc funzt net...kann ich mit der Funktion "sendInput" auch 2 Tasten senden?
eine funktioniert ja mittlerweile, aber wie geht das mit 2 ??
-
budili schrieb:
hmm irgendwie klappt das nicht ganz...
diese if-Abfrage ist immer false bei dem...
es sei den ich halte die Str Taste permanent gedrückt,
aber nur kurz drücken und hinterher Esc funzt net...Was erwartest du denn? Wenn du die Tasten nacheinander betätigst, erkennt das niemand als Tasten-Kombination an.
kann ich mit der Funktion "sendInput" auch 2 Tasten senden?
eine funktioniert ja mittlerweile, aber wie geht das mit 2 ??Das funktioniert genauso wie mit der Tastatur: Du schickst erst Key-Down-Befehle und danach die zugehörigen Key-Up-Befehle.
INPUT data[4]; for(int i=0;i<4;++i) data[i].type=INPUT_KEYBOARD data[0].wVk = data[3].wVk = VK_CONTROL; data[1].wVk = data[2].wVk = VK_ESCAPE; data[2].dwFlags = data[3].dwFlags = KEYEVENTF_KEYUP; SendInput(4,data,sizeof(INPUT));