WINCE设置简单的情景模式总结篇~

阅读更多

最近想做一个情景模式,只是简单的实现三个状态:正常音量,振动,静音。

本来想这么简单的应该不会很难的,开始没有找到相关的函数,就抓取注册表的变化来实现这三个状态。

结果可以实现这三种状态,哈哈,学到几个有用的注册表项。

HKCU\ControlPanel\Notifications\ShellOverrides:Mode. 0表示正常,1表示振动,2是静音

HKCU\ControlPanel\Volume:

_T("Key") //按键音量

_T("Ringer") //这个不清楚
_T("Screen") //应该是点屏幕音量
_T("Volume") // 系统音量

HKCU\ControlPanel\SoundCategories\Ring:InitVol 这个是调节音量那里第二列的音量(0-5)

系统上一状态的音量备份值保存在

HKCU\ControlPanel\Notifications\ShellOverrides:

_T("SavedKey")
_T("SaveRinger")
_T("SavedScreen")
_T("SavedVolume")

还有电话中好像也得设置的,copy snapi.h中的文字

////////////////////////////////////////////////////////////////////////////////
// PhoneRingerOff
// Gets a value indicating whether the phone's ringer is off (i.e., if it rings and/or vibrates).
#define SN_PHONERINGEROFF_ROOTHKEY_LOCAL_MACHINE
#define SN_PHONERINGEROFF_PATHTEXT("System\\State\\Phone")
#define SN_PHONERINGEROFF_VALUETEXT("Status")
#define SN_PHONERINGEROFF_BITMASK0x40
//////////////////////////////////////////////////////////////////////////

设置相应的模式和音量,可以实现相应的功能,但是在TitleBar上面的喇叭图标一直没有改变。。。

这个问题很郁闷,后来网上找到两个文章,可以不用自己维护注册表,而实现上面的问题,

并可以改变上面标题栏的图标~

http://social.msdn.microsoft.com/Forums/zh-TW/803/thread/cb9786c0-823b-4bb1-9f54-12815695ae9c

http://www.devdiv.com/thread-24092-1-1.html

就是使用SndSetSound()函数。

//将顶栏喇叭图标设为(By jjlzg)打开 SNDFILEINFO sndFile1; sndFile1.sstType = SND_SOUNDTYPE_ON; SndSetSound(SND_EVENT_ALL, &sndFile1, TRUE); //将顶栏喇叭图标设为(By jjlzg)震动 SNDFILEINFO sndFile2; sndFile2.sstType = SND_SOUNDTYPE_VIBRATE; SndSetSound(SND_EVENT_ALL, &sndFile2, TRUE);

你可能感兴趣的:(WinCE,Social,Microsoft,thread,HTML)