c # - Windows - Kan konsollen output utilsigtet forårsage et system bip?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en C # konsol applikation, der logger meget til konsollen (ved hjælp af Trace). Nogle af de ting, det logger på, er den komprimerede repræsentation af en netværksbesked (så meget af det gengives som funky ikke-alfabetiske tegn).


Jeg får systempip alle så ofte, mens applikationen kører. Er det muligt, at noget 'tekst', jeg skriver til konsollen, forårsager dem?


(Ved systembip mener jeg fra den lavteknologiske højttaler inde i pc-kabinettet, ikke nogen form for Windows lydskema WAV)





Hvis ja, er der nogen måde at deaktivere det til min ansøgning? Jeg vil gerne kunne udstille enhver mulig tekst uden at det fortolkes som en lydanmodning.

Bedste reference


Hvis du ikke vil have, hvis du skal bippe, skal du enten erstatte 0x7-karakteren, før du sender den ud, eller deaktivere enhedsdriveren 'Beep', som du finder i afsnittet Non-Plug and Play Drivers, synlig hvis du tænder alternativet Vis skjulte enheder. Eller tag højttaleren ud.

Andre referencer 1


Det skyldes sædvanligvis udskrivning af tegnkode 7, CTRL-G, som er BEL (bell) -karakteren.


Det første jeg normalt gør, når du køber en ny computer eller bundkort er at sikre, at ledningen fra bundkortet til højttaleren ikke er forbundet. Jeg har ikke brugt højttaleren siden kommandørens dage (og fjernelsen af ​​den tråd er den bedste OS-agnostiske måde at stoppe lyden på :-).

Andre referencer 2


HKEY\_CURRENT\_USERControl PanelSound


Indstil 'Beep' -tasten til 'nej'.

Andre referencer 3


absolut, hvis du udfører ASCII-kontrolkode 'Bell' (0x7) til en konsol, bipper den.

Andre referencer 4


Selvom du tjekker indgangen for BELL-tegn, kan den stadig bippe. Dette skyldes skrifttypeindstillinger og unicode-konvertering. Karakteren er U + 2022, Bullet. [3]


Raymond Chen forklarer: [4]



  På OEM-kodesiden bliver kuglepersonen konverteret til en
  bip. Men hvorfor er det?

  
  Hvad du ser er MB\_USEGLYPHCHARS i omvendt. Michael Kaplan
  diskuterede MB\_USEGLYPHCHARS for et stykke tid siden. Det afgør, om visse
  tegn skal behandles som kontrol tegn eller som udskrives
  tegn, når du konverterer til Unicode. For eksempel styrer den
  om ASCII-bell karakteren 0x07 skal konverteres til
  Unicode bell karakter U + 0007 eller til Unicode bullet U + 2022. Du
  skal du bruge MB\_USEGLYPHCHARS-flagget til at bestemme, hvilken vej der skal gå
  konvertere til Unicode, men der er ingen tilsvarende tvetydighed, når
  konvertere fra Unicode. Når du konverterer fra Unicode, både U + 0007 og
  U + 2022 kort til ASCII bell karakter.


Andre referencer 5


\ b i udgangstrengen vil forårsage bip, hvis ikke deaktiveret på OS-niveau.