Benutzer mit den meisten Antworten
Windows Tastenkombination ausschalten / abfangen

Frage
-
hi. Noch eine Frage von mir... ich versprech, das ist erstmal die letzte für ne Weile ^^
Ich bräuchte für ein Programm die Möglichkeit die Windows Tastenkombinationen auszuschalten, bzw abzufangen. Bei mir geht es um STRG+b, STRG+c, STRG+d, ..... bis STRG+L. Das verursacht in meiner Textbox unschöne Effekte (Zentrierung des Textes, Tabs usw), die ich gerne unterdrücken würde. Habe aber bisher nichts sinnvolles gefunden. Und ja, es sollte STRG sein. Grund: Es geht darum einen µC über einen seriellen Port anzusteuern. Auf diesem Läuft ein Programm, das dem Benutzer Eingabevorschläge ausgibt, eben die STRG+__ Kombinationen. Es ist mir allerdings nicht gestattet das Programm auf dem µC umzuschreiben um statt STRG andere Tasten zu verwenden...
Gibt es da eine Lösungsmöglichkeit?
Antworten
-
Du hast recht - Strg+i wird nicht abgefangen. Strg+e und Strg+c sind bei mir aber danach wirkungslos. (Andere hatten bei mir auch vorher keine Wirkung...)
Vielleicht hilft dir das weiter:
http://www.vbdotnetforums.com/vb-net-general-discussion/29996-how-disable-ctrl-i-tab-rich-text-box-visual-basic-net-project.htmlAlex
- Als Antwort markiert Stippy19 Donnerstag, 1. März 2012 13:51
Alle Antworten
-
Hallo,
ich vermute mal, dass es sich um eine RichTextBox handelt? Probier mal im OnKeyDown-Message-Handler
if (e->Control) e->Handled = true;
Dann werden die Strg-Key events ignoriert.
Alex
-
Das ändert bei mir irgendwie nichts...
Außerdem habe ich mich wohl falsch ausgedrückt: Ich will die Windows-eigenen STRG+X Kombinationen unterdrücken, aber eigene beibehalten. Also praktisch umschreiben der Kombinationen.
void Form1::keyPressed(System::Object^ sender, KeyEventArgs^ e)
{if(serial->SerPort->IsOpen && e->Control && MCControl == true) { if(e->KeyCode == Keys::B) { array<unsigned char>^ b = {2}; serial->sendSerial(ascii->GetString(b)); }
}
}
Habe das drin. Er muss also den ASCII Code Nummer 2 schicken, wenn ich STRG+b drücke (und der Serielle Port gerade offen ist, und eine Checkbox namens MCControl aktiviert ist).
Und ja, es handelt sich um eine RichTextBox.
-
Ich hatte die Codezeile drin, aber sie hatte nicht den gewünschten Effekt. Es wurden immernoch Tastenkombinationen ausgeführt, wie z.B. STRG+i führte zu einer Einrückung. (Habe oben nur mal reingeschrieben, was und wie ich das Keypressed_Event drin habe)
-
Du hast recht - Strg+i wird nicht abgefangen. Strg+e und Strg+c sind bei mir aber danach wirkungslos. (Andere hatten bei mir auch vorher keine Wirkung...)
Vielleicht hilft dir das weiter:
http://www.vbdotnetforums.com/vb-net-general-discussion/29996-how-disable-ctrl-i-tab-rich-text-box-visual-basic-net-project.htmlAlex
- Als Antwort markiert Stippy19 Donnerstag, 1. März 2012 13:51
-
Hört sich gut an. Werde ich heut Abend ausprobieren.
Danke schonmal.
Werde dann auch die Antwort markieren, falls es klappen sollte ^^
YEAH!! Super. Vielen Dank. Mit "if(e->Control) e->SuppressKeyPress;" Funktionierts.
Vielen vielen Dank. Das schafft mir einen sehr unschönen Fehler vom Hals XD