欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-05 17:48:55
...

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

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

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

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()函数。