จำนวนการดูหน้าเว็บรวม

ชิงช้าไม้เนื้อแข็ง
กล่องเลี้ยงชันโรง แบบ 2 ชั้น ขนาด A4
ฟีโรโมนล่อชันโรง
กระต่ายขูดมะพร้าวหนาพิเศษ
ม้านั่งไม้เนื้แแข็ง
ถาดน้ำหวานสำหรับชันโรง
สมุนไพรแพะหงี่แห้ง
หน่อกล้วยตานี
ฟีโรโมนฉีดล่อชันโรง
กล่องเลี้ยงชันโรง
กล่องเลี้ยงผึ้งโพรง
หน่อกล้วยพระราชทาน
กาพ่นควันผึ้ง สโมคเกอร์
Inverter testerSP8030- SM852B
ไขผึ้งสำหรับผึ้งโพรงไทย
ไม้ทับกล้วยปิ้ง14-16
ขี้ชันแท้ 100% สำหรับล่อชันโรง
ฟีโรโมน ฉีดกล่องเลี้ยงชันโรง
ฟีโรโมนล่อผึ้งโพรง
ชุดฟีโรโมนและไขล่อผึ้งโพรงไทย
กล่องเลี้ยงชันโรง ขนาด 5 ชั้น แยกรัง
ขาตั้งกล่องเลี้ยงผึ้ง
ขาตั้งกล่องชันโรงไม่มีกล่อง
กล่องเลี้ยงชันโรง 2ชั้น
ถาดน้ำหวาน สำหรับเลี้ยง ชันโรง
ไม้ทับกล้วย14-18-28
กล่องเลี้ยงชันโรง เหมาะกับพันธ์ตัวเล็ก
กระต่ายขูดมะพร้าวแบบนั่ง
กล่องเลี้ยงชันโรงแยกน้ำหวานแบบ 2 ชั้น ขนาดA4
ฟีโรโมน ล่อชันโรง สูตรเข้มข้น
ฟีโรโมนฉีดล่อชันโรง รวมกับขี้ชัน
หน่อกล้วยน้ำว้า ซูปเปอร์ยักษ์
ชุดล่อผึ้งโพรง ฟีโรโมนแบบสกัด+ครีมล่อผึ้ง+ไขล่อผึ้ง
ฟีโรโมนฉีดล่อชันโรงสูตรเข้มข้น
ฟีโรโมน ล่อชันโรง (เกรดพรีเมี่ยม)
ฟีโรโมนฉีดล่อชันโรง
ชิงช้าไม้จากไม้บ้านเก่าอายุ 50 ปี
กล่องเลี้ยงชันโรงแบบ2ชั้น
ฟีโรโมนล่อผึ้งโพรงสูตรหมัก+ไขล่อผึ้งโพรง
สโม๊กเกอร์พ่นควัน
ฟีโรโมนล่อผึ้งโพรง 20 ซีซี+ไขล่อผึ้งโพรงแท้ 1 ก้อน
ไขล่อผึ้งโพรง สูตรเข้มข้น
กล่องเลี้ยงชันโรง แบบ 3 ชั้น
Debug Card (2หลัก) ดีบักการ์ด
พระสมเด็จวัดระฆัง งานพิมพ์มือ แจกงานบุญ
กล่องเลี้ยงผึ้ง
กล่องชันโรง “สวนราชินี” รุ่น A4 -3 ชั้น
กล่องเลี้ยงชันโรง ขนาด เอ4 สูง 4 นิ้ว

ผู้ติดตาม

วันอาทิตย์ที่ 1 พฤศจิกายน พ.ศ. 2569

ตำราปฏิบัติการ: การแปลงเว็บแอปพลิเคชัน ม้าเหล็กเรดิโอ เป็นไฟล์ .EXE

ตำราปฏิบัติการ: การแปลงเว็บแอปพลิเคชัน ม้าเหล็กเรดิโอ เป็นไฟล์ .EXE ด้วย Electron และ GitHub Actions

