自己編寫安裝製作程式 (轉)

worldblog發表於2007-12-09
自己編寫安裝製作程式 (轉)[@more@]

 


自己編寫製作


鄧振波


 這是我以前寫的實現安裝程式的一個類,包含了一些的安裝程式所用的,當然,由於工作和時間的關係,沒有完全的寫完整,有不少地方還需要改進,現在把這個類提供給大家,讓有興趣的同道進行更深入的研究。
 本類實現的功能包括檢查版本,操作登錄檔,目錄、操作, 建立快捷方式,外部程式,重新啟動,註冊OCX、DLL等等基本的安裝函式。
 因為整個源程式比較長,所以這裡只列出該類的標頭檔案,原始檔從 //setupfn.zip">這裡 ,連線程式的時候,你要新增version.lib連線。


class CSetup
{
public:

int GetVersion(CString& strVersion,& gage,WORD& wCodePage);//得到Windows的版本,返回值為版本,引數返回具體的語言資訊

BOOL RegistrActiveServer(LPCSTR lpszOcxFileName,BOOL bRegister=TRUE);//註冊OCX、DLL

BOOL IsServer(); //系統是否Serve版
BOOL CheckWindowVersion(BOOL& bNT,DWORD& dwMajor,DWORD& dwMinor);//檢測Windows的版本資訊
BOOL IsNT();//系統是否
BOOL Is();//系統是否Win200
BOOL IsWinNT4();//系統是否NT4
BOOL IsWinNT351();//
BOOL IsWindows98();//系統是否98及以上
BOOL IsWindows95();//系統是否95及其它


UINT GetTempFileName(CString& strUniquName,LPCSTR lpPrefixString=NULL);//得到唯一的臨時檔名
DWORD GetSysTempPath(CString& strTempPath);//得到系統臨時目錄



LONG RegWriteData(LPCTSTR pszSection, LPCTSTR pszEntry, const BYTE* btVal, DWORD dwLength,HKEY hKey=HKEY_LOCAL_MACHINE);//往登錄檔寫資料
LONG RegWriteLong(LPCTSTR pszSection, LPCTSTR pszEntry, DWORD dwVal, HKEY hKey=HKEY_LOCAL_MACHINE);//往登錄檔寫整數
LONG RegWriteString(LPCTSTR pszSection, LPCTSTR pszEntry, LPCSTR pszVal, HKEY hKey=HKEY_LOCAL_MACHINE);//往登錄檔寫字串
LONG RegReadData(LPCTSTR pszSection, LPCTSTR pszEntry, BYTE* btVal,DWORD dwLength, HKEY hKey=HKEY_LOCAL_MACHINE);//從登錄檔讀資料
BOOL DeleteKey(LPCTSTR pszSubKey,LPCTSTR pszValueName,HKEY hKey=HKEY_LOCAL_MACHINE);//刪除登錄檔的鍵值,pszValueName不為空則整個Key下面的所有鍵值均刪
LONG RegReadLong(LPCTSTR pszSection, LPCTSTR pszEntry, DWORD &dwVal, HKEY hKey=HKEY_LOCAL_MACHINE);//從登錄檔裡讀取整數
LONG RegReadString(LPCTSTR pszSection,LPCTSTR pszEntry, CString& sVal,HKEY hKey=HKEY_LOCAL_MACHINE);//從登錄檔裡讀取字串


DWORD GetMemorySize(CString& strDecriSzie);//得到大小
BOOL GetFreeSpace(char chDriver,CString& strDescript);//得到剩餘空間



BOOL ShutDownComputer(UINT uFlag=EWX_REBOOT);//重起或關閉計算機

BOOL CreateProcess(LPSTR lpszFileName);//執行一個程式
BOOL ExecuteEx(LPCSTR lpileName,LPCSTR lpszParam=NULL,LPCSTR lpszMode="OPEN");//執行某些檔案或程式


BOOL CreateShortCutOnDesktop(LPCSTR lpszFullPathName,LPCSTR lpszLinkName);//桌面建立快捷方式
BOOL CreateShortCutOnProgramGroup(LPCSTR lpszFullPathName,LPCSTR lpszLinkName);//開始選單建立快捷方式
BOOL CreateShortCut(const CString strSrcPath,const CString strPathLink);//建立快捷方式


BOOL AddToStartup(LPCSTR lpszFullFilePath,BOOL bRunOnce=FALSE);//新增隨計算機啟動而啟動程式


BOOL DeleteFolder(LPCSTR lpzsFolderName,DWORD dwDelFlags=0);//刪除資料夾
BOOL CreatePath(LPCSTR lpszFullPathName);//建立目錄
BOOL GetStartupPath(CString &strPath);//得到啟動目錄
BOOL GetDesktopPath(CString& strPath);//得到桌面路徑
BOOL GetProgramGroupPath(CString& strPath);//得到程式組路徑
BOOL GetWindowsPath(CString& strWinPath,CString& strWinSysPath);//得到Windows目錄
BOOL DeleteFile(LPCSTR lpszFileName);//刪除檔案
BOOL CopyFile(LPCSTR lpszSrc,LPCSTR lpszDec,DWORD dwFlag=FOF_ALLOWUNDO|FOF_SILENT);//複製檔案


BOOL SetupCheckIEVersion(int& MajorVersion,int& MinorVersion);//檢測IE的版本


int StartupAt(LPCTSTR lpszName,LPCTSTR lpszExeFile,HKEY nRootKey=NULL);////程式啟動而啟動
virtual ~CSetup();



private:
CRegKey m_regKey; //登錄檔操作
DWORD m_dwVersion; //用於判斷版本
BOOL m_bNT;
public:
DWORD m_dwWinVerMajor;//系統版本
DWORD m_dwWinVenor;//系統版本
};



更多文章在


 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990647/,如需轉載,請註明出處,否則將追究法律責任。

相關文章