สร้างโปรแกรมติดตั้ง (Installer)
เว็บเพจสำรอง (Backup webpages) : thaiall.com | thaiabc.com
ปรับปรุง : 2551-01-05 (เริ่มตัวอย่างแรก)
    สารบัญ
  1. NSIS คืออะไร
  2. ตัวอย่าง 1. YONOK Log 1 (ติดตั้งทันที เพื่อประมวลผล)
  3. ตัวอย่าง 2. Photo 3 (ติดตั้ง ถามเลือก และถอนได้)
  4. ตัวอย่าง 3. thaiabc5va_nsi.txt 1.8 MB (ใช้จริง)
  5. ตัวอย่าง 4. thaiabc5vacore_nsi.txt 10 KB (ใช้จริง)
  6. ตัวอย่าง 5. thaiabc5vaphpmyadmin_nsi.txt 4 KB (ใช้จริง)
  7. code อ่าน directory สำหรับ .nsi
    Download : http://nsis.sourceforge.net
    ตัวอย่าง Script ที่ NSIS เตรียมไว้ให้หลังติดตั้งมีเพียบครับ
    ผมเองก็ศึกษาจากตัวอย่างเหล่านั้นครับ
หลังจากนักพัฒนาโปรแกรม ได้พัฒนาโปรแกรมจนสมบูรณ์ อาจพัฒนาด้วย C++, Java, VB หรือ PHP เป็นต้น การนำไปติดตั้งในเครื่องอื่นให้ใช้งานได้เหมือนเครื่องของตน อาจมีขั้นตอนที่ยุ่งยาก และใช้เวลา นักพัฒนานิยมใช้โปรแกรมช่วยติดตั้ง (Installer) ซึ่งมีอยู่หลายค่าย แต่ผู้เขียนขอแนะนำ NSIS ซึ่งใช้งานง่าย เป็น Open Source หลังจากทดสอบ และใช้งานหลายครั้ง จึงได้นำเสนอประสบการณ์ วิธีการ และ Source Code ให้นักพัฒนาชาวไทยได้นำไปสร้างตัวติดตั้งของตนเอง
ทางเลือกอื่น นอกจาก nsis
- http://www.advancedinstaller.com
- http://www.mindvision.com/winvise.asp
- http://www.proggle.com/installer
NSIS คืออะไร
โปรแกรมสร้าง ชุดติดตั้งสำหรับ Windows รวมความสามารถ เช่น การติดตั้ง เลือกบางส่วน และถอนโปรแกรม เป็นต้น ผู้ใช้เพียงแต่พัฒนาโปรแกรมเก็บไว้ในห้อง (Folder) แล้วสร้าง NSIS Script สำหรับกำหนดสิ่งที่ต้องการ เมื่อสั่ง Compile Script ก็จะได้ .exe นำไปสั่งติดตั้งในเครื่องเป้าหมาย
What is NSIS? (Nullsoft Scriptable Install System)
NSIS can create Windows installers that are capable of installing, uninstalling, setting system settings, extracting files, etc. Because NSIS is based on script files, you can create both simple and advanced installers.
ผู้สนับสนุน ยินดีรับ ผู้สนับสนุน เว็บไซต์ด้านการศึกษา
กลุ่มเว็บไซต์นี้ เริ่มพัฒนา พ.ศ.2542
โดยบุคลากรทางการศึกษาด้านคอมพิวเตอร์
โทร. 081-9927223 (ผมเป็นคนลำปางหนา)
ปล. ขอไม่รับ work at home / อาหารเสริม
ตัวอย่าง 1. YONOK Log 1 (ติดตั้งทันที เพื่อประมวลผล)
    เป้าหมาย
    ต้องการนำแฟ้ม c:\yonoklog1.exe ไปใส่ในเครื่องทุกเครื่องขององค์กร
    จึงสร้างตัวติดตั้ง (Installer) ให้ชื่อว่า yonoklog1s.exe ด้วย nsis
    เมื่อ double click แฟ้ม yonoklog1s.exe แล้วจะให้เกิดเหตุการณ์ดังต่อไปนี้
  1. คัดลอกแฟ้ม yonoklog1.exe ลงไปใน c:\windows ของเครื่องเป้าหมาย
  2. สร้าง Link ใน Start, Program, Startup ทำให้ทุกครั้งที่เปิดเครื่องจะประมวลผลทันที
Source code for NSIS Compiler (อาจมีชื่อว่า yonoklog1.nsi)
    วิธีการ
  1. สร้างแฟ้ม yonoklog1.exe เก็บไว้ในเครื่องต้นแบบ
  2. สร้างแฟ้ม yonoklog1.nsi ใน Drive C ด้วย Notepad หรือ Editplus สำหรับเก็บ Script คำสั่งของ NSIS
  3. ติดตั้ง NSIS ที่ได้โปรแกรมจาก http://nsis.sourceforge.net (ถ้าเคยติดตั้งแล้วให้ข้ามข้อนี้ไป)
  4. เปิด Explorer แล้ว Right Click เหนือแฟ้ม x.nsi เลือก Compile NSIS Script
  5. จะได้แฟ้ม yonoklog1s.exe ซึ่งเป็นตัวติดตั้ง (Installer)
ภาพที่ 1 : วิธีการ Compile
ภาพที่ 2 : หลังสั่ง Compile และไม่พบปัญหา
จะได้แฟ้ม yonoklog1s.exe
ภาพที่ 3 : Double Click แฟ้ม yonoklog1s.exe
ในเครื่องอื่น ที่ต้องการติดตั้ง yonoklog1.exe
ภาพที่ 4 : ดูผลที่ได้หลังประมวลผลแฟ้ม yonoklog1s.exe
ในเครื่องอื่น ที่ต้องการติดตั้ง yonoklog1.exe

