最近遇到了个问题,基于WMP开发的媒体播放器时注册wmp.dll时总是失败,在网上一顿百度、谷歌得出结论是用户权限不足。
为了验证此结论做如下实验:
在非管理员权限时,确时有此问题。
下面以管理员身份运行CMD:
成功。
但是我的问题并没有解决,使用管理员权限还是还好用。不要着急继续说说我的问题。
运行环境是EWin7 进行裁减的,所以以上方法不灵只好怀疑依赖问题,所以用打开DLL的工具,在两种环境下打开(可注册成功的系统,和失败的系统)对比缺少的其它DLL文件;可以看见缺少的两个DLL文件,(是哪个文件已经不重要了)拷贝过来,结果是一样的,失败。
无耐之际,使用一款软件:Process Monitor来监测进程的动作,简单过程如下:
1、使用ProcessMonitor的过滤器锁定CMD.exe进程。
2、在命令行运行regsvr32.exe wmp.dll
3、后台运行的所有过程被记录下来。
以上过程要中成功的环境运行一次,在失败的环境运行一次,把两次结时进行比较,发现错误的地方没有找到sysmain.sdb和AcGenral.dll。
没明白?但真的懒得打字了,至此问题解决。