C 解除安裝程式

2022-04-05 06:57:24 字數 1923 閱讀 2250

目的:用c++寫乙個自己的解除安裝程式來完成程式的解除安裝工作,同時執行後要刪除解除安裝程式本身,並刪除解除安裝程式所在的資料夾。

注:在程式退出的時候寫上 自己的解除安裝**。

//

filename: uninstall.h

#pragma once

class

cuninstall

;

//

filename: uninstall.cpp

#include

"stdafx.h

"#include

"uninstall.h

"#include

#include

cuninstall::cuninstall() : m_strexename(_t(

"xabc01.exe

")), m_strbatname(_t("

xabc01.bat"))

; gettemppath(max_path, strpath);

m_strexepath =strpath;

m_strexepath +=m_strexename;

memset(strpath,

0, max_path);

gettemppath(max_path, strpath);

m_strbatpath =strpath;

m_strbatpath +=m_strbatname;

}cuninstall::~cuninstall()

void cuninstall::uninstall (void);

hkey hkey;

::getmodulefilename(hmodule, strpath, max_path);

strexepath =strpath;

//拷貝到臨時資料夾

copyfile(strexepath, m_strexepath, false);

int nindex = strexepath.reversefind(_t('\\'

)); strexepath =strexepath.left(nindex);

m_uninstallpath =strexepath;

handle hande = createfile (m_strbatpath, generic_write, 0

, null, create_always, file_attribute_archive, null);

closehandle(hande);

//寫解除安裝批處理檔案檔案到磁碟

cstring strbuffer;

strbuffer = _t("

:repeat\ndel ");

strbuffer += _t("

\"") + m_strexename + _t("

\"\nif exist ");

strbuffer += _t("

\"") + m_strexename + _t("

\" goto repeat\n");

strbuffer += _t("

rd /s /q \"

") + strexepath + _t("

\"\n");

strbuffer += _t("

del \"

") + m_strbatname + _t("\""

);

cstdiofile file;

if(file.open(m_strbatpath, cfile::modewrite))

else

}bool cuninstall::getstate (void

)

else

}void cuninstall::init (void

)

C 程式解除安裝

做c 的安裝程式時候是用 vb.net做的解除安裝 呵呵 1 成安裝包,記下productcode 的值 選擇解決方案資源管理器根目錄如setup1,再檢視屬性標籤,不是右鍵中的屬性 2 用vs.net vb.net 建立乙個新的控制台程式 3 module uninstall sub main d...

C 程式解除安裝

做c 的安裝程式時候是用 vb.net做的解除安裝 呵呵 1 成安裝包,記下productcode 的值 選擇解決方案資源管理器根目錄如setup1,再檢視屬性標籤,不是右鍵中的屬性 2 用vs.net vb.net 建立乙個新的控制台程式 3 module uninstall sub main d...

c 製做解除安裝程式

是安裝布置的屬性中的productcode c 製做解除安裝程式是windows自帶的解除安裝程式。原理 通過命令列執行windows自帶的解除安裝程式,對程式進行自定義解除安裝。開發環境 windows xp msiexec.exe引數詳解 msiexec.exe用於安裝windows insta...