ตัวอย่าง 2. Photo 3 (ติดตั้ง ถามเลือก และถอนได้)
    เป้าหมาย
    ต้องการนำแฟ้มจากห้อง c:\program files\photo3 ไปใส่ในเครื่องอื่น และใช้งานได้ทันที
    จึงสร้างตัวติดตั้ง (Installer) ให้ชื่อว่า photo3i.exe ด้วย nsis
    เมื่อ double click แฟ้ม photo3i.exe แล้วจะให้เกิดเหตุการณ์ดังต่อไปนี้
  1. คัดลอกแฟ้มทั้งหมดลงไปในห้อง c:\program files\photo3 ของเครื่องเป้าหมาย
  2. เขียนข้อมูลที่จำเป็นลงไปใน Register
  3. สร้าง Short Cut ใน Start, Program
  4. สร้าง Short Cut บน Desktop
  5. สร้างส่วนรองรับการถอนโปรแกรม (Uninstall)
Source code for NSIS Compiler (อาจมีชื่อว่า photo3i.nsi)
    วิธีการ
  1. สร้างโปรแกรมและรวมภาพเก็บไว้ในเครื่องต้นแบบ ในห้อง c:\program files\photo3\
  2. สร้างแฟ้ม photo3i.nsi ใน Drive C ด้วย Notepad หรือ Editplus สำหรับเก็บ Script คำสั่งของ NSIS
  3. ติดตั้ง NSIS ที่ได้โปรแกรมจาก http://nsis.sourceforge.net (ถ้าเคยติดตั้งแล้วให้ข้ามข้อนี้ไป)
  4. เปิด Explorer แล้ว Right Click เหนือแฟ้ม photo3i.nsi เลือก Compile NSIS Script
  5. จะได้แฟ้ม photo3i.exe ซึ่งเป็นตัวติดตั้ง (Installer)

ตัวอย่าง 5. thaiabc5vaphpmyadmin.nsi
    เป้าหมาย
  1. หลังสร้าง thaiabc5vcore.exe และติดตั้งในเครื่องเป้าหมาย
  2. ต้องการติดตั้ง phpmyadmin ให้ใช้กับ thaiabc5acore ในเครื่องเป้าหมาย
  3. นำแฟ้ม phpmyadmin ทั้งหมดเขียนไปในห้อง c:\thaiabc\apache\apache2\htdocs\phpmyadmin
Source code for NSIS Compiler (อาจมีชื่อว่า thaiabc5vaphpmyadmin.nsi)

ตัวแปรของ NSIS
เปิดจากแฟ้ม C:\Program Files\NSIS\NSIS.chm
จากหัวข้อ Variables ใน Chapter 4: Scripting Reference และนี่เป็นตัวแปรเพียงบางส่วนเท่านั้น
$PROGRAMFILES
The program files directory (usually C:\Program Files but detected at runtime).
$COMMONFILES
The common files directory. This is a directory for components that are shared across applications (usually C:\Program Files\Common Files but detected at runtime).
$DESKTOP
The windows desktop directory (usually C:\windows\desktop but detected at runtime). The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$EXEDIR
The location of the installer executable (technically you can modify this variable, but it is probably not a good idea).
${NSISDIR}
A symbol that contains the path where NSIS is installed. Detected at compile time. Useful if you want to call resources that are in NSIS directory e.g. Icons, UIs...
$WINDIR
The windows directory (usually C:\windows or C:\winnt but detected at runtime).
$SYSDIR
The windows system directory (usually C:\windows\system or C:\winnt\system32 but detected at runtime).
$TEMP
The system temporary directory (usually C:\windows\temp but detected at runtime).
$STARTMENU
The start menu folder (useful in adding start menu items using CreateShortCut). The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$SMPROGRAMS
The start menu programs folder (use this whenever you want $STARTMENU\Programs). The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$SMSTARTUP
The start menu programs / startup folder. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.
$QUICKLAUNCH
The quick launch folder for IE4 active desktop and above. If quick launch is not available, simply returns the same as $TEMP.
$DOCUMENTS
The documents directory. A typical path for the current user is C:\Documents and Settings\Foo\My Documents. The context of this constant (All Users or Current user) depends on the SetShellVarContext setting. The default is the current user.

code อ่าน directory สำหรับ .nsi
<?
// Directory of C:\thaiabc\..
// for thaiabc5vf.nsi 2550-01-05
$a = file("c:\x.txt");
foreach ($a as $v) {
  $v1 = split("\r",$v);
  $v2 = $v1[0];
  echo str_replace(' Directory of C:\thaiabc\apache','SetOutPath "$INSTDIR\apache',$v2) .'"<br>';
  echo 'File "' . str_replace(' Directory of C','c',$v2) .'\*"<br>';
}
for ($i=0;$i<count($a);$i++) {
  $v1 = split("\r",$a[count($a) - $i - 1]);
  $v2 = $v1[0];
  echo 'delete "' . str_replace(' Directory of C:\thaiabc\a','$INSTDIR\a',$v2) .'\*"<br>';
}
for ($i=0;$i<count($a);$i++) {
  $v1 = split("\r",$a[count($a) - $i - 1]);
  $v2 = $v1[0];
  echo 'rmdir "' . str_replace(' Directory of C:\thaiabc\a','$INSTDIR\a',$v2) .'"<br>';
}
?>

แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยเนชั่น
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : facebook.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223