setupdll在CAB安装过程中的一些处理方法
2009-12-07 13:07
357 查看
一)获取屏幕分辨率
在CAB安装过程中,可以利用setupdll来做一些初始化的工作,极大的方便了我们的开发。
但是在setupdll中使用GetSystemMetrics函数获取屏幕分辨率的时候,出现了问题。640x480的分辨率取出来成了320x240,800x480成了400x240...真是奇了怪了。
原因也解释不清楚了,据说setupdll是被wceload.exe所加载的,而wceloade.exe没有能力去获取分辨率...
不管了,只好另外做一exe程序,来被setupdll调用。
在Install_Exit中加入:
PROCESS_INFORMATION info;
CreateProcess(L"//Program Files//GetMetricsTest.exe", NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, &info);
WaitForSingleObject(info.hProcess, INFINITE);//等待进程结束
GetMetricsTest.exe程序用于获取屏幕分辨率,可将获得的参数保存在注册表或临时文件中,再由setupdll来处理这些参数。
二)获取安装包名称
在CAB安装过程中,一般会出现“正在安装某某.cab...”字样,取得“正在安装”和“.cab”之间的值就达到我们的目的了。
首先利用setupdll是必须的,然后在Install_Exit来做动作,此时会传入hwndParent参数,利用这个参数来折腾一下:
TCHAR sCabName[256];
HWND hDlg = GetWindow( hwndParent, GW_CHILD|GW_HWNDFIRST );
UINT uCtrlID = GetDlgCtrlID( hDlg );
GetDlgItemText( hwndParent, uCtrlID, sCabName, 256);
sCabName正是"某某.cab..."或"某某.CAB..."。
在CAB安装过程中,可以利用setupdll来做一些初始化的工作,极大的方便了我们的开发。
但是在setupdll中使用GetSystemMetrics函数获取屏幕分辨率的时候,出现了问题。640x480的分辨率取出来成了320x240,800x480成了400x240...真是奇了怪了。
原因也解释不清楚了,据说setupdll是被wceload.exe所加载的,而wceloade.exe没有能力去获取分辨率...
不管了,只好另外做一exe程序,来被setupdll调用。
在Install_Exit中加入:
PROCESS_INFORMATION info;
CreateProcess(L"//Program Files//GetMetricsTest.exe", NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, &info);
WaitForSingleObject(info.hProcess, INFINITE);//等待进程结束
GetMetricsTest.exe程序用于获取屏幕分辨率,可将获得的参数保存在注册表或临时文件中,再由setupdll来处理这些参数。
二)获取安装包名称
在CAB安装过程中,一般会出现“正在安装某某.cab...”字样,取得“正在安装”和“.cab”之间的值就达到我们的目的了。
首先利用setupdll是必须的,然后在Install_Exit来做动作,此时会传入hwndParent参数,利用这个参数来折腾一下:
TCHAR sCabName[256];
HWND hDlg = GetWindow( hwndParent, GW_CHILD|GW_HWNDFIRST );
UINT uCtrlID = GetDlgCtrlID( hDlg );
GetDlgItemText( hwndParent, uCtrlID, sCabName, 256);
sCabName正是"某某.cab..."或"某某.CAB..."。
相关文章推荐
- setupdll在CAB安装过程中的一些处理方法
- Weblogic安装过程中一些故障的处理方法
- 安装Hadoop 2.7.3的过程中遇到的一些问题及解决方法。
- mvc3安装 SetupResources.dll missing from 2052 directory 错误解决方法
- Android SDK 安装过程 与 安装失败的处理方法
- 安装IIS提示安装程序无法复制文件staxmem.dll处理方法
- Weblogic 10.3.2 安装过程中出现致命错误的处理方法
- Ubuntu12.04编译openwrt过程中遇到的一些问题及处理方法
- libsvm 安装过程中的一些错误和处理方式
- 图像处理过程中的一些预处理方法
- Hyperledger Fabric 1.0安装过程中出现的一些问题和解决方法
- AD RMS在安装过程中报错的处理方法
- Mysql安装过程问题总结及处理方法
- 系统安装过程中遇到的一些问题及解决方法
- oracle安装过程中遇到的一些错误解决方法
- Storm1.0安装过程及遇到的错误处理方法
- 新笔记本安装 Visual Studio 2015 Enterprise,安装失败提示 setup blocked的处理方法。
- 安卓AndroidStudio如何在同一个手机中安装两个相同的项目+++++自己处理的一些问题解决方法
- Nginx 安装过程中遇到的一些问题及解决方法
- oracle10g安装过程报ins_emdb.mk错误处理方法