views:

1166

answers:

6

Out-of-the-box WinCE (5.0 and 6.0) images with the shell seem to have a key click sound that plays on each keystroke. How can I turn this sound off, while leaving the audio system otherwise alone? (I still need to hear the audio from my application.) It doesn't appear to be a system sound (like window minimize or maximize) that I can set. I don't see anything in the SystemParameters API. Any help would be appreciated.

Thanks in advance!

A: 

try this

menu>settings>sounds

scroll right to the end where it says "keypad control"

set to "none"

You are click free!

from here

AvatarOfChronos
A: 

; This registry setting controls the checkboxes dsiplayed in the Sounds CPL ; under "enable clicks & taps". Set bit0 if you have a keyboard, set bit1 if ; you have a touch screen. Set bit2 if you have HW buttons (NOTE: for now ; HW buttons are mutually exclusive with the keyboard)

[HKEY_LOCAL_MACHINE\ControlPanel]
    "InputConfig"=dword:2

I think this removed the taps from mine (which uses hardware buttons), I found it in a random forum at some point...

Adam
A: 

I found the answer as a combination of this: (http://msdn.microsoft.com/en-us/library/aa913008.aspx), and a bit of source code digging that uncovered the undocumented 'AudioUpdateFromRegistry' API.

So this bit of code does the trick:

using Microsoft.Win32;

namespace CEAudio
{
    public enum KeyClickVolume
    {
        Off,
        Soft,
        Loud
    };
    public class Utility
    {
        [DllImport("coredll.dll")]
        public static extern void AudioUpdateFromRegistry();

        static readonly string KeyVolRegKey = @"HKEY_CURRENT_USER\ControlPanel\Volume";
        public static KeyClickVolume KeyClickVolume
        {
            set
            {
                uint[] vals = new uint[] { 0, 1, 0x10002 };
                Registry.SetValue(KeyVolRegKey, "Key", vals[(int)value], RegistryValueKind.DWord);
                AudioUpdateFromRegistry();
            }
            get
            {
                switch((uint)Registry.GetValue(KeyVolRegKey, "Key", (uint)0x10002))
                {
                    case 0: return KeyClickVolume.Off;
                    case 1: return KeyClickVolume.Soft;
                    case 0x10002:
                    default: return KeyClickVolume.Loud;
                }
            }
        }
    }
}
Wil S
A: 

I have a unit fitted with WinCE 5 in Chinese.

Can someone please post some images of the english interface with the above (try this

menu>settings>sounds

scroll right to the end where it says "keypad control"

set to "none")

So I can attempt to compare and navigate in Chinese!

Thanks! JR

A: 

I haven't menu>settings>sound

krzpob
A: 

I actually used this registry value, similar to Adam's above: [HKEY_LOCAL_MACHINE\ControlPanel] "InputConfig"=dword:3

The value '3' enables the "Screen Taps" option on the sound control panel which you can then turn off. .

Jemiah