📚 ตำราปฏิบัติการฉบับสมบูรณ์: การสร้างโปรแกรมเดสก์ท็อป .EXE จากเว็บแอปม้าเหล็กเรดิโอ

ผู้บันทึก/ผู้พัฒนา: ลุงแจ่ม อารมณ์ดี
วัตถุประสงค์: ใช้เป็นคู่มือมาตรฐาน (Standard Operating Procedure) อ้างอิงขั้นตอนการทำโปรเจกต์ ถอดบทเรียนจากข้อผิดพลาด เพื่อใช้ทำงานในอนาคตโดยห้ามข้ามขั้นตอน


1. ภาพรวมสถาปัตยกรรมระบบ (Architecture)

  • Frontend: ไฟล์ index.html ของเว็บแอป "ม้าเหล็กเรดิโอ" ซึ่งดึงไฟล์เสียงและรายชื่อเพลงแบบไดนามิก (Live/Dynamic Streaming) จาก Archive.org (Identifier: 005_20261024) ทำให้อัปเดตเพลงใหม่บนเว็บได้ทันทีโดยไม่ต้อง Build ตัวโปรแกรมใหม่
  • Backend Framework: ใช้ Electron ควบคุมหน้าต่างแอปพลิเคชันเดสก์ท็อป
  • Automation Builder: ใช้ GitHub Actions ในการคอมไพล์โค้ดบนคลาวด์ให้เป็นไฟล์ติดตั้ง `.EXE` สำหรับระบบปฏิบัติการ Windows

2. โครงสร้างไฟล์ทั้งหมดที่จำเป็นในโปรเจกต์

การเตรียมไฟล์ใน GitHub Repository (เช่น MalekRadio24Hrs) ต้องมีองค์ประกอบครบถ้วนดังนี้:

  • index.html (หน้าตาแอปพลิเคชันและระบบเล่นเพลง)
  • main.js (ไฟล์ควบคุมการเปิดหน้าต่างและวงจรชีวิตของแอป Electron)
  • package.json (ไฟล์กำหนดค่าแพ็กเกจ ไลบรารี และเชื่อมโยงไอคอน)
  • .github/workflows/build-exe.yml (ไฟล์คำสั่งรันระบบ GitHub Actions)
  • icon.ico (ไฟล์ไอคอนรูปหูฟังประจำโปรแกรม)

3. รายละเอียดซอร์สโค้ดในแต่ละไฟล์

ก. ไฟล์ `main.js` (Main Process ควบคุมหน้าต่าง)

const { app, BrowserWindow } = require('electron');
const path = require('path');

function createWindow() {
  const win = new BrowserWindow({
    width: 1200,
    height: 800,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false
    },
    autoHideMenuBar: true,
    title: "ม้าเหล็กเรดิโอ ออนไลน์ 24 ชั่วโมง"
  });

  win.loadFile('index.html');
}

app.whenReady().then(() => {
  createWindow();

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow();
    }
  });
});

// ⚠️ สำคัญ: ต้องใช้ app.quit() เท่านั้น ห้ามใช้ app.stop()
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

ข. ไฟล์ `package.json` (ตั้งค่าระบบและปิด Publish อัตโนมัติ)

{
  "name": "malek-radio-24hrs",
  "version": "1.0.0",
  "description": "Malek Radio 24Hrs Desktop App",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "build": "electron-builder --win --x64"
  },
  "build": {
    "productName": "Malek Radio 24Hrs",
    "win": {
      "icon": "icon.ico"
    },
    "publish": null
  },
  "devDependencies": {
    "electron": "^28.0.0",
    "electron-builder": "^24.6.0"
  }
}

ค. ไฟล์ GitHub Actions Workflow (`.github/workflows/build-exe.yml`)

name: Build Desktop App (.exe)

