软件卸载

来源:互联网 发布:网络知识产权中文域名 编辑:程序博客网 时间:2024/04/29 03:09

1.判断要卸载的软件是否在运行

CWnd *fiturbo=FindWindow(NULL,TEXT("xxxxxxx"));//获取要卸载软件的句柄

if(fiturbo!=NULL)//判断程序是否运行
        fiturbo->PostMessageW(WM_SYSCOMMAND, SC_CLOSE,0);//关闭应用程序

2.拷贝卸载软件到临时目录

CopyFile(strSourcePath+UNINSTALL_NAME,tempFilePath+UNINSTALL_NAME, TRUE);

3.启动临时目录中的卸载软件

//UNINSTALL_NAME 需启动的软件名称

//strSourcePath 传递的参数

//tempFilePath 启动那个目录下的应用程序

ShellExecute(NULL,_T("open"),UNINSTALL_NAME,strSourcePath,tempFilePath,SW_SHOWNORMAL);

4.删除需卸载软件目录下的文件


函数:

1.获取应用程序安装目录

CHAR exeFullPath[256];

GetModuleFileNameA(NULL,exeFullPath,MAX_PATH);

CString strSourcePath=exeFullPath;

int point=strSourcePath.ReverseFind('\\');

strSourcePath=strSourcePath.Left(point+1);

2.获取临时文件目录

GetTempPathA(MAX_PATH, exeFullPath);

3.获取桌面快捷方式存放路径

SHGetSpecialFolderPathW(0,exeFullPath,CSIDL_DESKTOPDIRECTORY,0);

缺陷:

无法从注册表中获取程序的安装路径,无法删除注册表中信息。没有实现删除启动栏程序信息。



原创粉丝点击