VC++程序自己结束自己

常见的程序退出方式:

  1)PostMessage( WM_CLOSE, 0, 0 );

 

 2)使用脚本结束自己

    // this is the name of the temporary .bat file

static   const  char tempbatname[] = "_uninsep.bat" ;

void Selfdestruct()

 {  // temporary .bat file 

static char templ[] =    ":Repeat\r\n"   "del \"%s\"\r\n"   "if exist \"%s\" goto Repeat\r\n"   "rmdir \"%s\"\r\n"   "del \"%s\""

char modulename[_MAX_PATH] ;   

 // absolute path of calling .exe file 

char temppath[_MAX_PATH] ;     

// absolute path of temporary .bat file 

 char folder[_MAX_PATH] ; 

GetTempPath(_MAX_PATH, temppath) ; 

strcat(temppath, tempbatname) ;

  GetModuleFileName(NULL, modulename, MAX_PATH) ; 

 strcpy (folder, modulename) ; 

char *pb = strrchr(folder, '\\'); 

if (pb != NULL)   

 *pb = 0

HANDLE hf ;   

hf = CreateFile(temppath, GENERIC_WRITE, 0, NULL,   CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL) ;  

  if (hf != INVALID_HANDLE_VALUE) 

{    DWORD len ;   

char *bat ; 

   bat = (char*)alloca(strlen(templ) +  strlen(modulename) *2 + strlen(temppath) + 20) ;    

wsprintf(bat, templ, modulename, modulename, folder, temppath) ;   

 WriteFile(hf, bat, strlen(bat), &len, NULL) ;   

 CloseHandle(hf) ;  

  ShellExecute(NULL,"open", temppath, NULL, NULL, SW_HIDE);

  }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值