定时播放音乐程序之三:MCI设备的播放和控制

(1) 写注册表,设置开机自动运行

 HKEY sub;
 char bufname[200];
 ::GetModuleFileName(NULL,bufname,200);

 CString str;
 str.Format("%s",bufname);
 CString skey = "Software//Microsoft//Windows//CurrentVersion//Run";
 ::RegCreateKey(HKEY_LOCAL_MACHINE,skey,&sub);
 if (m_autorun.GetCheck())
 {
  ::RegSetValueEx(sub,"ArmyBugle",NULL,REG_SZ,(const BYTE*)str.GetBuffer(0),str.GetLength());
 }
 else
 {
  ::RegDeleteValue(sub,"ArmyBugle");
 }
 ::RegCloseKey(sub);

(2)TIMER事件和MDI设备处理,定时播放音乐

 CTime tt;
 tt = CTime::GetCurrentTime();
 CString tmp = tt.Format("%H:%M");
 if (tmp == strtime)
 {
  KillTimer(1);
  MCIDEVICEID m_nDeviceID;
  MCIDEVICEID m_nElementID;
  MCI_OPEN_PARMS mciOpenParms;

  mciOpenParms.lpstrDeviceType = (LPSTR)MCI_DEVTYPE_WAVEFORM_AUDIO;
  mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_WAIT,(DWORD)(LPVOID)&mciOpenParms);
  m_nDeviceID = mciOpenParms.wDeviceID;

  MCI_OPEN_PARMS mciOpen;
  memset(&mciOpen,0,sizeof(MCI_OPEN_PARMS));
  mciOpen.lpstrElementName = strsound;
  mciSendCommand(m_nDeviceID,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciOpen);
  m_nElementID = mciOpen.wDeviceID;

  MCI_PLAY_PARMS mciPlay;
  mciPlay.dwCallback = (DWORD)this->GetSafeHwnd();
  mciSendCommand(m_nElementID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&mciPlay);
  //SetTimer(1,10000,NULL);    //delete 0515
 }
 CDialog::OnTimer(nIDEvent);

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值