您的位置:首页 > 其它

通过修改注册表让wince开机自动运行程序,不需要修改内核

2010-11-11 16:00 826 查看
一个项目需要在wince下开发atl控件,完成后却发现要想让控件正常运行,必须拷贝ATLCE400.DLL、MFCCE400.DLL、OLECE400.DLL到windows目录下面才行,每次开机都要重新拷贝,太麻烦了,本来想修改一个内核,把这几个dll打包到nk.bin中,但同事说修改内核很费时,所以就只能自己想办法。

开始的想法是写一个批处理文件,拷贝这几个dll到windows下,开机自动运行这个bat,到网上查阅到可以通过修改注册表实现,修改如下:
[HKEY_LOCAL_MACHINE/init]
"Launch70"="Storage Card/autocopy.bat"
"Depend70"=hex:/
14,00,1e,00,32,00,3c,00

修改后重启wince,结果没有执行,很是奇怪,后来想到写一个exe程序试试,结果可以实现了,关键代码如下:

CopyFile(_T("Storage Card//ATLCE400.DLL"),_T("windows//ATLCE400.DLL"),FALSE);
CopyFile(_T("Storage Card//MFCCE400.DLL"),_T("windows//MFCCE400.DLL"),FALSE);
CopyFile(_T("Storage Card//OLECE400.DLL"),_T("windows//OLECE400.DLL"),FALSE);
SendMessage(WM_CLOSE,0,0);

前三句是拷贝dll,最后一句是拷贝完自动关闭程序。

修改注册表如下:

[HKEY_LOCAL_MACHINE/init]
"Launch70"="Storage Card/autocopy.exe"
"Depend70"=hex:/
14,00,1e,00,32,00,3c,00

重启wince发现在出现wince桌面时,此程序一闪而过,基本不影响用户的后继操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: