如何在注册表中修改WMV文件的关联命令行.

解决方案 »

  1.   

    bool CMyMediaPlayerApp::RegisterFileType(bool isRegister) 
    { HKEY hKey;//注册表句柄 
    if(isRegister) 

    //创建HKEY_CLASSES_ROOTMediaPlayer.wmv键 
    //LPCTSTR myKey=_T("MediaPlayer.wmv\shell\open\command"); 
    LPCTSTR myKey=_T("MediaPlayer.wmv\shell\open\command"); 
    long ret=RegCreateKeyEx(HKEY_CLASSES_ROOT,myKey,0, NULL, 
    0,NULL,NULL,&hKey,NULL); 
    //long ret=RegCreateKeyEx(HKEY_CLASSES_ROOT,myKey,0, NULL, 
    // REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS, 
    // NULL,&hKey,NULL); 
    if(ret!=ERROR_SUCCESS) 

    MessageBox(NULL,_T("注册表HKEY_CLASSES_ROOT\MediaPlayer.wmv键创建失败"),NULL,MB_OK); 
    return false; 
    } char * myValue=""\Windows\MediaPlayer.exe" "%1""; 
    DWORD cbData_my=strlen(myValue)+1; 
    ret=RegSetValueEx(hKey,NULL,0,REG_SZ,&myValue,LPBYTE(myValue),cbData_my); 
    if(ret!=ERROR_SUCCESS) 

    MessageBox(NULL,_T("注册表HKEY_CLASSES_ROOT\MediaPlayer.wmv键写入失败"),NULL,MB_OK); 
    return false; 
    } //修改HKEY_CLASSES_ROOT.wmv键 
    LPCTSTR wmvKey=_T(".wmv"); 
    //如果该键已经存在则打开这个键 
    ret=RegCreateKeyEx(HKEY_CLASSES_ROOT,wmvKey,0, NULL, 
    0,NULL,NULL,&hKey,NULL); if(ret!=ERROR_SUCCESS) 

    MessageBox(NULL,_T("注册表HKEY_CLASSES_ROOT\.wmv键创建失败"),NULL,MB_OK); 
    return false; 
    } char * wmvValue="MediaPlayer.wmv"; 
    // BYTE wmvValue=_T("MediaPlayer.wmv"); 
    DWORD cbData_wmv=strlen(wmvValue)+1; 
    ret=RegSetValueEx(hKey,NULL,0,REG_SZ,LPBYTE(wmvValue),cbData_wmv); 
    //ret=RegSetValueEx(hKey,NULL,0,REG_SZ,wmvValue,cbData_wmv); 
    if(ret!=ERROR_SUCCESS) 

    MessageBox(NULL,_T("注册表HKEY_CLASSES_ROOT\.wmv键写入失败"),NULL,MB_OK); 
    return false; 

    ::RegCloseKey(hKey); 
    return true; 

    else 

    //删除关联 return true; 

    }