锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
涓嬮潰鏄浉鍏崇殑瀹炵幇閮ㄥ垎
2 {
3 //1.鍒涘緩鑷繁鎵瑰鐞嗘枃浠?/span>
4 CString sbatName,sPath;
5 sPath=m_strAppPath+m_strAppName;
6 sbatName=m_strAppPath+"delete.bat";
7 ofstream outfile(sbatName.GetBuffer());
8 if(outfile)
9 {
10 outfile<<":try"<<endl; //瀹氫箟鏍囪
11 outfile<<"choice /t 1 /d y >nul"<<endl; //鏆傚仠1縐?/span>
12 outfile<<"del \""+sPath+"\""<<endl; //鍒犻櫎鍘熺▼搴忔枃浠?/span>
13 outfile<<"if exist \""+sPath+"\""+" goto :try"<<endl; //濡傛灉鍒犻櫎澶辮觸錛岃繍琛屽埌鏍囪try澶勶紝寰幆浠ヤ笂姝ラ
14 outfile<<"rename "+m_strAppBakName+" "+m_strAppName<<endl; //閲嶅懡鍚嶆柊鏂囦歡涓虹▼搴忔枃浠?/span>
15 outfile<<"del \""+sbatName+"\""; //鍒犻櫎鎵瑰鐞嗘枃浠?/span>
16 }
17 outfile.close();
18
19 //2.鍒涘緩榪愯鎵瑰鐞嗙殑榪涚▼錛屽畠浠ョ┖闂蹭紭鍏堢駭鍒涘緩
20 STARTUPINFO si;
21 PROCESS_INFORMATION pi;
22 ZeroMemory( &si, sizeof(si) );
23 si.cb = sizeof(si);
24 si.dwFlags=STARTF_USESHOWWINDOW;
25 si.wShowWindow=SW_HIDE; //浠ラ殣钘忕姸鎬佽繍琛?/span>
26 ZeroMemory( &pi, sizeof(pi) );
27 if( !CreateProcess( NULL, // No module name (use command line).
28 sbatName.GetBuffer(), // Command line.
29 NULL, // Process handle not inheritable.
30 NULL, // Thread handle not inheritable.
31 FALSE, // Set handle inheritance to FALSE.
32 IDLE_PRIORITY_CLASS, // IDLE flags.
33 NULL, // Use parent's environment block.
34 NULL, // Use parent's starting directory.
35 &si, // Pointer to STARTUPINFO structure.
36 &pi ) // Pointer to PROCESS_INFORMATION structure.
37 )
38 {
39 CloseHandle(pi.hThread);
40 CloseHandle(pi.hProcess);
41 return false;
42 }
43 return true;
44 }
紼嬪簭緇忚繃鎴戠殑涓鐣祴璇曪紝鏆傛椂娌℃湁鍑虹幇涓嶈壇鍙嶅簲銆傚笇鏈涘鏈夎繖鏂歸潰闇姹傜殑鏈嬪弸鑳芥湁鎵鍊熼壌錛岀▼搴忓啓鐨勬瘮杈冪畝鍗曪紝濡傛灉鏈変粈涔堟敼榪涚殑鍦版柟鎴栨槸鏈夋洿濂界殑鍔炴硶錛屽笇鏈涜兘鍙婃椂鐨勫憡鐭ワ紝璋㈣阿銆?br>
]]>
絎竴姝ワ細鍦ㄧ▼搴忛噷瀹氫笅涓涓嬪畯錛堝緩璁畾涔夊湪stdafx.h澶存枃浠朵腑錛?/p>
絎簩姝ワ細鍦ㄧ▼搴忕殑鍏ュ彛澶勶紙灝辨槸main鍑芥暟鐨勫紑澶達級鍐欏涓嬭鍙?/p>
緇忚繃榪欎袱姝ユ垜浠殑鎺у埗鍙扮▼搴忓氨宸茬粡鍙互鑷姩媯嫻嬪唴瀛樻硠婕忎簡錛屼笉淇★紵浣犺嚜宸辮瘯璇曚笉灝辯煡閬撲簡錛?錛?/font>