on:
  push:
    branches: [ "main", "master" ]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - name: Checkout Code
      uses: actions/checkout@v4

    - name: Setup Node.js
      uses: actions/setup-node@v4
      with:
        node-version: 18

    - name: Install Dependencies
      run: npm install

    - name: Build Electron App
      run: npx electron-builder --win --x64

    - name: Upload Artifacts
      uses: actions/upload-artifact@v4
      with:
        name: Windows-EXE-App
        path: dist/*.exe

4. บันทึกข้อผิดพลาดและแนวทางแก้ไข (Troubleshooting & Lessons Learned)

❌ ข้อผิดพลาดที่ 1: ข้อจำกัดด้านขนาดความละเอียดไฟล์ไอคอน (Exit Code 1)

อาการที่พบ: ระบบ GitHub Actions แจ้งเตือนสถานะ Build ล้มเหลวในขั้นตอน Build Electron App พร้อมข้อความแสดงความผิดพลาด:

✖ image ...\icon.ico must be at least 256x256
Error: Process completed with exit code 1.

สาเหตุ: ไฟล์ภาพไอคอน `.ico` ที่อัปโหลดขึ้นไปมีความละเอียดพิกเซลต่ำกว่ามาตรฐาน 256x256 พิกเซล ซึ่งเป็นข้อกำหนดบังคับของไลบรารี electron-builder

วิธีแก้: จัดเตรียมไฟล์รูปภาพไอคอนที่มีขนาดความละเอียดสูง (256x256 หรือ 512x512 พิกเซลขึ้นไป), ตรวจสอบชื่อไฟล์ให้สะกดเป็นพิมพ์เล็กทั้งหมดว่า icon.ico ให้ตรงกับที่ระบุใน package.json แล้วอัปโหลดขึ้น GitHub ใหม่

❌ ข้อผิดพลาดที่ 2: ปัญหาตั้งชื่อไฟล์ไอคอนไม่ตรงกับ Configuration

อาการที่พบ: ระบบหาไฟล์ไอคอนไม่พบเนื่องจากตั้งชื่อไฟล์ในเครื่องหรือตอนอัปโหลดเป็นชื่ออื่น (เช่น favicon (1).ico)

วิธีแก้: บังคับตั้งชื่อไฟล์ไอคอนให้เป็น icon.ico เสมอทุกครั้งก่อนนำเข้าโปรเจกต์ เพื่อป้องกันการMismatch ของตัวแปรใน package.json


5. ขั้นตอนการตรวจสอบผลลัพธ์และการดาวน์โหลดโปรแกรม

  1. เมื่อแก้ไขไฟล์ครบถ้วนและ Commit ขึ้น GitHub สำเร็จ ให้ไปที่แท็บ Actions บนหน้าเว็บไซต์ GitHub
  2. รอจนกระทั่งกระบวนการทำงานเปลี่ยนสถานเป็นเครื่องหมายถูกสีเขียว (✅)
  3. คลิกเข้าไปที่ชื่องานล่าสุด เลื่อนลงมาด้านล่างสุดในหัวข้อ Artifacts
  4. คลิกดาวน์โหลดไฟล์ชื่อ Windows-EXE-App (ซึ่งเป็นไฟล์บีบอัด `.zip` บรรจุดโปรแกรมติดตั้ง `.EXE` เอาไว้)
  5. แตกไฟล์ออกมา จะได้โปรแกรมเดสก์ท็อปพร้อมไอคอนหูฟังสีแดงสวยงาม พร้อมใช้งานและเผยแพร่

💡 บทสรุปสำหรับยึดถือปฏิบัติ: การแยกส่วนฐานข้อมูลเพลงให้อยู่บน Archive.org และใช้หน้าเว็บเป็นตัวกลางดึงข้อมูลสด ช่วยให้ไม่ต้องทำการ Build ไฟล์ `.EXE` ใหม่ทุกครั้งที่มีการเพิ่มเพลง ช่วยประหยัดเวลาและทำให้ระบบมีความคล่องตัวสูงสุด

ไม่มีความคิดเห็น:

สินค้า01

1Prabdasak
แหวนเพชรสุดหรู
กางเกงขายาว**ขนาดใหญ่**ผ้าฝ้ายทรงBarrel
ลูกพีชอบแห้ง หวานน้อย
ส้มกลีบอบแห้ง พริกเกลือ
เลมอนอบแห้งเคลือบน้ำผึ้งแท้
ถุงขยะดำชนิดหนาพิเศษกลิ่นไม่ฉุน
พวงกุญแจคีย์แคปใส่ชื่อได้
ต่างหูหนีบแบบห่วง(แป้นคลิปหนีบโลหะ)
หมวกกันฝุ่นซิลิโคน RJ45
เครื่องวัดแรงดันไฟฟ้า110V 220V 380V 100A KWH
เก้าอี้นอนแมว
แผ่นอะคริลิคใส(Acrylic Clear) ขนาด 120 x 120 cm
เครื่องตัดหญ้าไฟฟ้าไร้สาย 3980W
เรื่องเล่า 100 ล้านวิว อ่านแล้วชีวิตโคตรดี
กระดาษทรายซ้อนหลังแข็ง 1ชุด=10ชิ้น
แบบฝึกหัดทักษะการเขียน ประถมศึกษา 1-6
ฮอร์โมนกระตุ้นน้ำยาง
มีดกรีดยาง999 คอตัด
กล้วยไม้หวายคละสีเซ็ต 5 ต้น แถมฟรี 1 ต้น
สีไม้ 12 สี หัวเดียวมาสเตอร์อาร์ต
หินลับมีดกรีดยาง
ผ้าทรายเรียงซ้อน หลังอ่อน/หลังแข็ง
กล่องไปรษณีย์ 0+4(100ใบ)

สินค้า ice

สินค้า พรีเมี่ยม

สินค้า 1
กล่องเลี้ยงชันโรง เหมาะกับพันธ์ตัวเล็กๆ
สินค้า 2
พระสมเด็จวัดระฆัง
สินค้า 3
กระต่ายขูดมะพร้าวแบบนั่ง
สินค้า 4
เครื่องซีลฝาฟอยล์
สินค้า 5
กล่องเลี้ยงชันโรง พร้อมขาตั้ง
สินค้า 6
ล่อชันโรง จัดชุดฟีโรโมน 20ซีซี+ขี้ชัน 1 ตลับ
สินค้า 7
ชิงช้าไม้ จากไม้เนื้อแข็ง
สินค้า 8
กล่องเลี้ยงชันโรง แบบ 2 ชั้น ขนาด A4
สินค้า 9
ฟีโรโมนล่อชันโรง มัดรวมกับ ขี้ชันโรง
สินค้า 10
หน่อกล้วยตานี 1 หน่อ
สินค้า 11
เก้าอี้ไม้ สำหรับนั่งเล่น
สินค้า 12
กล่องเลี้ยงชันโรง
สินค้า 13
กล่องเลี้ยงผึ้งโพรง (ส่งทันที)
สินค้า 14
หน่อกล้วยพระเทพ หน่อกล้วยพระราชทาน
สินค้า 15
สโมคเกอร์ เครื่องพ่นควันผึ้ง
สินค้า 16
Inverter tester มิเตอร์สําหรับใช้ในการทดสอบกระแสไฟฟ้า
สินค้า 17
ไขผึ้งสำหรับผึ้งโพรงไทย
สินค้า 18
ไม้ทับกล้วยปิ้ง ไม้หนาขนาดใหญ่
สินค้า 19
แปรงขนม้าสำหรับปัดตัวผึ้ง/div>
สินค้า 20
ฟีโรโมน ฉีดกล่องเลี้ยงชันโรง

สินค้าร้านกาน้ำชา