獲取Msi檔案的屬性內容

2021-08-01 17:39:09 字數 2174 閱讀 3337

void msigetpropertybyopenpackage()

tchar* szvaluebuf = null;

dword cchvaluebuf = 0;

uint uistate =msigetproperty(msihandle, text("productname"), text(""), &cchvaluebuf);

if (error_more_data == uistate) }

msiclosehandle(msihandle);

}

呼叫msiopenpackage函式來獲取msihandle值,然後就可以獲取屬性值,msiopenpackage使用的時候會開啟msi檔案,會看到程式執行時的介面,再呼叫msiclosehandle(hinstall)函式就關閉msi檔案,也會看到msi程式執行介面消失。

用該方法的時候就會看到有msi瞬間閃現安裝介面,體驗感覺不好

因此使用msiopendatabase開啟msi檔案,然後再獲取,後面相繼使用msidatabaseopenview,msiviewexecute,msiviewfetch,msirecordgetstring等方法,

使用msiclosehandle關閉開啟的msi控制代碼。

bool  getmsipropertyproductversion(cstring strmsiname, cstring &strver )

msihandle hview = null;

msidatabaseopenview(hmsihandle, _t("select * from property where property = 'productversion'"), &hview);

msihandle hrecord = null;

msiviewexecute(hview, hrecord);

if (msiviewfetch(hview, &hrecord) == error_success)

; tchar szvalue[max_path]=;

dword dwstringlen = max_path;

msirecordgetstring(hrecord, 1, szname, &dwstringlen);

dwstringlen = max_path;

msirecordgetstring(hrecord, 2, szvalue, &dwstringlen );

printf("%s\t:%s\r\n", t2a(szname), t2a(szvalue));

strver = szvalue;

msiclosehandle(hview);

msiclosehandle(hmsihandle);

return true;

} msiclosehandle(hview);

msiclosehandle(hmsihandle);

return false;

}uint getmsiallproperty(cstring strmsiname )

msihandle hview = null;

msidatabaseopenview(hmsihandle, _t("select * from property"), &hview);

msihandle hrecord = null;

msiviewexecute(hview, hrecord);

while(msiviewfetch(hview, &hrecord) == error_success)

; tchar source[max_path]=;

dword dwstringlen = max_path;

msirecordgetstring(hrecord, 1, szvaluebuf, &dwstringlen);

dwstringlen = max_path;

msirecordgetstring(hrecord, 2, source, &dwstringlen );

printf("%s\t:%s\r\n", t2a(szvaluebuf), t2a(source));

} msiclosehandle(hview);

msiclosehandle(hmsihandle);

return 1;

}

jQuery 獲取內容和屬性

jquery 擁有可操作 html 元素和屬性的強大方法。jquery 中非常重要的部分,就是操作 dom 的能力。jquery 提供一系列與 dom 相關的方法,這使訪問和操作元素和屬性變得很容易。dom document object model 文件物件模型 dom 定義訪問 html 和 x...

msi檔案的指令碼安裝

在我們日常的開發環境的搭建中,我們有時候需要安裝很多的msi檔案,如果能把這些msi檔案的安裝自動化,我們就不用乙個乙個的雙擊,然後一步一步地安裝。介紹一下msi檔案 說到msi檔案,不得不先說說windows installer,它不只是安裝程式,而是可擴充套件的軟體管理系統。windows in...

jQuery 獲取內容和屬性的方法

jquery 擁有可操作 html 元素和屬性的強大方法。獲得內容 text html 以及 val 三個簡單實用的用於 dom 操作的 jquery 方法 text 設定或返回所選元素的文字內容 html 設定或返回所選元素的內容 包括 html 標記 val 設定或返回表單字段的值 下面的例子演...