读取msi文件内容
来源:互联网 发布:unity3d下载安装教程 编辑:程序博客网 时间:2024/06/06 02:29
读取msi文件内容
(2011-12-29 10:34:22)标签:
msi
it
分类: WindowsInstaller所需要的库:Msi.lib; 头文件:Msiquery.h MSIHANDLE hMsiHandle, hView, hRecord; MsiViewExecute(hView, NULL); //SQL Syntax: "Select * from Binary WHERE Name = 'NewBinary20'"从Binary中读取Name为NewBinary20的 //一行信息,具体语法在MSDN中输入SQL Syntax。 { LPTSTR Action, Type, Source, Target; DWORD dwStringLen = MAX_PATH; int dwCustomAction;
MsiRecordGetString(hRecord, 1, Action, &dwStringLen); //每次调用要保证第三个参数的值足够大, //由于此处是引用,所以每次调用完以后dwStringLen的值会改变成此次实际读取的内容长度。下次不进行 //初始化而直接用此变量就可能出错。 dwCustomType = MsiRecordGetInteger(hRecord, 2); //Type的类型是int型 dwStringLen = MAX_PATH; MsiRecordGetString(hRecord, 3, Source, &dwStringLen ); dwStringLen = MAX_PATH; MsiRecordGetString(hRecord, 4, Target, &dwStringLen ); } MsiCloseHandle(hMsiHandle);
函数调用顺序:(函数的具体用法查看MSDN,msi文件内部结构可通过Orca工具察看)
1. MsiOpenDatabase(strMsiPath, MSIDBOPEN_READONLY, &hMsiHandle);//strMsiPath是msi文件的完整路径,路 经中的"\"要替换为"\\"。函数返回ERROR_SUCCESS表示成功。
2. MsiDatabaseOpenView(hMsiHandle, _T("Select * from CustomAction"), &hView);
3. while(MsiViewFetch(hView, &hRecord) == ERROR_SUCCESS)
4. MsiCloseHandle(hView);
阅读全文
0 0
- 读取msi文件内容
- 获取Msi文件的属性内容
- MSI 文件
- .msi文件
- 读取xml文件内容
- 文件内容读取
- 读取网络文件内容
- Shell读取文件内容
- 读取Excel文件内容
- FileReader读取文件内容!
- C++读取文件内容
- QTextStream 读取文件内容
- 读取文件内容
- 读取excel文件内容
- 读取properties文件内容
- 文件内容的读取
- 读取txt文件内容
- C读取文件内容
- 《Maven 在项目中运行java中的main方法》---利用插件跑java程序
- 在全志A64平台点亮GC2145 V1.0(分色排版)录像有问题
- matlab下 enframe分帧函数不可用
- 【实用手记】树莓派旋转屏幕
- 大数据的学习计划
- 读取msi文件内容
- HBMY=1875: A sequence of numbers
- 计蒜客蓝桥杯模拟赛5 引爆炸弹
- UEditor(百度编辑器)的使用
- 杂记
- Kotlin基本使用-类的声明
- 修改Eclipse所有文件的编码格式为UTF-8
- 转--【工具使用】IntelliJ IDEA 2017 搭建spring mvc
- spring bean加载--从缓存中获取beanspring bean加载--从缓存中获取bean【转】