分析露水CG自動更新運作細節

୧༼✿ ͡◕ д ◕͡ ༽୨ 法蘭城的約定
回覆文章
fantastic
技術組
文章: 33
註冊時間: 2020-08-25, 14:03

分析露水CG自動更新運作細節

文章 fantastic »

工作原理
1.和服務器上的版本號比較如果不同則向用戶推送自動更新提示 並且從伺服器下載新CG(cg_up.pkt) 至使用者系統臨時目錄
2.運行bat指令操作已經下載好的臨時文件(拷貝) 當客戶端程式退出時(工作管理器中找不到程式自身)自動覆蓋舊版本CG程式(升級自己)
3.更新版本號訊息控制文件(version.txt)
4.更新後首次登入提示已升級成功的版本號訊息(由CG主程式提供該功能)


下為關鍵代碼段

代碼: 選擇全部

 v1 = fsopen("update.bat", "w", 64);
  if ( v1 )
  {
    v2 = sub_471E42(&Filename, &Filename, &Filename, &Filename, "version.txt", "version.txt");
    fprintf(
      v1,
      ":begin\n"
      "tasklist|find /i \"%s\" && goto begin||goto end\n"
      ":end\n"
      "if exist %s del %s\n"
      "if exist cg_up.pkt copy cg_up.pkt %s\n"
      "del cg_up.pkt\n"
      "if exist %s del %s\n"
      "del %%0 & taskkill /f /im cmd.exe\n",
      v2);
    dword_1756824 = 1;
    fclose(v1);
  }
  return 0;
CG201104_000.jpg
CG201104_000.jpg (205 KiB) 已瀏覽 768 次
1.jpg
1.jpg (49.23 KiB) 已瀏覽 766 次

我們可以把伺服器改寫成自己的伺服器網址由自己控制版本推送
這樣可以確保新版本的CG經過測試才推送給使用者
fantastic
技術組
文章: 33
註冊時間: 2020-08-25, 14:03

Re: 分析露水CG自動更新運作細節

文章 fantastic »

地圖大師重製版的程式升級腳本

下載地址: http://moonboy.hkhost41.08jt.com/mapmaster/map_up.txt
文件名: map_up.pkt

update.bat

代碼: 選擇全部

:begin\ntasklist|find /i \"%s\" && goto begin||goto end\n:end\nif exist %s del %s\nif exist map_up.pkt copy map_up.pkt %s\ndel map_up.pkt\nif exist %s del %s\ndel %%0 & taskkill /f /im cmd.exe\n
回覆文章