Coding4ever’s Blog

Just coding… coding… and coding… because coding should be fun :)

Membuat Paket Instalasi Update Program Menggunakan NSIS

| Comments

Masalah update program adalah masalah klasik untuk para programmer aplikasi desktop, bagaimana tidak biasanya kita selalu disibukan dengan masalah yang satu ini. Update… update… dan update … :D apalagi dengan jumlah klien yang banyak wahhhh cape deh.

Sebenarnya proses update sendiri pada dasarnya adalah masalah sederhana “tinggal copy program yang baru untuk menimpa program yang lama”. Permasalahan biasanya muncul jika yang harus melakukan update adalah klien kita yang benar5 END USER :D. Ya mungking cuma bisa ngetik di word atau mantan operator dos yang baru pindah ke windows de el el.

Sehingga dengan adanya program update yang baik “User nyaman kita pun tenang” :D.

NSIS (Nullsoft Scriptable Install System) merupakan tool untuk membuat paket instalasi dengan lisensi open source.

Ada satu hal penting sebelum kita bisa membuat paket instalasi update program yaitu mengetahui informasi dimana program kita diinstall.

Ada banyak cara untuk melakukan hal ini : 1. Mencatat lokasi program pada saat instalasi

1
InstallDirRegKey HKCU "Software\PT ALBASI\SPBB" "installDir"

2. Mencatat lokasi program pada saat start up contoh menggunakan vb

1
2
3
Public Sub Main()
   Call saveString(HKEY_CURRENT_USER, "Software\PT ALBASI\SPBB", "installDir", App.Path)
End Sub

Contoh skrip sederhana untuk membuat paket instalasi update :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
!define APP_NAME "SPBB PT ALBASI"

Name "${APP_NAME}"
OutFile "output\updateAlbasi.exe"
Icon "setup.ico"
ShowInstDetails nevershow
XPStyle on
RequestExecutionLevel admin

Var INSTALL_DIR

Function .onInit
    MessageBox MB_YESNO|MB_ICONQUESTION "Apakah proses update ${APP_NAME} ingin dilanjutkan ?" /SD IDYES IDYES yes IDNO no

    yes:
    SetSilent silent
    Goto done

    no:
    Abort

    done:
    ;ambil informasi lokasi instalasi
    ReadRegStr $INSTALL_DIR HKCU "Software\PT ALBASI\SPBB" "installDir"

  IfFileExists $INSTALL_DIR\Albasi.exe lanjut batal
  batal:
      MessageBox MB_ICONSTOP|MB_OK "Lokasi instalasi ${APP_NAME} tidak ditemukan. Proses update batal"
        Abort

  lanjut:

    FindWindow $0 "" "${APP_NAME}"
    StrCmp $0 0 lanjut2
        MessageBox MB_ICONSTOP|MB_OK "Program SPBB Albasi sedang dijalankan.$\nSilakan tutup aplikasi tersebut terlebih dahulu."
        Abort

    lanjut2:
    SetOutPath "$INSTALL_DIR"
    File "core\exe\Albasi.exe" ;file program utama

    MessageBox MB_ICONINFORMATION|MB_OK "Proses update ${APP_NAME} selesai"
FunctionEnd

Section ""
SectionEnd

Untuk memperkecil ukuran file update Anda bisa menggunakan plugin VPatch (sudah include pada saat instalasi NSIS) dengan menggunakan VPatch yang dicatat hanya perbedaan versi sebelumnya dengan yang terakhir sehingga bisa memperkecil ukuran file update.

Artikel berikutnya masih dengan judul yang sama tetapi menggunakan inno setup.

Selamat mencoba :)

Comments