Seite 1 von 1

Circumflex und die Console

Verfasst: 08.05.2012, 16:13
von BeRsErKeR
Hallo,

gibt es eine Möglichkeit beim Aufruf einer Konsolenapplikation unter Windows direkt ein Circumflex (^) in den Parametern zu nutzen? Soweit ich weiß dient es als Escapezeichen ähnlich wie der Backslash in C/C++/C#. Mein Ziel ist es reguläre Ausdrücke in der Konsole als Parameter zu übergeben. Z.B. wie bei grep. Dafür brauch ich das Zeichen als solches. Ich weiß, dass man einfach zwei Circumflex-Zeichen hintereinander schreiben kann, nur werden das den meisten Benutzer nicht wissen/beachten.

Ich dachte da z.B. an eine Option, die man beim Compilen des Programms (hier C#) setzen kann oder so. Aber ich vermute fast, dass das direkt von der CommandShell verarbeitet wird und das Programm keinen Einfluss darauf nehmen kann.

Weiß da jemand was genaueres?

Re: Circumflex und die Console

Verfasst: 08.05.2012, 16:46
von eXile
Du willst tote Tasten abfangen. Das ist übrigens vom eingestellten Keyboard-Layout abhängig; in diesem Falle reagiert die Fensterfunktion (WndProc) der Konsole einfach anders (nämlich vermutlich nur auf WM_CHAR und nicht WM_DEADCHAR).

Ich vermute aber, das Konsolenfenster hat bereits seine eigene, feste WndProc, d.h. wahrscheinlich kannst du die nicht einfach ändern.

Re: Circumflex und die Console

Verfasst: 09.05.2012, 17:36
von BeRsErKeR
Also Abfangen will ich nichts selbst. Ich werte einfach die Argumente aus die an die Main-Funktion übergeben werden und da fehlt das Zeichen bereits. Ich war nicht großer Hoffnung dass man das ändern kann.

Re: Circumflex und die Console

Verfasst: 09.05.2012, 18:44
von eXile
Achso, sorry, dass hatte ich falsch verstanden. Das Verhalten der cmd.exe ist so eingebaut und gewollt, weil das Caret-Symbol der Escape-Character dort ist. Ist die Windows PowerShell eine Alternative (dort funktioniert das nämlich)?

Re: Circumflex und die Console

Verfasst: 10.05.2012, 11:58
von BeRsErKeR
Leider nein, da ich eine vorkonfigurierte Windows-Umgebung nutzen muss und keinerlei Software nachinstallieren kann. Die PowerShell ist nicht drauf. Es sind recht alte WinXP-Installationen. Aber dennoch vielen Dank für die Hilfe.