<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6926713945724376476</id><updated>2026-11-01T15:37:08.907+07:00</updated><category term="ซ่อมคอม"/><category term="เรียนซ่อมคอม"/><category term="คอมพิวเตอร์"/><category term="โกส"/><category term="แปลงวีดีโอ"/><category term="windows"/><category term="ซ่อมคอมถึงบ้าน"/><category term="ไวรัส"/><category term="ตัดต่อวีดีโอ"/><category term="xxx"/><category term="สอนคอม"/><category term="MP3"/><category term="คลิป"/><category term="โดนไวรัส"/><category term="กู้ไฟล์"/><category term="สอนกู้ไฟล์"/><category term="โปรแกรมสแกนไวรัส"/><category term="โปรแกรมแก้ไวรัส"/><category term="คาราโอเกะ"/><category term="ซ่อมแซม"/><category term="ดารา"/><category term="ไวรัสซ่อนไฟล์"/><category term="ไวรัส Shortcut"/><category term="กู้ข้อมูล"/><category term="คอมอืด"/><category term="ซ่อนโฟลเดอร์"/><category term="ทิปคอม"/><category term="โปรแกรมป้องกันสปายแวร์"/><category term="ปลดล็อค"/><category term="รักษาคอม"/><category term="หมุน"/><category term="โปรแกรมกู้ข้อมูล"/><category term="Partition"/><category term="จอคอมพิวเตอร์"/><category term="ถอนไดร์เวอร์"/><category term="บล็อกเวป"/><category term="พยากรณ์อากาศ ."/><category term="ลบไฟล์"/><category term="เขียนแผ่น"/><category term="เครื่องหมาย"/><category term="โดนล็อค"/><category term="โปรแกรมกู้ไฟล์"/><category term="ไทยปลอดภัย (ThaiSafe)."/><category term="286 N3.03 Extensions&#xa;รหัส&#x9;ความหมาย."/><category term="3.Ox&#xa;&#xa;ใช้รูปแบบเสียงบี๊บของ IBM เวอร์ชัน 3.xx."/><category term="ADP-40WB REV.B"/><category term="AMI New BIOS; 02/02/91–12/12/91.."/><category term="AMI New BIOS; 06/06/92-08/08/93  ."/><category term="AMI WinBIOS; 12/15/93 Onwards ."/><category term="AST&#xa;ดู Phoenix หรือ Award ด้วย AST เปิดตัว BIOS ที่ปรับปรุงใหม่ในปี 1992."/><category term="AT&amp;T&#xa;&#xa;BIOS แบบ Phoenix หรือ Olivetti ดู Olivetti M24 สำหรับเมนบอร์ดซีรีส์ 6300 ."/><category term="Able2Extract"/><category term="Active File Recovery"/><category term="Arche Technologies&#xa;Legacy BIOS&#xa;มาจาก AMI (9 เมษายน 1990)."/><category term="Chips and Technologies."/><category term="Defo Virus"/><category term="Driver"/><category term="DriverSweeper"/><category term="EISA BIOS&#xa;รหัส&#x9;ความหมาย."/><category term="EISAรหัส ความหมาย."/><category term="ELEAT BIOS."/><category term="Flv"/><category term="Google เปิดตัว ImageFX ."/><category term="H235P-00"/><category term="IDE HDD2.5"/><category term="IDE to SATA"/><category term="ISA MAIN BROAD"/><category term="ISA สล็อต"/><category term="ISA/EISA BIOS v4.0&#xa;รหัส EISA อาจถูกส่งไปที่ 300h."/><category term="Inverter tester"/><category term="Late Award BIOS (4-5x PnP)&#xa;รหัส&#x9;ความหมาย."/><category term="Late Award BIOS (4.5x-non PnP)&#xa;รหัส&#x9;ความหมาย."/><category term="Modular (386) BIOS v3.1&#xa;สำหรับ PC/XT v3.0+ และ AT v3.02+ ด้วย."/><category term="My Documents"/><category term="OC8291"/><category term="Ontrack EasyRecovery"/><category term="PDF"/><category term="PEAK/DM"/><category term="PEAKMETER PM5900"/><category term="POST Codes&#xa;&#xa;NEAT"/><category term="POST Codes บางส่วนที่แสดงการเสียของใบออส."/><category term="PRINTER"/><category term="PSU อาจจ่ายไฟไม่พอ."/><category term="Partition Wizard"/><category term="Post Card  ข้อมูลโค้ด POST (Power On Self Test) ."/><category term="Power On Self Test (POST) และรหัส POST."/><category term="RAM"/><category term="Sony Vegas Pro"/><category term="UltraSurf"/><category term="Unexpected Errors&#xa;&#xa;รหัส&#x9;ความหมาย."/><category term="Windows 10/11 ยังใช้ Ghost ได้ไหม?."/><category term="Windows-No Disk"/><category term="XT 8088/86 BIOS v3.1&#xa;รหัส&#x9;ความหมาย."/><category term="google"/><category term="hotmail"/><category term="svchost"/><category term="transisitor testeter ."/><category term="v9"/><category term="กล้วย"/><category term="กล้วยน้ำว้า"/><category term="การซ่อมเพาเวอร์ซัพพลายคอมพิวเตอร์."/><category term="การทดสอบ POST และรหัส POST."/><category term="การทดสอบเมนบอร์ดว่าเสียหรือไม่."/><category term="การสร้างโปรแกรมเดสก์ท็อป .EXE ."/><category term="การสร้าพภาพด้วย AI"/><category term="การแปลความหมายโค้ด POST เบื้องต้น ."/><category term="การแปลงเว็บแอปพลิเคชัน ม้าเหล็กเรดิโอ เป็นไฟล์ .EXE."/><category term="การใช้ ArtCAM ขึ้นรูปจากภาพ."/><category term="การ์ดเช็คเมนบอร์ด ."/><category term="กูเกิ้ล"/><category term="กู้ไฟล์ที่โดน"/><category term="กู้ไม่ได้"/><category term="ขั้นตอนการ POST ของ AMI BIOS (2 กุมภาพันธ์ 1991)."/><category term="ขั้นตอนการตรวจเช็ก PSU อย่างละเอียดและปลอดภัย ."/><category term="ขาย"/><category term="ครอบคลุมทั้งสิทธิพื้นฐานที่ควรได้หลังเกิดอุบัติเหตุ."/><category term="คอมดับ"/><category term="คอมพิวเตอร์  กดสวิช พัดลมหมุน แต่ไม่มีเสียงปิบ เช็คตรงไหน."/><category term="คอมพิวเตอร์ที่แสดงวันที่และเวลาไม่ตรง."/><category term="คอมพิวเตอร์เปิดไม่ติด ไฟไม่เข้า."/><category term="คำนวณเลขเด็ดฟรี."/><category term="คีย์ลัด บนแป้นพิมพ์คอมพิวเตอร์ (ภาษาไทย)&#xa;."/><category term="คู่มือการซ่อมคอมพิวเตอร์ด้วยตัวเอง (สำหรับผู้เริ่มต้น)."/><category term="คู่มือปฐมพยาบาลฉุกเฉิน."/><category term="จับภาพหน้าจอ"/><category term="ซาวด์อะเบ้าท์&#xa;สินค้าวินเทจ"/><category term="ซ่อมคอมนอกสถานที่"/><category term="ดับ"/><category term="ดาวน์โหลด"/><category term="ดีบัคการ์ด"/><category term="ดูวีดีโอ"/><category term="ตัดไฟล์"/><category term="ติดตั้งหร้อน"/><category term="ทำบล็อก"/><category term="นิยายเสียงออนไลน์."/><category term="บทเพลงอำลา"/><category term="บันทึกรายงานเงินสดรับ-จ่าย (สำหรับสรรพากร) ."/><category term="บีบไฟล์"/><category term="ปลดล็อกเวปที่โดนบล็อก"/><category term="พยากรณ์อากาศ จ.กำแพงเพชร."/><category term="พยากรณ์อากาศทั่วไทย ."/><category term="พลาสเวิร์ด"/><category term="พิมพ์บัตรส่วนลดออนไลน์."/><category term="พิมพ์ใบปะหน้าพัสดุออนไลน์ ."/><category term="พิมพ์ใบมอบอำนาจ."/><category term="ฟร้อน"/><category term="ฟอแมต"/><category term="ฟีเจอร์ &quot;Reset this PC&quot; ใน Windows 10/11 เป็นตัวช่วยกู้ชีพชั้นดี."/><category term="ภาพหัวเว็บ"/><category term="มือสอง"/><category term="ยูทูป"/><category term="รวมทุกอย่างกำแพงเพชร."/><category term="รหัส POST ของ ACER (อ้างอิงจาก Award BIOS 3.03).."/><category term="รหัส POST และการแก้ไขปัญหา."/><category term="ระบบจัดการสตอกสินค้า."/><category term="ระบบพิมพ์ใบเสร็จรับเงิน."/><category term="ระบบออกใบสำคัญรับเงิน."/><category term="ระบบแกะคอร์ดเพลงอัตโนมัติ."/><category term="รักสาวสกลนคร"/><category term="รับทำสปอต"/><category term="ราคาถูก"/><category term="ลงฟร้อน"/><category term="ลำดับการทดสอบ Award - หลัง v4.2 (386/486)."/><category term="ล้างฮาร์ดดิสก์"/><category term="วันที่ ไม่มีเธอกอดนอน"/><category term="วางโฆษณา."/><category term="วิธีการหาความหมายของ POST code:."/><category term="วิธีการแบ่ง Partition ของฮาร์ดดิสก์."/><category term="วิธีการใช้ Debug Card ในการตรวจสอบเมนบอร์ดคอมพิวเตอร์."/><category term="วิธีตามหาคนหาย."/><category term="วิธีลบไฟล์ขยะในที่ต่างๆ ของคอมพิวเตอร์."/><category term="วิธีใช้ Bing Image Creator:&#xa;."/><category term="วิธีใช้ Windows Memory Diagnostic เพื่อตรวจสอบปัญหา RAM กัน."/><category term="วินมอไซด์ในหมู่บ้าน."/><category term="ศูนย์พยากรณ์อากาศ  - เช็กฝน 77 จังหวัด."/><category term="สปอตหาเสียง"/><category term="สปอตโฆษณา"/><category term="สอนร้องเพลง"/><category term="สอนโหลดวีดีโอจากยูทูป"/><category term="สายแพฮาร์ดดิส IDE"/><category term="สีของสายไฟในเพาเวอร์ซัพพลาย (PSU)."/><category term="สูตรเครื่องดื่ม 140 สูตร."/><category term="หน่อกล้วย"/><category term="หยดน้ำตาลาแฟนเก่า"/><category term="หลักการวินิจฉัยว่าแรมเสีย."/><category term="หัส POST ของ AMI BIOS 2.2x."/><category term="หาเสียง"/><category term="อัดวีดีโอ"/><category term="อัพเดทเพลง ใหม่1"/><category term="ฮารดดิสก์"/><category term="ฮาร์ดดิสก์ที่เสีย มีสัญญาณเตือนหลายอย่างที่พอจะสังเกตได้."/><category term="ฮาร์ดดิสก์ที่เสีย เราซ่อมได้ไหม."/><category term="ฮาร์ดดิสก์มาใช้แทนแรม."/><category term="ฮาร์ดดิสก์มือสอง"/><category term="เกม WIND BRAWL."/><category term="เกม ซิ่งสะท้านฟ้า V9."/><category term="เกมตกปลาหมุนคลาสสิก ."/><category term="เกมทุบตัวตุ่น (Whac-A-Mole)."/><category term="เกมหมาแมวสู้กัน."/><category term="เกมแข่งรถซิ่งสะท้านฟ้า."/><category term="เครื่องเล่นเพลง MP3."/><category term="เปลี่ยนไอคอนแอปพลิเคชัน."/><category term="เพลง"/><category term="เพลงหาเสียง"/><category term="เลือกตั้ง"/><category term="เล่นวีดีโอ"/><category term="เว็บแต่งเสียงเพลงออนไลน์ ฟรี!."/><category term="แจกฟรี! โปรแกรมออกบิลเงินสด."/><category term="แบ่งพาธิชั่น"/><category term="แบ่งไฟล์"/><category term="แปลงเอกสาร"/><category term="แปลงไฟล์ PDF"/><category term="แปลงไฟล์เสียง MP3 ⇄ WAV."/><category term="แอปช่วยแต่งเพลง."/><category term="แอปสั่งสินค้า."/><category term="โฆษณา"/><category term="โชว์รูป"/><category term="โปรแกรมตีคอร์ดกีตาร์ออนไลน์."/><category term="โปรแกรมทำไตเติ้ลวิดีโอ."/><category term="โปรแกรมมิกซ์เสียงและปรับแต่ง EQ."/><category term="โปรแกรมแก้ไวรัส Shortcut"/><category term="โหลดยูทูป"/><category term="โหลดวีดีโอ"/><category term="ใบรับรองแทนใบเสร็จรับเงิน."/><category term="ใบเสร็จรับเงิน."/><category term="ไวรัสMSN"/><title type='text'>รู้ทันคอมพิวเตอร์</title><subtitle type='html'>บล็อครู้ทันคอมพิวเตอร์ บทความโดย แจ่ม อารมณ์ดี สอนการแก้ปัญหาจากการใช้คอมพิวเตอร์และโปรแกรมต่างๆ</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>718</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-3441137164354456062</id><published>2026-11-01T15:28:35.054+07:00</published><updated>2026-11-01T15:37:08.907+07:00</updated><title type='text'>เลีอกโปรแกรมที่ข้องการดาวน์โหลด</title><content type='html'>&lt;style&gt;
    .catalog-container { max-width: 1200px; margin: 20px auto; font-family: &#39;Sarabun&#39;, sans-serif; color: #333; position: relative; }
    .catalog-header { background: #1565C0; color: #fff; padding: 15px 20px; border-radius: 8px; text-align: center; font-size: 20px; font-weight: bold; margin-bottom: 20px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); position: relative; }
    
    /* ปุ่มฟันเฟืองแอดมิน มุมขวาบน */
    .admin-gear-btn {
        position: absolute;
        top: 15px;
        right: 20px;
        background: rgba(255, 255, 255, 0.2);
        color: #fff;
        border: none;
        border-radius: 50%;
        width: 35px;
        height: 35px;
        font-size: 18px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: 0.2s;
    }
    .admin-gear-btn:hover { background: rgba(255, 255, 255, 0.4); }

    /* ตาราง 40 ช่อง */
    .catalog-grid-40 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }
    @media (max-width: 768px) {
        .catalog-grid-40 { grid-template-columns: 1fr; }
    }

    .catalog-slot {
        background: #ffffff;
        border: 1px solid #e0e0e0;
        border-radius: 8px;
        padding: 15px;
        min-height: 120px;
        position: relative;
        box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    }
    
    /* โหมดแก้ไข (ซ่อนไว้ก่อน) */
    .slot-admin-panel {
        display: none;
        background: #fff8e1;
        border: 2px dashed #ff9800;
        padding: 10px;
        border-radius: 6px;
        margin-top: 10px;
    }
    .slot-input-code {
        width: 100%;
        height: 70px;
        font-family: monospace;
        font-size: 11px;
        padding: 6px;
        border: 1px solid #ccc;
        border-radius: 4px;
        background: #fff;
        box-sizing: border-box;
        margin-bottom: 5px;
    }
    .slot-save-btn {
        background: #2E7D32;
        color: #fff;
        border: none;
        padding: 5px 12px;
        border-radius: 4px;
        font-size: 12px;
        font-weight: bold;
        cursor: pointer;
    }
    .slot-save-btn:hover { background: #1B5E20; }

    /* หน้าต่างใส่รหัสผ่านแอดมิน */
    #adminModal {
        display: none;
        position: fixed;
        top: 0; left: 0; width: 100%; height: 100%;
        background: rgba(0,0,0,0.5);
        justify-content: center;
        align-items: center;
        z-index: 9999;
    }
    .admin-modal-box {
        background: #fff;
        padding: 25px;
        border-radius: 10px;
        text-align: center;
        width: 320px;
        box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    }
    .admin-modal-box input {
        width: 100%;
        padding: 10px;
        margin: 15px 0;
        border: 1px solid #ccc;
        border-radius: 6px;
        text-align: center;
        font-size: 16px;
        box-sizing: border-box;
    }
&lt;/style&gt;

&lt;!-- หน้าแคตตาล็อกหลัก (ลูกค้าเห็นหน้านี้ปกติทันที) --&gt;
&lt;div class=&quot;catalog-container&quot;&gt;
    &lt;div class=&quot;catalog-header&quot;&gt;
        📦 แคตตาล็อกดาวน์โหลดโปรแกรมและแอปพลิเคชัน
        &lt;!-- ปุ่มฟันเฟืองสำหรับแอดมิน --&gt;
        &lt;button class=&quot;admin-gear-btn&quot; onclick=&quot;openAdminModal()&quot; title=&quot;ตั้งค่าแอดมิน&quot;&gt;⚙️&lt;/button&gt;
    &lt;/div&gt;
    
    &lt;!-- พื้นที่ตาราง 40 ช่อง --&gt;
    &lt;div class=&quot;catalog-grid-40&quot; id=&quot;catalogGridContainer&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;!-- หน้าต่าง Modal ใส่รหัสผ่านแอดมิน --&gt;
&lt;div id=&quot;adminModal&quot; onclick=&quot;if(event.target === this) closeAdminModal()&quot;&gt;
    &lt;div class=&quot;admin-modal-box&quot;&gt;
        &lt;div style=&quot;font-size: 16px; font-weight: bold; color: #1565C0; margin-bottom: 10px;&quot;&gt;🔐 ใส่รหัสผ่านผู้ดูแลระบบ&lt;/div&gt;
        &lt;input type=&quot;password&quot; id=&quot;adminPassInput&quot; placeholder=&quot;••••••&quot;&gt;
        &lt;button style=&quot;background:#1565C0;color:#fff;border:none;padding:8px 15px;border-radius:5px;font-weight:bold;cursor:pointer;width:100%;&quot; onclick=&quot;verifyAdminPass()&quot;&gt;ยืนยันรหัส&lt;/button&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
    let isAdminMode = false;

    function renderCatalog() {
        let container = document.getElementById(&#39;catalogGridContainer&#39;);
        container.innerHTML = &#39;&#39;;
        
        for (let i = 1; i &lt;= 40; i++) {
            let savedHtml = localStorage.getItem(&#39;cat_slot_&#39; + i) || &#39;&#39;;
            
            let slotDiv = document.createElement(&#39;div&#39;);
            slotDiv.className = &#39;catalog-slot&#39;;
            
            let htmlContent = &#39;&#39;;
            if (savedHtml) {
                htmlContent = savedHtml;
            } else {
                htmlContent = &#39;&lt;div style=&quot;text-align:center;color:#999;padding:15px;font-size:13px;&quot;&gt;ช่องที่ &#39; + i + &#39; (ยังไม่มีโปรแกรม)&lt;/div&gt;&#39;;
            }

            // ถ้าเปิดโหมดแอดมิน จะแสดงกล่องใส่โค้ดเพิ่มเข้าไปด้านล่าง
            let adminPanel = &#39;&#39;;
            if (isAdminMode) {
                adminPanel = &#39;&lt;div class=&quot;slot-admin-panel&quot; style=&quot;display:block;&quot;&gt;&#39; +
                    &#39;&lt;div style=&quot;font-size:11px;font-weight:bold;color:#e65100;margin-bottom:3px;&quot;&gt;🛠️ [Admin] แก้ไขช่องที่ &#39; + i + &#39;&lt;/div&gt;&#39; +
                    &#39;&lt;textarea id=&quot;input-code-&#39; + i + &#39;&quot; class=&quot;slot-input-code&quot; placeholder=&quot;วางโค้ด HTML การ์ดโปรแกรมที่นี่...&quot;&gt;&#39; + savedHtml + &#39;&lt;/textarea&gt;&#39; +
                    &#39;&lt;button class=&quot;slot-save-btn&quot; onclick=&quot;saveSlotCode(&#39; + i + &#39;)&quot;&gt;💾 บันทึกโค้ด&lt;/button&gt;&#39; +
                    &#39;&lt;/div&gt;&#39;;
            }

            slotDiv.innerHTML = htmlContent + adminPanel;
            container.appendChild(slotDiv);
        }
    }

    function openAdminModal() {
        if (isAdminMode) {
            // ถ้าเปิดอยู่แล้ว กดอีกทีเพื่อปิดโหมดแอดมิน
            isAdminMode = false;
            renderCatalog();
            alert(&#39;ออกจากโหมดผู้ดูแลระบบแล้ว&#39;);
        } else {
            document.getElementById(&#39;adminModal&#39;).style.display = &#39;flex&#39;;
            document.getElementById(&#39;adminPassInput&#39;).value = &#39;&#39;;
            document.getElementById(&#39;adminPassInput&#39;).focus();
        }
    }

    function closeAdminModal() {
        document.getElementById(&#39;adminModal&#39;).style.display = &#39;none&#39;;
    }

    function verifyAdminPass() {
        let pass = document.getElementById(&#39;adminPassInput&#39;).value;
        if (pass === &quot;011036&quot;) { // รหัสผ่านแอดมิน
            isAdminMode = true;
            closeAdminModal();
            renderCatalog();
            alert(&#39;เข้าสู่โหมดผู้ดูแลระบบสำเร็จ! คุณสามารถแก้ไขช่องต่างๆ ได้แล้ว&#39;);
        } else {
            alert(&#39;รหัสผ่านไม่ถูกต้อง!&#39;);
            document.getElementById(&#39;adminPassInput&#39;).value = &#39;&#39;;
            document.getElementById(&#39;adminPassInput&#39;).focus();
        }
    }

    function saveSlotCode(slotNum) {
        let code = document.getElementById(&#39;input-code-&#39; + slotNum).value;
        localStorage.setItem(&#39;cat_slot_&#39; + slotNum, code);
        renderCatalog();
        alert(&#39;บันทึกข้อมูลช่องที่ &#39; + slotNum + &#39; เรียบร้อยแล้ว!&#39;);
    }

    // โหลดหน้าแรกปกติสำหรับลูกค้า
    renderCatalog();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/3441137164354456062/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/3441137164354456062' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/3441137164354456062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/3441137164354456062'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/11/blog-post.html' title='เลีอกโปรแกรมที่ข้องการดาวน์โหลด'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-5970758076439346006</id><published>2026-11-01T09:14:14.265+07:00</published><updated>2026-11-01T09:14:14.266+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="การแปลงเว็บแอปพลิเคชัน ม้าเหล็กเรดิโอ เป็นไฟล์ .EXE."/><title type='text'>ตำราปฏิบัติการ: การแปลงเว็บแอปพลิเคชัน ม้าเหล็กเรดิโอ เป็นไฟล์ .EXE </title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;ตำราปฏิบัติการ: การแปลงเว็บแอปพลิเคชัน ม้าเหล็กเรดิโอ เป็นไฟล์ .EXE ด้วย Electron และ GitHub Actions&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Segoe UI&#39;, Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.7;
            color: #2c3e50;
            max-width: 950px;
            margin: 0 auto;
            padding: 30px;
            background-color: #f4f6f9;
        }
        .container {
            background: #fff;
            padding: 40px;
            border-radius: 10px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        }
        h1 {
            color: #1a252f;
            border-bottom: 3px solid #3498db;
            padding-bottom: 15px;
            margin-bottom: 30px;
        }
        h2 {
            color: #2980b9;
            margin-top: 35px;
            border-left: 5px solid #3498db;
            padding-left: 10px;
        }
        h3 {
            color: #34495e;
            margin-top: 20px;
        }
        ol, ul {
            padding-left: 25px;
        }
        li {
            margin-bottom: 10px;
        }
        pre {
            background: #1e1e1e;
            color: #dcdcdc;
            padding: 15px;
            border-radius: 6px;
            overflow-x: auto;
            font-family: Consolas, Monaco, monospace;
            font-size: 14px;
            margin: 15px 0;
        }
        code {
            font-family: Consolas, Monaco, monospace;
            background: #eef2f7;
            color: #c7254e;
            padding: 2px 6px;
            border-radius: 4px;
            font-size: 90%;
        }
        pre code {
            background: transparent;
            color: #dcdcdc;
            padding: 0;
        }
        .error-box {
            background: #f8d7da;
            border-left: 5px solid #e74c3c;
            padding: 15px;
            margin: 15px 0;
            border-radius: 0 6px 6px 0;
        }
        .success-box {
            background: #d4edda;
            border-left: 5px solid #2ecc71;
            padding: 15px;
            margin: 15px 0;
            border-radius: 0 6px 6px 0;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div class=&quot;container&quot;&gt;
    &lt;h1&gt;📚 ตำราปฏิบัติการฉบับสมบูรณ์: การสร้างโปรแกรมเดสก์ท็อป .EXE จากเว็บแอปม้าเหล็กเรดิโอ&lt;/h1&gt;
    &lt;p&gt;&lt;strong&gt;ผู้บันทึก/ผู้พัฒนา:&lt;/strong&gt; ลุงแจ่ม อารมณ์ดี&lt;br&gt;&lt;strong&gt;วัตถุประสงค์:&lt;/strong&gt; ใช้เป็นคู่มือมาตรฐาน (Standard Operating Procedure) อ้างอิงขั้นตอนการทำโปรเจกต์ ถอดบทเรียนจากข้อผิดพลาด เพื่อใช้ทำงานในอนาคตโดยห้ามข้ามขั้นตอน&lt;/p&gt;

    &lt;hr&gt;

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

    &lt;h2&gt;2. โครงสร้างไฟล์ทั้งหมดที่จำเป็นในโปรเจกต์&lt;/h2&gt;
    &lt;p&gt;การเตรียมไฟล์ใน GitHub Repository (เช่น &lt;code&gt;MalekRadio24Hrs&lt;/code&gt;) ต้องมีองค์ประกอบครบถ้วนดังนี้:&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;code&gt;index.html&lt;/code&gt; (หน้าตาแอปพลิเคชันและระบบเล่นเพลง)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;main.js&lt;/code&gt; (ไฟล์ควบคุมการเปิดหน้าต่างและวงจรชีวิตของแอป Electron)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;package.json&lt;/code&gt; (ไฟล์กำหนดค่าแพ็กเกจ ไลบรารี และเชื่อมโยงไอคอน)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;.github/workflows/build-exe.yml&lt;/code&gt; (ไฟล์คำสั่งรันระบบ GitHub Actions)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;icon.ico&lt;/code&gt; (ไฟล์ไอคอนรูปหูฟังประจำโปรแกรม)&lt;/li&gt;
    &lt;/ul&gt;

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

    &lt;h3&gt;ก. ไฟล์ `main.js` (Main Process ควบคุมหน้าต่าง)&lt;/h3&gt;
    &lt;pre&gt;&lt;code&gt;const { app, BrowserWindow } = require(&#39;electron&#39;);
const path = require(&#39;path&#39;);

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

  win.loadFile(&#39;index.html&#39;);
}

app.whenReady().then(() =&gt; {
  createWindow();

  app.on(&#39;activate&#39;, () =&gt; {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow();
    }
  });
});

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

    &lt;h3&gt;ข. ไฟล์ `package.json` (ตั้งค่าระบบและปิด Publish อัตโนมัติ)&lt;/h3&gt;
    &lt;pre&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;malek-radio-24hrs&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;description&quot;: &quot;Malek Radio 24Hrs Desktop App&quot;,
  &quot;main&quot;: &quot;main.js&quot;,
  &quot;scripts&quot;: {
    &quot;start&quot;: &quot;electron .&quot;,
    &quot;build&quot;: &quot;electron-builder --win --x64&quot;
  },
  &quot;build&quot;: {
    &quot;productName&quot;: &quot;Malek Radio 24Hrs&quot;,
    &quot;win&quot;: {
      &quot;icon&quot;: &quot;icon.ico&quot;
    },
    &quot;publish&quot;: null
  },
  &quot;devDependencies&quot;: {
    &quot;electron&quot;: &quot;^28.0.0&quot;,
    &quot;electron-builder&quot;: &quot;^24.6.0&quot;
  }
}&lt;/code&gt;&lt;/pre&gt;

    &lt;h3&gt;ค. ไฟล์ GitHub Actions Workflow (`.github/workflows/build-exe.yml`)&lt;/h3&gt;
    &lt;pre&gt;&lt;code&gt;name: Build Desktop App (.exe)

on:
  push:
    branches: [ &quot;main&quot;, &quot;master&quot; ]

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&lt;/code&gt;&lt;/pre&gt;

    &lt;hr&gt;

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

    &lt;div class=&quot;error-box&quot;&gt;
        &lt;h3&gt;❌ ข้อผิดพลาดที่ 1: ข้อจำกัดด้านขนาดความละเอียดไฟล์ไอคอน (Exit Code 1)&lt;/h3&gt;
        &lt;p&gt;&lt;strong&gt;อาการที่พบ:&lt;/strong&gt; ระบบ GitHub Actions แจ้งเตือนสถานะ Build ล้มเหลวในขั้นตอน &lt;code&gt;Build Electron App&lt;/code&gt; พร้อมข้อความแสดงความผิดพลาด:&lt;/p&gt;
        &lt;pre&gt;&lt;code&gt;✖ image ...\icon.ico must be at least 256x256
Error: Process completed with exit code 1.&lt;/code&gt;&lt;/pre&gt;
        &lt;p&gt;&lt;strong&gt;สาเหตุ:&lt;/strong&gt; ไฟล์ภาพไอคอน `.ico` ที่อัปโหลดขึ้นไปมีความละเอียดพิกเซลต่ำกว่ามาตรฐาน 256x256 พิกเซล ซึ่งเป็นข้อกำหนดบังคับของไลบรารี &lt;code&gt;electron-builder&lt;/code&gt;&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;วิธีแก้:&lt;/strong&gt; จัดเตรียมไฟล์รูปภาพไอคอนที่มีขนาดความละเอียดสูง (256x256 หรือ 512x512 พิกเซลขึ้นไป), ตรวจสอบชื่อไฟล์ให้สะกดเป็นพิมพ์เล็กทั้งหมดว่า &lt;strong&gt;&lt;code&gt;icon.ico&lt;/code&gt;&lt;/strong&gt; ให้ตรงกับที่ระบุใน &lt;code&gt;package.json&lt;/code&gt; แล้วอัปโหลดขึ้น GitHub ใหม่&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;error-box&quot;&gt;
        &lt;h3&gt;❌ ข้อผิดพลาดที่ 2: ปัญหาตั้งชื่อไฟล์ไอคอนไม่ตรงกับ Configuration&lt;/h3&gt;
        &lt;p&gt;&lt;strong&gt;อาการที่พบ:&lt;/strong&gt; ระบบหาไฟล์ไอคอนไม่พบเนื่องจากตั้งชื่อไฟล์ในเครื่องหรือตอนอัปโหลดเป็นชื่ออื่น (เช่น &lt;code&gt;favicon (1).ico&lt;/code&gt;)&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;วิธีแก้:&lt;/strong&gt; บังคับตั้งชื่อไฟล์ไอคอนให้เป็น &lt;strong&gt;&lt;code&gt;icon.ico&lt;/code&gt;&lt;/strong&gt; เสมอทุกครั้งก่อนนำเข้าโปรเจกต์ เพื่อป้องกันการMismatch ของตัวแปรใน &lt;code&gt;package.json&lt;/code&gt;&lt;/p&gt;
    &lt;/div&gt;

    &lt;hr&gt;

    &lt;h2&gt;5. ขั้นตอนการตรวจสอบผลลัพธ์และการดาวน์โหลดโปรแกรม&lt;/h2&gt;
    &lt;ol&gt;
        &lt;li&gt;เมื่อแก้ไขไฟล์ครบถ้วนและ Commit ขึ้น GitHub สำเร็จ ให้ไปที่แท็บ &lt;strong&gt;Actions&lt;/strong&gt; บนหน้าเว็บไซต์ GitHub&lt;/li&gt;
        &lt;li&gt;รอจนกระทั่งกระบวนการทำงานเปลี่ยนสถานเป็น&lt;strong&gt;เครื่องหมายถูกสีเขียว (✅)&lt;/strong&gt;&lt;/li&gt;
        &lt;li&gt;คลิกเข้าไปที่ชื่องานล่าสุด เลื่อนลงมาด้านล่างสุดในหัวข้อ &lt;strong&gt;Artifacts&lt;/strong&gt;&lt;/li&gt;
        &lt;li&gt;คลิกดาวน์โหลดไฟล์ชื่อ &lt;strong&gt;&lt;code&gt;Windows-EXE-App&lt;/code&gt;&lt;/strong&gt; (ซึ่งเป็นไฟล์บีบอัด `.zip` บรรจุดโปรแกรมติดตั้ง `.EXE` เอาไว้)&lt;/li&gt;
        &lt;li&gt;แตกไฟล์ออกมา จะได้โปรแกรมเดสก์ท็อปพร้อมไอคอนหูฟังสีแดงสวยงาม พร้อมใช้งานและเผยแพร่&lt;/li&gt;
    &lt;/ol&gt;

    &lt;div class=&quot;success-box&quot;&gt;
        &lt;p&gt;&lt;strong&gt;💡 บทสรุปสำหรับยึดถือปฏิบัติ:&lt;/strong&gt; การแยกส่วนฐานข้อมูลเพลงให้อยู่บน Archive.org และใช้หน้าเว็บเป็นตัวกลางดึงข้อมูลสด ช่วยให้ไม่ต้องทำการ Build ไฟล์ `.EXE` ใหม่ทุกครั้งที่มีการเพิ่มเพลง ช่วยประหยัดเวลาและทำให้ระบบมีความคล่องตัวสูงสุด&lt;/p&gt;
    &lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/5970758076439346006/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/5970758076439346006' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5970758076439346006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5970758076439346006'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/11/exe.html' title='ตำราปฏิบัติการ: การแปลงเว็บแอปพลิเคชัน ม้าเหล็กเรดิโอ เป็นไฟล์ .EXE '/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-8267708664064955537</id><published>2026-11-01T08:16:30.122+07:00</published><updated>2026-11-01T08:16:30.122+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="การสร้างโปรแกรมเดสก์ท็อป .EXE ."/><title type='text'>คู่มือฉบับสมบูรณ์: การสร้างโปรแกรมเดสก์ท็อป .EXE จาก Electron และ GitHub Actions</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;คู่มือฉบับสมบูรณ์: การสร้างโปรแกรมเดสก์ท็อป .EXE จาก Electron และ GitHub Actions&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Segoe UI&#39;, Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.7;
            color: #2c3e50;
            max-width: 900px;
            margin: 0 auto;
            padding: 30px;
            background-color: #f4f6f9;
        }
        .container {
            background: #fff;
            padding: 40px;
            border-radius: 10px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.05);
        }
        h1 {
            color: #1a252f;
            border-bottom: 3px solid #3498db;
            padding-bottom: 15px;
            margin-bottom: 30px;
        }
        h2 {
            color: #2980b9;
            margin-top: 35px;
            border-left: 5px solid #3498db;
            padding-left: 10px;
        }
        h3 {
            color: #34495e;
            margin-top: 20px;
        }
        ol, ul {
            padding-left: 25px;
        }
        li {
            margin-bottom: 10px;
        }
        pre {
            background: #1e1e1e;
            color: #dcdcdc;
            padding: 15px;
            border-radius: 6px;
            overflow-x: auto;
            font-family: Consolas, Monaco, monospace;
            font-size: 14px;
            margin: 15px 0;
        }
        code {
            font-family: Consolas, Monaco, monospace;
            background: #eef2f7;
            color: #c7254e;
            padding: 2px 6px;
            border-radius: 4px;
            font-size: 90%;
        }
        pre code {
            background: transparent;
            color: #dcdcdc;
            padding: 0;
        }
        .warning-box {
            background: #fff3cd;
            border-left: 5px solid #f39c12;
            padding: 15px;
            margin: 15px 0;
            border-radius: 0 6px 6px 0;
        }
        .error-box {
            background: #f8d7da;
            border-left: 5px solid #e74c3c;
            padding: 15px;
            margin: 15px 0;
            border-radius: 0 6px 6px 0;
        }
        .success-box {
            background: #d4edda;
            border-left: 5px solid #2ecc71;
            padding: 15px;
            margin: 15px 0;
            border-radius: 0 6px 6px 0;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div class=&quot;container&quot;&gt;
    &lt;h1&gt;📚 คู่มือและบันทึกขั้นตอนการพัฒนาโปรแกรม Electron App เป็นไฟล์ .EXE ผ่าน GitHub Actions&lt;/h1&gt;
    &lt;p&gt;&lt;strong&gt;ผู้บันทึก/ผู้พัฒนา:&lt;/strong&gt; ลุงแจ่ม อารมณ์ดี&lt;br&gt;&lt;strong&gt;วัตถุประสงค์:&lt;/strong&gt; ใช้เป็นคู่มือมาตรฐาน (Standard Operating Procedure) สำหรับสร้างและแก้ไขปัญหาการคอมไพล์โปรแกรมเดสก์ท็อปจากศูนย์ (Clean Slate)&lt;/p&gt;

    &lt;hr&gt;

    &lt;h2&gt;1. โครงสร้างพื้นฐานของโปรเจกต์ (Project Structure)&lt;/h2&gt;
    &lt;p&gt;โปรเจกต์ประกอบด้วยไฟล์สำคัญหลักๆ ดังนี้:&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;code&gt;index.html&lt;/code&gt;: หน้าตาอินเทอร์เฟซและการทำงานของแอปพลิเคชัน (Frontend)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;main.js&lt;/code&gt;: ไฟล์ควบคุมกระบวนการหลักของระบบ Electron (Backend / Main Process)&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;package.json&lt;/code&gt;: ไฟล์กำหนดค่า ติดตั้งไลบรารี และสคริปต์คำสั่งการทำงาน&lt;/li&gt;
        &lt;li&gt;&lt;code&gt;.github/workflows/build-exe.yml&lt;/code&gt;: ไฟล์ระบบอัตโนมัติ (GitHub Actions) สำหรับ Build ไฟล์ `.exe` บนคลาวด์&lt;/li&gt;
    &lt;/ul&gt;

    &lt;h2&gt;2. รายละเอียดโค้ดในแต่ละไฟล์หลัก&lt;/h2&gt;

    &lt;h3&gt;ก. ไฟล์ `main.js` (เวอร์ชันที่ถูกต้องสมบูรณ์)&lt;/h3&gt;
    &lt;pre&gt;&lt;code&gt;const { app, BrowserWindow } = require(&#39;electron&#39;);
const path = require(&#39;path&#39;);

function createWindow() {
  const win = new BrowserWindow({
    width: 450,
    height: 850,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false
    },
    autoHideMenuBar: true,
    title: &quot;TEXAS INTECH Audio Rack&quot;
  });

  win.loadFile(&#39;index.html&#39;);
}

app.whenReady().then(() =&gt; {
  createWindow();

  app.on(&#39;activate&#39;, () =&gt; {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow();
    }
  });
});

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

    &lt;h3&gt;ข. ไฟล์ `package.json` (ตั้งค่าระบบและปิด Publish อัตโนมัติ)&lt;/h3&gt;
    &lt;pre&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;texas-intech-audio-rack&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;description&quot;: &quot;Pro 7-Layer Audio Rack Desktop App&quot;,
  &quot;main&quot;: &quot;main.js&quot;,
  &quot;scripts&quot;: {
    &quot;start&quot;: &quot;electron .&quot;,
    &quot;build&quot;: &quot;electron-builder --win --x64&quot;
  },
  &quot;build&quot;: {
    &quot;win&quot;: {
      &quot;icon&quot;: &quot;icon.ico&quot;
    },
    &quot;publish&quot;: null
  },
  &quot;devDependencies&quot;: {
    &quot;electron&quot;: &quot;^28.0.0&quot;,
    &quot;electron-builder&quot;: &quot;^24.6.0&quot;
  }
}&lt;/code&gt;&lt;/pre&gt;

    &lt;h3&gt;ค. ไฟล์ GitHub Actions Workflow (`.github/workflows/build-exe.yml`)&lt;/h3&gt;
    &lt;pre&gt;&lt;code&gt;name: Build Desktop App (.exe)

on:
  push:
    branches: [ &quot;main&quot;, &quot;master&quot; ]

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&lt;/code&gt;&lt;/pre&gt;

    &lt;hr&gt;

    &lt;h2&gt;3. บันทึกปัญหาที่พบทั้งหมดและแนวทางแก้ไข (Troubleshooting Log)&lt;/h2&gt;

    &lt;div class=&quot;error-box&quot;&gt;
        &lt;h3&gt;❌ ปัญหาที่ 1: JavaScript Error ใน Main Process (คำสั่ง `app.stop()`)&lt;/h3&gt;
        &lt;p&gt;&lt;strong&gt;อาการ:&lt;/strong&gt; เมื่อติดตั้งโปรแกรมลงในเครื่อง และกดปิดโปรแกรม จะมีหน้าต่าง Error เด้งขึ้นมาแจ้งว่า &lt;code&gt;TypeError: app.stop is not a function&lt;/code&gt;[cite: 4]&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;สาเหตุ:&lt;/strong&gt; ในไลบรารีของ Electron ไม่มีฟังก์ชันคำสั่งชื่อ &lt;code&gt;app.stop()&lt;/code&gt;&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;วิธีแก้:&lt;/strong&gt; เข้าไปแก้ไขในไฟล์ &lt;code&gt;main.js&lt;/code&gt; เปลี่ยนจากคำสั่ง &lt;code&gt;app.stop();&lt;/code&gt; เป็น &lt;strong&gt;&lt;code&gt;app.quit();&lt;/code&gt;&lt;/strong&gt; ให้ถูกต้อง&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;error-box&quot;&gt;
        &lt;h3&gt;❌ ปัญหาที่ 2: GitHub Actions Build Fail ด้วย Exit Code 1 (Missing GitHub Token)&lt;/h3&gt;
        &lt;p&gt;&lt;strong&gt;อาการ:&lt;/strong&gt; ไปตรวจสอบในแท็บ Actions บน GitHub แล้วพบสถานะ Failure ขัดข้องที่ขั้นตอนการ Build พร้อมฟ้องว่า &lt;code&gt;GitHub Personal Access Token is not set, neither programmatically, nor using env &quot;GH_TOKEN&quot;&lt;/code&gt;[cite: 2, 7]&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;สาเหตุ:&lt;/strong&gt; &lt;code&gt;electron-builder&lt;/code&gt; พยายามอัปโหลดไฟล์ขึ้น GitHub Releases โดยอัตโนมัติ แต่ไม่มีสิทธิ์ Token ยืนยันตัวตน&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;วิธีแก้:&lt;/strong&gt; เพิ่มค่าการตั้งค่า &lt;code&gt;&quot;publish&quot;: null&lt;/code&gt; ไว้ภายในบล็อก &lt;code&gt;&quot;build&quot;&lt;/code&gt; ของไฟล์ &lt;code&gt;package.json&lt;/code&gt; เพื่อปิดการเผยแพร่อัตโนมัติและเก็บไฟล์ติดตั้งไว้ใน Local Artifacts ของ Actions แทน&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;error-box&quot;&gt;
        &lt;h3&gt;❌ ปัญหาที่ 3: ติดตั้งทับไม่ได้ ฟ้องว่าโปรแกรมไม่สามารถปิดได้ (Cannot be closed)&lt;/h3&gt;
        &lt;p&gt;&lt;strong&gt;อาการ:&lt;/strong&gt; ตอนรันตัวติดตั้ง `.exe` ตัวใหม่ทับลงเครื่อง มีหน้าต่างแจ้งเตือนว่าโปรแกรมกำลังทำงานอยู่และไม่สามารถปิดได้อัตโนมัติ[cite: 6]&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;สาเหตุ:&lt;/strong&gt; มีกระบวนการ (Process) ของแอปพลิเคชันเวอร์ชันเก่าค้างรันอยู่เบื้องหลังใน Windows&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;วิธีแก้:&lt;/strong&gt; 
            1. กดปุ่ม &lt;code&gt;Ctrl + Shift + Esc&lt;/code&gt; เพื่อเปิด &lt;strong&gt;Task Manager&lt;/strong&gt;&lt;br&gt;
            2. กดขยายหน้าต่างด้วยปุ่ม &lt;strong&gt;More details&lt;/strong&gt;&lt;br&gt;
            3. ค้นหาชื่อโปรแกรมหรือ Electron แล้วคลิกขวาเลือก &lt;strong&gt;End task&lt;/strong&gt; เพื่อบังคับปิดให้สนิท&lt;br&gt;
            4. ดับเบิลคลิกไฟล์ติดตั้งใหม่อีกครั้ง
        &lt;/p&gt;
    &lt;/div&gt;

    &lt;hr&gt;

    &lt;h2&gt;4. วิธีการใส่ไอคอนรูปเฉพาะตัวให้กับแอปพลิเคชัน (.ICO)&lt;/h2&gt;
    &lt;ol&gt;
        &lt;li&gt;เตรียมไฟล์รูปภาพแปลงเป็นนามสกุล &lt;code&gt;.ico&lt;/code&gt; ขนาดแนะนำ 256x256 พิกเซล และตั้งชื่อไฟล์ว่า &lt;code&gt;icon.ico&lt;/code&gt;&lt;/li&gt;
        &lt;li&gt;อัปโหลดไฟล์ &lt;code&gt;icon.ico&lt;/code&gt; ขึ้นไปไว้ที่หน้าหลักของโปรเจกต์บน GitHub (ผ่านปุ่ม Add file -&gt; Upload files)&lt;/li&gt;
        &lt;li&gt;กำหนดค่าเชื่อมโยงไอคอนในไฟล์ &lt;code&gt;package.json&lt;/code&gt; ภายใต้หมวด &lt;code&gt;&quot;build&quot;&lt;/code&gt; ดังนี้:
            &lt;pre&gt;&lt;code&gt;&quot;build&quot;: {
  &quot;win&quot;: {
    &quot;icon&quot;: &quot;icon.ico&quot;
  },
  &quot;publish&quot;: null
}&lt;/code&gt;&lt;/pre&gt;
        &lt;/li&gt;
        &lt;li&gt;ทำการ Commit บันทึกไฟล์ และรอ GitHub Actions ทำการคอมไพล์โปรแกรมใหม่ เพียงเท่านี้ไฟล์ติดตั้ง `.exe` และไอคอนแอปพลิเคชันก็จะเปลี่ยนเป็นรูปที่คุณต้องการทันที&lt;/li&gt;
    &lt;/ol&gt;

    &lt;div class=&quot;success-box&quot;&gt;
        &lt;p&gt;&lt;strong&gt;💡 ข้อสังเกต:&lt;/strong&gt; หากไม่มีการเปลี่ยนแปลงไฟล์รูปภาพ &lt;code&gt;icon.ico&lt;/code&gt; ในโปรเจกต์ ระบบจะดึงไอคอนเดิมมาใช้งานอย่างสม่ำเสมอทุกครั้งที่มีการ Build ใหม่ครับ&lt;/p&gt;
    &lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/8267708664064955537/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/8267708664064955537' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/8267708664064955537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/8267708664064955537'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/11/exe-electron-github-actions.html' title='คู่มือฉบับสมบูรณ์: การสร้างโปรแกรมเดสก์ท็อป .EXE จาก Electron และ GitHub Actions'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-5850685863112182624</id><published>2026-11-01T08:09:35.084+07:00</published><updated>2026-11-01T08:09:35.084+07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="เปลี่ยนไอคอนแอปพลิเคชัน."/><title type='text'>วิธีเปลี่ยนไอคอนแอปพลิเคชัน Electron เป็นรูปของคุณเอง</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;วิธีเปลี่ยนไอคอนแอปพลิเคชัน Electron เป็นรูปของคุณเอง&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Segoe UI&#39;, Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.6;
            color: #333;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f9f9f9;
        }
        .article-container {
            background: #fff;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
        }
        h2 {
            color: #2c3e50;
            border-bottom: 2px solid #eee;
            padding-bottom: 10px;
        }
        ol {
            padding-left: 20px;
        }
        li {
            margin-bottom: 15px;
        }
        pre {
            background: #1e1e1e;
            color: #dcdcdc;
            padding: 15px;
            border-radius: 6px;
            overflow-x: auto;
            font-family: Consolas, Monaco, monospace;
            font-size: 14px;
        }
        .highlight {
            color: #4ec9b0;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div class=&quot;article-container&quot;&gt;
    &lt;h2&gt;การเปลี่ยนรูปไอคอนแอปพลิเคชัน Electron ให้เป็นรูปของเราเอง&lt;/h2&gt;
    &lt;p&gt;การปรับแต่งไอคอนของโปรแกรมเดสก์ท็อปให้เป็นเอกลักษณ์เฉพาะตัว สามารถทำตามขั้นตอนง่ายๆ ทีละขั้นตอนได้เลยครับ:&lt;/p&gt;

    &lt;ol&gt;
        &lt;li&gt;
            &lt;strong&gt;เตรียมไฟล์ไอคอน:&lt;/strong&gt;
            &lt;ul&gt;
                &lt;li&gt;เตรียมรูปภาพที่ต้องการ (แนะนำให้แปลงเป็นไฟล์นามสกุล &lt;code&gt;.ico&lt;/code&gt; ขนาด 256x256 พิกเซล) แล้วตั้งชื่อไฟล์ว่า &lt;code&gt;icon.ico&lt;/code&gt;&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;
            &lt;strong&gt;อัปโหลดไฟล์ไอคอนขึ้น GitHub:&lt;/strong&gt;
            &lt;ul&gt;
                &lt;li&gt;ไปที่หน้าโปรเจกต์ของคุณบน GitHub กดปุ่ม &lt;strong&gt;Add file&lt;/strong&gt; -&gt; &lt;strong&gt;Upload files&lt;/strong&gt; แล้วลากไฟล์ &lt;code&gt;icon.ico&lt;/code&gt; ของคุณไปวาง จากนั้นกดปุ่ม &lt;strong&gt;Commit changes&lt;/strong&gt; เพื่อบันทึก&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/li&gt;
        &lt;li&gt;
            &lt;strong&gt;แก้ไขไฟล์ package.json:&lt;/strong&gt;
            &lt;ul&gt;
                &lt;li&gt;คลิกเข้าไปที่ไฟล์ &lt;code&gt;package.json&lt;/code&gt; บน GitHub แล้วกดปุ่มรูปดินสอ (&lt;strong&gt;Edit this file&lt;/strong&gt;) เพื่อแก้ไข&lt;/li&gt;
                &lt;li&gt;เพิ่มคำสั่งระบุไฟล์ไอคอนเข้าไปในส่วนของ &lt;code&gt;&quot;build&quot;&lt;/code&gt; ให้มีโครงสร้างตามตัวอย่างด้านล่างนี้ครับ:&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/li&gt;
    &lt;/ol&gt;

    &lt;h3&gt;ตัวอย่างคำสั่งการตั้งค่าในไฟล์ &lt;code&gt;package.json&lt;/code&gt;&lt;/h3&gt;
&lt;pre&gt;{
  &quot;name&quot;: &quot;my-electron-app&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;description&quot;: &quot;Desktop App&quot;,
  &quot;main&quot;: &quot;main.js&quot;,
  &quot;scripts&quot;: {
    &quot;start&quot;: &quot;electron .&quot;,
    &quot;build&quot;: &quot;electron-builder --win --x64&quot;
  },
  &lt;span class=&quot;highlight&quot;&gt;&quot;build&quot;: {&lt;/span&gt;
    &lt;span class=&quot;highlight&quot;&gt;&quot;win&quot;: {&lt;/span&gt;
      &lt;span class=&quot;highlight&quot;&gt;&quot;icon&quot;: &quot;icon.ico&quot;&lt;/span&gt;
    &lt;span class=&quot;highlight&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;highlight&quot;&gt;&quot;publish&quot;: null&lt;/span&gt;
  &lt;span class=&quot;highlight&quot;&gt;},&lt;/span&gt;
  &quot;devDependencies&quot;: {
    &quot;electron&quot;: &quot;^28.0.0&quot;,
    &quot;electron-builder&quot;: &quot;^24.6.0&quot;
  }
}&lt;/pre&gt;

    &lt;p&gt;เมื่อแก้ไขเสร็จเรียบร้อยแล้ว ให้กด &lt;strong&gt;Commit changes&lt;/strong&gt; และรอ GitHub Actions ทำการ Build ไฟล์ &lt;code&gt;.exe&lt;/code&gt; ใหม่ เพียงเท่านี้แอปพลิเคชันของคุณก็จะแสดงไอคอนใหม่ตามต้องการแล้วครับ!&lt;/p&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/5850685863112182624/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/5850685863112182624' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5850685863112182624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5850685863112182624'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/11/electron.html' title='วิธีเปลี่ยนไอคอนแอปพลิเคชัน Electron เป็นรูปของคุณเอง'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-5768637979181110535</id><published>2026-10-26T14:02:02.657+07:00</published><updated>2026-10-27T10:46:11.495+07:00</updated><title type='text'>📻 ม้าเหล็กเรดิโอ 24 ชั่วโมง (Malek Radio 24 Hrs)</title><content type='html'>&lt;div style=&quot;background: #fff8f0; border: 2px solid #ff7b00; border-radius: 12px; padding: 20px; font-family: sans-serif; max-width: 600px; margin: 20px auto; box-shadow: 0 4px 10px rgba(0,0,0,0.1);&quot;&gt;
  &lt;h3 style=&quot;color: #d35400; margin-top: 0; font-size: 22px;&quot;&gt;📻 ม้าเหล็กเรดิโอ 24 ชั่วโมง (Malek Radio 24 Hrs)&lt;/h3&gt;
  &lt;p style=&quot;color: #333; line-height: 1.6; font-size: 15px;&quot;&gt;
    สถานีเพลงและวิทยุออนไลน์สตรีมสดตลอด 24 ชั่วโมง ฟังเพลินต่อเนื่องด้วยระบบเล่นเพลงอัตโนมัติ (Auto-Next) และระบบซิงค์เพลงจากคลังออนไลน์ พัฒนาโดย &lt;b&gt;ลุงแจ่ม อารมณ์ดี (สวนราชินี กำแพงเพชร)&lt;/b&gt; อนุญาตให้ทุกท่านใช้งานและรับฟังเป็นฟรีแวร์ตลอดไป!
  &lt;/p&gt;
  &lt;div style=&quot;text-align: center; margin-top: 20px;&quot;&gt;
    &lt;a href=&quot;https://aromdee2012-lgtm.github.io/MalekRadio24Hrs/&quot; target=&quot;_blank&quot; style=&quot;background-color: #ff7b00; color: white; padding: 12px 25px; text-decoration: none; border-radius: 25px; font-weight: bold; font-size: 16px; box-shadow: 0 2px 5px rgba(0,0,0,0.2); display: inline-block;&quot;&gt;
      ▶ คลิกฟังม้าเหล็กเรดิโอออนไลน์
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;




&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;ม้าเหล็กเรดิโอ โดยลุงแจ่ม อารมณ์ดี 24 ชั่วโมง&lt;/title&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&gt;
    &lt;style&gt;
        @import url(&#39;https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&amp;display=swap&#39;);
        * { font-family: &#39;Prompt&#39;, sans-serif; }
        .gradient-bg { background: linear-gradient(135deg, #FFF9F3 0%, #FFF2E6 100%); }
        .dark .gradient-bg { background: linear-gradient(135deg, #18181B 0%, #09090B 100%); }
        .pulse-ring { animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
        @keyframes pulse-ring {
            0% { transform: scale(0.95); opacity: 0.8; }
            50% { transform: scale(1.05); opacity: 0.4; }
            100% { transform: scale(0.95); opacity: 0.8; }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;gradient-bg min-h-screen text-slate-800 dark:text-slate-100 transition-colors duration-300&quot;&gt;

    &lt;div class=&quot;max-w-4xl mx-auto px-4 py-6 flex flex-col min-h-screen&quot;&gt;
        
        &lt;!-- Header Bar --&gt;
        &lt;header class=&quot;flex items-center justify-between mb-6&quot;&gt;
            &lt;div class=&quot;flex items-center gap-2&quot;&gt;
                &lt;div class=&quot;w-10 h-10 rounded-full bg-amber-500 text-white flex items-center justify-center font-bold text-lg shadow-md&quot;&gt;
                    ลจ
                &lt;/div&gt;
                &lt;div&gt;
                    &lt;h3 class=&quot;font-bold text-slate-800 dark:text-white leading-tight&quot;&gt;ลุงแจ่ม อารมณ์ดี&lt;/h3&gt;
                    &lt;p class=&quot;text-xs text-amber-600 dark:text-amber-400&quot;&gt;สวนราชินี กำแพงเพชร&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;div class=&quot;flex items-center gap-2&quot;&gt;
                &lt;button onclick=&quot;testSpeaker()&quot; class=&quot;px-3.5 py-2 rounded-xl bg-amber-100 text-amber-800 dark:bg-amber-950/50 dark:text-amber-300 text-xs sm:text-sm font-semibold hover:bg-amber-200 transition-all flex items-center gap-1.5&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-volume-high&quot;&gt;&lt;/i&gt; ทดสอบลำโพง
                &lt;/button&gt;
                &lt;button onclick=&quot;toggleDarkMode()&quot; class=&quot;p-2.5 rounded-xl bg-white dark:bg-zinc-800 shadow-sm border border-slate-100 dark:border-zinc-700 text-slate-600 dark:text-slate-300&quot;&gt;
                    &lt;i id=&quot;themeIcon&quot; class=&quot;fa-solid fa-moon text-lg&quot;&gt;&lt;/i&gt;
                &lt;/button&gt;
            &lt;/div&gt;
        &lt;/header&gt;

        &lt;!-- Main Title --&gt;
        &lt;div class=&quot;text-center mb-6&quot;&gt;
            &lt;div class=&quot;inline-flex items-center gap-2 px-3 py-1 rounded-full bg-amber-500/10 text-amber-600 dark:text-amber-400 text-xs font-medium mb-2&quot;&gt;
                &lt;span class=&quot;w-2 h-2 rounded-full bg-amber-500 animate-ping&quot;&gt;&lt;/span&gt; Live Global Radio
            &lt;/div&gt;
            &lt;h1 class=&quot;text-2xl sm:text-3xl font-bold text-slate-900 dark:text-white tracking-tight mb-1&quot;&gt;
               ม้าเหล็กเรดิโอ &lt;span class=&quot;text-amber-500&quot;&gt;24 ชั่วโมง&lt;/span&gt;
            &lt;/h1&gt;
            &lt;p class=&quot;text-sm text-slate-500 dark:text-slate-400&quot;&gt;สตรีมสดสถานีวิทยุยอดนิยมจากทั่วทุกมุมโลก ฟังเพลินตลอดวัน&lt;/p&gt;
        &lt;/div&gt;

        &lt;!-- Radio Player Card --&gt;
        &lt;main class=&quot;bg-white dark:bg-zinc-900 rounded-3xl shadow-xl border border-slate-100 dark:border-zinc-800 p-4 sm:p-8 mb-8 flex-1 flex flex-col justify-between&quot;&gt;
            
            &lt;!-- แถบ 3 ลิงก์หลัก --&gt;
            &lt;div class=&quot;grid grid-cols-1 md:grid-cols-3 gap-3 mb-6&quot;&gt;
                &lt;a href=&quot;https://shopee.co.th/jam_aromdee?categoryId=100636&amp;entryPoint=ShopByPDP&amp;itemId=25385928215&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; 
                   class=&quot;flex items-center justify-center gap-3 p-3.5 rounded-2xl bg-orange-500 hover:bg-orange-600 text-white font-bold transition-all shadow-md active:scale-95 border-b-4 border-orange-700&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-bag-shopping text-2xl&quot;&gt;&lt;/i&gt;
                    &lt;div class=&quot;text-left&quot;&gt;
                        &lt;div class=&quot;text-xs opacity-90 leading-tight&quot;&gt;ร้านค้าออนไลน์&lt;/div&gt;
                        &lt;div class=&quot;text-base sm:text-lg&quot;&gt;Shopee ลุงแจ่ม&lt;/div&gt;
                    &lt;/div&gt;
                &lt;/a&gt;

                &lt;a href=&quot;https://aromdeeman.blogspot.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; 
                   class=&quot;flex items-center justify-center gap-3 p-3.5 rounded-2xl bg-amber-500 hover:bg-amber-600 text-white font-bold transition-all shadow-md active:scale-95 border-b-4 border-amber-700&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-blog text-2xl&quot;&gt;&lt;/i&gt;
                    &lt;div class=&quot;text-left&quot;&gt;
                        &lt;div class=&quot;text-xs opacity-90 leading-tight&quot;&gt;เยี่ยมชมผลงาน&lt;/div&gt;
                        &lt;div class=&quot;text-base sm:text-lg&quot;&gt;เว็บบล็อกของเรา&lt;/div&gt;
                    &lt;/div&gt;
                &lt;/a&gt;

                &lt;a href=&quot;https://www.facebook.com/jam.aromdee&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; 
                   class=&quot;flex items-center justify-center gap-3 p-3.5 rounded-2xl bg-blue-600 hover:bg-blue-700 text-white font-bold transition-all shadow-md active:scale-95 border-b-4 border-blue-800&quot;&gt;
                    &lt;i class=&quot;fa-brands fa-facebook-f text-2xl&quot;&gt;&lt;/i&gt;
                    &lt;div class=&quot;text-left&quot;&gt;
                        &lt;div class=&quot;text-xs opacity-90 leading-tight&quot;&gt;พูดคุยทักทาย&lt;/div&gt;
                        &lt;div class=&quot;text-base sm:text-lg&quot;&gt;Facebook ลุงแจ่ม&lt;/div&gt;
                    &lt;/div&gt;
                &lt;/a&gt;
            &lt;/div&gt;

            &lt;!-- Player Screen --&gt;
            &lt;div class=&quot;flex flex-col items-center justify-center py-4&quot;&gt;
                &lt;div class=&quot;relative mb-6&quot;&gt;
                    &lt;div id=&quot;visualizer&quot; class=&quot;w-36 h-36 sm:w-44 sm:h-44 rounded-full bg-gradient-to-tr from-amber-400 to-orange-500 flex items-center justify-center shadow-lg shadow-orange-500/20 text-white text-5xl sm:text-6xl pulse-ring&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-headphones&quot;&gt;&lt;/i&gt;
                    &lt;/div&gt;
                    &lt;div id=&quot;liveBadge&quot; class=&quot;absolute bottom-2 right-2 bg-red-500 text-white text-[10px] font-bold px-2.5 py-0.5 rounded-full uppercase tracking-wider border-2 border-white dark:border-zinc-900 flex items-center gap-1 shadow-sm&quot;&gt;
                        &lt;span class=&quot;w-1.5 h-1.5 rounded-full bg-white animate-pulse&quot;&gt;&lt;/span&gt; Live
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;h2 id=&quot;stationTitle&quot; class=&quot;text-lg sm:text-xl font-bold text-center text-slate-800 dark:text-slate-100 mb-1 px-4 line-clamp-1&quot;&gt;
                    กำลังโหลดสถานีวิทยุ...
                &lt;/h2&gt;
                &lt;p id=&quot;stationSub&quot; class=&quot;text-xs sm:text-sm text-slate-400 dark:text-slate-500 mb-4 text-center&quot;&gt;
                    เชื่อมต่อฐานข้อมูลสตรีมมิ่งสากล
                &lt;/p&gt;

                &lt;!-- Audio Main Controls --&gt;
                &lt;div id=&quot;mainControls&quot; class=&quot;flex flex-col items-center gap-4 w-full&quot;&gt;
                    
                    &lt;!-- Progress Bar --&gt;
                    &lt;div id=&quot;progressContainer&quot; class=&quot;w-full max-w-md hidden px-4&quot;&gt;
                        &lt;div class=&quot;flex justify-between text-[11px] text-slate-400 mb-1 font-mono&quot;&gt;
                            &lt;span id=&quot;currentTime&quot;&gt;00:00&lt;/span&gt;
                            &lt;span id=&quot;durationTime&quot;&gt;00:00&lt;/span&gt;
                        &lt;/div&gt;
                        &lt;div onclick=&quot;seekAudio(event)&quot; class=&quot;w-full h-2 bg-slate-200 dark:bg-zinc-700 rounded-full cursor-pointer overflow-hidden&quot;&gt;
                            &lt;div id=&quot;progressBar&quot; class=&quot;h-full bg-amber-500 rounded-full w-0 transition-all duration-200&quot;&gt;&lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;!-- Media Buttons --&gt;
                    &lt;div class=&quot;flex items-center gap-4&quot;&gt;
                        &lt;!-- ปุ่มสุ่มเพลง (เปิดใช้งานเป็นค่าเริ่มต้นให้แล้ว) --&gt;
                        &lt;button id=&quot;shuffleBtn&quot; onclick=&quot;toggleShuffle()&quot; class=&quot;p-2.5 rounded-full text-amber-500 transition-colors text-sm font-bold&quot; title=&quot;สุ่มเพลง&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-shuffle&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;

                        &lt;button onclick=&quot;playPrevSong()&quot; class=&quot;w-10 h-10 rounded-full bg-slate-100 dark:bg-zinc-800 hover:bg-slate-200 dark:hover:bg-zinc-700 text-slate-700 dark:text-slate-200 flex items-center justify-center transition-transform active:scale-95 shadow-sm&quot; title=&quot;เพลงก่อนหน้า&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-backward-step&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;

                        &lt;button id=&quot;playBtn&quot; onclick=&quot;togglePlay()&quot; class=&quot;w-16 h-16 sm:w-20 sm:h-20 rounded-full bg-gradient-to-r from-amber-500 to-orange-500 hover:from-amber-600 hover:to-orange-600 text-white text-2xl sm:text-3xl flex items-center justify-center shadow-xl shadow-orange-500/30 transition-transform active:scale-95&quot;&gt;
                            &lt;i id=&quot;playIcon&quot; class=&quot;fa-solid fa-play ml-1&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;

                        &lt;button onclick=&quot;playNextSong()&quot; class=&quot;w-10 h-10 rounded-full bg-slate-100 dark:bg-zinc-800 hover:bg-slate-200 dark:hover:bg-zinc-700 text-slate-700 dark:text-slate-200 flex items-center justify-center transition-transform active:scale-95 shadow-sm&quot; title=&quot;เพลงถัดไป&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-forward-step&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;

                        &lt;button id=&quot;loopBtn&quot; onclick=&quot;toggleLoop()&quot; class=&quot;p-2.5 rounded-full text-amber-500 transition-colors text-sm font-bold&quot; title=&quot;เล่นวนลูปทั้งลิสต์&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-repeat&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;
                    &lt;/div&gt;

                    &lt;!-- Volume Slider --&gt;
                    &lt;div class=&quot;w-full max-w-xs flex items-center gap-3 px-4&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-volume-low text-slate-400 text-xs&quot;&gt;&lt;/i&gt;
                        &lt;input type=&quot;range&quot; id=&quot;volumeSlider&quot; min=&quot;0&quot; max=&quot;1&quot; step=&quot;0.01&quot; value=&quot;0.8&quot; oninput=&quot;setVolume(this.value)&quot; class=&quot;w-full h-1.5 bg-slate-200 dark:bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-amber-500&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-volume-high text-slate-400 text-xs&quot;&gt;&lt;/i&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Country Filter Tabs &amp; Playlist Controls --&gt;
            &lt;div class=&quot;mt-6 pt-6 border-t border-slate-100 dark:border-zinc-800&quot;&gt;
                &lt;div class=&quot;flex items-center justify-between mb-3&quot;&gt;
                    &lt;span class=&quot;text-xs font-semibold text-slate-500 dark:text-slate-400 flex items-center gap-1.5&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-globe text-amber-500&quot;&gt;&lt;/i&gt; เลือกสถานี / หมวดหมู่:
                    &lt;/span&gt;
                    &lt;button onclick=&quot;fetchStations()&quot; class=&quot;text-xs text-amber-600 hover:underline flex items-center gap-1&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-rotate-right text-[10px]&quot;&gt;&lt;/i&gt; รีเฟรช
                    &lt;/button&gt;
                &lt;/div&gt;

                &lt;div class=&quot;flex flex-wrap items-center gap-2 mb-4&quot;&gt;
                    &lt;button onclick=&quot;playArchivePlaylist()&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-bold bg-emerald-600 text-white shadow-sm hover:bg-emerald-700 flex items-center gap-1&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-compact-disc&quot;&gt;&lt;/i&gt; 📻 สถานีม้าเหล็กเรดิโอ  
                    &lt;/button&gt;
                    
                    &lt;button onclick=&quot;changeCountry(&#39;TH&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇹🇭 ไทย&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;US&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-amber-500 text-white shadow-sm&quot;&gt;🇺🇸 USA&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;GB&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇬🇧 UK&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;JP&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇯🇵 Japan&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;KR&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇰🇷 Korea&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;CN&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇨🇳 China&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;FR&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇫🇷 France&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;IT&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇮🇹 Italy&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;DE&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇩🇪 Germany&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;CA&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇨🇦 Canada&lt;/button&gt;
                    &lt;button onclick=&quot;changeTag(&#39;jazz&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🎷 Jazz&lt;/button&gt;
                    &lt;button onclick=&quot;changeTag(&#39;classical&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🎻 Classical&lt;/button&gt;
                &lt;/div&gt;

                &lt;!-- Station List --&gt;
                &lt;div id=&quot;stationList&quot; class=&quot;grid grid-cols-1 sm:grid-cols-2 gap-2 max-h-48 overflow-y-auto pr-1&quot;&gt;
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/main&gt;

        &lt;footer class=&quot;text-center text-xs text-slate-400 py-4&quot;&gt;
            สถานีเพลงทั่วโลก สวนราชินี โดยลุงแจ่ม อารมณ์ดี 24 ชั่วโมง © 2026
        &lt;/footer&gt;
    &lt;/div&gt;

    &lt;!-- Audio Element หลัก --&gt;
    &lt;audio id=&quot;radioAudio&quot; preload=&quot;auto&quot;&gt;&lt;/audio&gt;

    &lt;script&gt;
        const audio = document.getElementById(&#39;radioAudio&#39;);
        let currentCountry = &#39;US&#39;;
        let currentTag = &#39;&#39;;
        let stations = [];
        let isPlaying = false;
        let isPlaylistMode = false;
        let currentSongIndex = 0;
        let isShuffle = true; // เปิดโหมดสุ่มเป็นค่าเริ่มต้นทันที!
        let isLoop = true;
        let myPlaylist = [];

        const ARCHIVE_IDENTIFIER = &quot;005_20261024&quot;; 

        async function loadArchivePlaylist() {
            try {
                const res = await fetch(`https://archive.org/metadata/${ARCHIVE_IDENTIFIER}`);
                const data = await res.json();
                
                const mp3Files = data.files.filter(f =&gt; f.name.toLowerCase().endsWith(&#39;.mp3&#39;));
                
                myPlaylist = mp3Files.map(f =&gt; {
                    let cleanName = decodeURIComponent(f.name).replace(&#39;.mp3&#39;, &#39;&#39;);
                    return {
                        name: cleanName,
                        url: `https://archive.org/download/${ARCHIVE_IDENTIFIER}/${f.name}`
                    };
                });
                
                console.log(&quot;Loaded songs:&quot;, myPlaylist.length);
            } catch (err) {
                console.log(&quot;Failed to load archive playlist&quot;, err);
            }
        }

        audio.addEventListener(&#39;ended&#39;, () =&gt; {
            if (isPlaylistMode) {
                playNextSong();
            }
        });

        audio.addEventListener(&#39;error&#39;, () =&gt; {
            if (isPlaylistMode) {
                setTimeout(() =&gt; playNextSong(), 1000);
            }
        });

        audio.addEventListener(&#39;timeupdate&#39;, () =&gt; {
            if (isPlaylistMode &amp;&amp; audio.duration) {
                const progress = (audio.currentTime / audio.duration) * 100;
                document.getElementById(&#39;progressBar&#39;).style.width = `${progress}%`;
                document.getElementById(&#39;currentTime&#39;).innerText = formatTime(audio.currentTime);
                document.getElementById(&#39;durationTime&#39;).innerText = formatTime(audio.duration);
            }
        });

        function formatTime(seconds) {
            if (isNaN(seconds)) return &#39;00:00&#39;;
            const min = Math.floor(seconds / 60);
            const sec = Math.floor(seconds % 60);
            return `${min &lt; 10 ? &#39;0&#39; : &#39;&#39;}${min}:${sec &lt; 10 ? &#39;0&#39; : &#39;&#39;}${sec}`;
        }

        function seekAudio(e) {
            if (isPlaylistMode &amp;&amp; audio.duration) {
                const rect = e.currentTarget.getBoundingClientRect();
                const pos = (e.clientX - rect.left) / rect.width;
                audio.currentTime = pos * audio.duration;
            }
        }

        function toggleDarkMode() {
            document.documentElement.classList.toggle(&#39;dark&#39;);
            const icon = document.getElementById(&#39;themeIcon&#39;);
            if (document.documentElement.classList.contains(&#39;dark&#39;)) {
                icon.className = &#39;fa-solid fa-sun text-amber-400 text-lg&#39;;
            } else {
                icon.className = &#39;fa-solid fa-moon text-lg&#39;;
            }
        }

        async function fetchStations() {
            isPlaylistMode = false;
            document.getElementById(&#39;progressContainer&#39;).classList.add(&#39;hidden&#39;);

            const listContainer = document.getElementById(&#39;stationList&#39;);
            listContainer.innerHTML = &#39;&lt;div class=&quot;col-span-2 text-center text-xs text-slate-400 py-4&quot;&gt;&lt;i class=&quot;fa-solid fa-circle-notch fa-spin&quot;&gt;&lt;/i&gt; กำลังโหลดสถานีวิทยุสด...&lt;/div&gt;&#39;;

            let apiUrl = `https://de1.api.radio-browser.info/json/stations/bycountrycodeexact/${currentCountry}?limit=20&amp;order=clickcount&amp;reverse=true&amp;hidebroken=true&amp;is_https=true`;
            if (currentTag) {
                apiUrl = `https://de1.api.radio-browser.info/json/stations/bytag/${currentTag}?limit=20&amp;order=clickcount&amp;reverse=true&amp;hidebroken=true&amp;is_https=true`;
            }

            try {
                const response = await fetch(apiUrl);
                stations = await response.json();

                if (stations.length === 0) {
                    listContainer.innerHTML = &#39;&lt;div class=&quot;col-span-2 text-center text-xs text-slate-400 py-4&quot;&gt;ไม่พบสถานีออนไลน์ในขณะนี้&lt;/div&gt;&#39;;
                    return;
                }

                renderStations();
                selectStation(0);
            } catch (err) {
                listContainer.innerHTML = &#39;&lt;div class=&quot;col-span-2 text-center text-xs text-red-400 py-4&quot;&gt;เกิดข้อผิดพลาดในการดึงข้อมูลสัญญาณ&lt;/div&gt;&#39;;
            }
        }

        function renderStations() {
            const listContainer = document.getElementById(&#39;stationList&#39;);
            listContainer.innerHTML = &#39;&#39;;

            stations.forEach((st, idx) =&gt; {
                const btn = document.createElement(&#39;button&#39;);
                btn.className = &#39;flex items-center justify-between p-2.5 rounded-xl border border-slate-100 dark:border-zinc-800 bg-slate-50 dark:bg-zinc-800/50 hover:bg-amber-50 dark:hover:bg-zinc-800 text-left transition-all text-xs&#39;;
                btn.onclick = () =&gt; selectStation(idx);
                btn.innerHTML = `
                    &lt;div class=&quot;truncate pr-2&quot;&gt;
                        &lt;div class=&quot;font-bold text-slate-700 dark:text-slate-200 truncate&quot;&gt;${st.name}&lt;/div&gt;
                        &lt;div class=&quot;text-[10px] text-slate-400&quot;&gt;${st.tags ? st.tags.split(&#39;,&#39;).slice(0, 2).join(&#39;, &#39;) : &#39;Music&#39;}&lt;/div&gt;
                    &lt;/div&gt;
                    &lt;i class=&quot;fa-solid fa-circle-play text-amber-500 text-sm opacity-70&quot;&gt;&lt;/i&gt;
                `;
                listContainer.appendChild(btn);
            });
        }

        function selectStation(index) {
            isPlaylistMode = false;
            audio.pause();
            isPlaying = false;
            document.getElementById(&#39;playIcon&#39;).className = &#39;fa-solid fa-play ml-1&#39;;
            document.getElementById(&#39;progressContainer&#39;).classList.add(&#39;hidden&#39;);

            const st = stations[index];
            if (!st) return;

            document.getElementById(&#39;stationTitle&#39;).innerText = st.name;
            document.getElementById(&#39;stationSub&#39;).innerText = `${st.country || &#39;&#39;} • ${st.codec || &#39;MP3&#39;} ${st.bitrate ? st.bitrate + &#39;kbps&#39; : &#39;&#39;}`;
            
            audio.src = st.url_resolved || st.url;
        }

        async function playArchivePlaylist() {
            isPlaylistMode = true;
            document.getElementById(&#39;progressContainer&#39;).classList.remove(&#39;hidden&#39;);
            
            if(myPlaylist.length === 0) {
                const listContainer = document.getElementById(&#39;stationList&#39;);
                listContainer.innerHTML = &#39;&lt;div class=&quot;col-span-2 text-center text-xs text-slate-400 py-4&quot;&gt;&lt;i class=&quot;fa-solid fa-circle-notch fa-spin&quot;&gt;&lt;/i&gt; กำลังดึงรายชื่อเพลงอัตโนมัติ...&lt;/div&gt;&#39;;
                await loadArchivePlaylist();
            }

            renderPlaylistUI();
            if(myPlaylist.length &gt; 0) {
                // ถ้าเปิดโหมดสุ่มไว้ จะสุ่มเลือกเพลงแรกทันที ไม่ให้ซ้ำซากจำเจ!
                if (isShuffle) {
                    currentSongIndex = Math.floor(Math.random() * myPlaylist.length);
                } else {
                    currentSongIndex = 0;
                }
                playSong(currentSongIndex);
            }
        }

        function renderPlaylistUI() {
            const listContainer = document.getElementById(&#39;stationList&#39;);
            listContainer.innerHTML = &#39;&#39;;

            myPlaylist.forEach((item, idx) =&gt; {
                const isActive = (isPlaylistMode &amp;&amp; currentSongIndex === idx);
                const activeClass = isActive ? &#39;border-amber-400 bg-amber-100/60 dark:bg-amber-950/40&#39; : &#39;border-emerald-200 bg-emerald-50/50 hover:bg-emerald-100 dark:bg-emerald-950/20&#39;;

                const div = document.createElement(&#39;div&#39;);
                div.className = `flex items-center justify-between p-2.5 rounded-xl border ${activeClass} text-left transition-all text-xs`;
                div.innerHTML = `
                    &lt;div class=&quot;truncate pr-2 cursor-pointer flex-1&quot; onclick=&quot;playSong(${idx})&quot;&gt;
                        &lt;div class=&quot;font-bold text-emerald-900 dark:text-emerald-300 truncate&quot;&gt;
                            &lt;i class=&quot;${isActive ? &#39;fa-solid fa-compact-disc fa-spin text-amber-600&#39; : &#39;fa-solid fa-music&#39;} mr-1&quot;&gt;&lt;/i&gt; ${item.name}
                        &lt;/div&gt;
                        &lt;div class=&quot;text-[10px] text-emerald-600 dark:text-emerald-400&quot;&gt;สถานีสวนราชินี • Auto Sync&lt;/div&gt;
                    &lt;/div&gt;
                    &lt;i class=&quot;fa-solid fa-circle-play text-emerald-600 text-base cursor-pointer hover:scale-110&quot; onclick=&quot;playSong(${idx})&quot; title=&quot;เล่นเพลง&quot;&gt;&lt;/i&gt;
                `;
                listContainer.appendChild(div);
            });
        }

        function playSong(idx) {
            if (myPlaylist.length === 0) return;
            
            isPlaylistMode = true;
            currentSongIndex = idx;
            const song = myPlaylist[idx];
            if(!song) return;

            document.getElementById(&#39;stationTitle&#39;).innerText = song.name;
            document.getElementById(&#39;stationSub&#39;).innerText = `เพลงที่ ${idx + 1} จากทั้งหมด ${myPlaylist.length} เพลง • สวนราชินี`;

            renderPlaylistUI();

            audio.src = song.url;
            audio.play().then(() =&gt; {
                isPlaying = true;
                document.getElementById(&#39;playIcon&#39;).className = &#39;fa-solid fa-pause&#39;;
            }).catch(err =&gt; {
                console.log(&quot;Stream play error&quot;);
            });
        }

        function playNextSong() {
            if (!isPlaylistMode || myPlaylist.length === 0) return;

            if (isShuffle) {
                // สุ่มเพลงถัดไปแบบไม่ซ้ำตัวเดิม (ถ้าเป็นไปได้) หรือสุ่มจากทั้งหมด
                let nextIdx;
                do {
                    nextIdx = Math.floor(Math.random() * myPlaylist.length);
                } while (nextIdx === currentSongIndex &amp;&amp; myPlaylist.length &gt; 1);
                currentSongIndex = nextIdx;
            } else {
                currentSongIndex++;
                if (currentSongIndex &gt;= myPlaylist.length) {
                    if (isLoop) currentSongIndex = 0;
                    else return;
                }
            }
            playSong(currentSongIndex);
        }

        function playPrevSong() {
            if (!isPlaylistMode || myPlaylist.length === 0) return;

            if (isShuffle) {
                currentSongIndex = Math.floor(Math.random() * myPlaylist.length);
            } else {
                currentSongIndex--;
                if (currentSongIndex &lt; 0) {
                    currentSongIndex = myPlaylist.length - 1;
                }
            }
            playSong(currentSongIndex);
        }

        function toggleShuffle() {
            isShuffle = !isShuffle;
            const btn = document.getElementById(&#39;shuffleBtn&#39;);
            btn.className = isShuffle ? &#39;p-2.5 rounded-full text-amber-500 transition-colors text-sm font-bold&#39; : &#39;p-2.5 rounded-full text-slate-400 hover:text-amber-500 transition-colors text-sm&#39;;
        }

        function toggleLoop() {
            isLoop = !isLoop;
            const btn = document.getElementById(&#39;loopBtn&#39;);
            btn.className = isLoop ? &#39;p-2.5 rounded-full text-amber-500 transition-colors text-sm font-bold&#39; : &#39;p-2.5 rounded-full text-slate-400 hover:text-amber-500 transition-colors text-sm&#39;;
        }

        function togglePlay() {
            const playIcon = document.getElementById(&#39;playIcon&#39;);
            if (isPlaying) {
                audio.pause();
                playIcon.className = &#39;fa-solid fa-play ml-1&#39;;
                isPlaying = false;
            } else {
                audio.play().then(() =&gt; {
                    playIcon.className = &#39;fa-solid fa-pause&#39;;
                    isPlaying = true;
                }).catch(err =&gt; {
                    alert(&#39;กรุณาเลือกสถานีวิทยุหรือกดเล่นสถานีสวนราชินีครับ&#39;);
                });
            }
        }

        function setVolume(val) { audio.volume = val; }

        function updateActiveButton(target) {
            document.querySelectorAll(&#39;.country-btn&#39;).forEach(btn =&gt; {
                btn.className = &#39;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&#39;;
            });
            if (target) {
                target.className = &#39;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-amber-500 text-white shadow-sm&#39;;
            }
        }

        function changeCountry(code) {
            currentCountry = code;
            currentTag = &#39;&#39;;
            updateActiveButton(event.target);
            fetchStations();
        }

        function changeTag(tag) {
            currentTag = tag;
            updateActiveButton(event.target);
            fetchStations();
        }

        function testSpeaker() {
            const ctx = new (window.AudioContext || window.webkitAudioContext)();
            const osc = ctx.createOscillator();
            const gain = ctx.createGain();
            osc.connect(gain);
            gain.connect(ctx.destination);
            osc.frequency.value = 440;
            gain.gain.value = 0.1;
            osc.start();
            setTimeout(() =&gt; osc.stop(), 500);
        }

        // โหลดลิสต์เพลงอัตโนมัติ และตั้งค่าให้สุ่มเล่นเพลงแรกทันทีเมื่อเข้าเว็บ!
        loadArchivePlaylist().then(() =&gt; {
            if (myPlaylist.length &gt; 0) {
                currentSongIndex = Math.floor(Math.random() * myPlaylist.length);
            }
        });
        fetchStations();
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/5768637979181110535/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/5768637979181110535' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5768637979181110535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5768637979181110535'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/24-malek-radio-24-hrs.html' title='📻 ม้าเหล็กเรดิโอ 24 ชั่วโมง (Malek Radio 24 Hrs)'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-2529661578205887223</id><published>2026-10-25T20:19:09.981+07:00</published><updated>2026-10-25T20:21:28.759+07:00</updated><title type='text'>โปรแกรมฟังเพลงสไตล์ Winamp ยุค 90s สุดเก๋า</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot;&gt;
    &lt;title&gt;Droidamp - Winamp Style Mobile Player&lt;/title&gt;
    &lt;!-- Tailwind CSS CDN --&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;!-- Google Fonts --&gt;
    &lt;link href=&quot;https://fonts.googleapis.com/css2?family=VT323&amp;family=Share+Tech+Mono&amp;family=Sarabun:wght@400;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;!-- FontAwesome Icons --&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&gt;

    &lt;script&gt;
        tailwind.config = {
            theme: {
                extend: {
                    fontFamily: {
                        lcd: [&#39;VT323&#39;, &#39;monospace&#39;],
                        mono: [&#39;Share Tech Mono&#39;, &#39;monospace&#39;],
                        sans: [&#39;Sarabun&#39;, &#39;sans-serif&#39;],
                    },
                    colors: {
                        amp: {
                            bg: &#39;var(--bg-color)&#39;,
                            panel: &#39;var(--panel-color)&#39;,
                            border: &#39;var(--border-color)&#39;,
                            accent: &#39;var(--accent-color)&#39;,
                            lcd: &#39;var(--lcd-bg)&#39;,
                            lcdText: &#39;var(--lcd-text)&#39;,
                            glow: &#39;var(--glow-color)&#39;,
                        }
                    }
                }
            }
        }
    &lt;/script&gt;

    &lt;style&gt;
        /* Theme Configurations */
        :root {
            --bg-color: #0c0d10;
            --panel-color: #1a1d24;
            --border-color: #383e4c;
            --accent-color: #00ff66;
            --lcd-bg: #041006;
            --lcd-text: #00ff66;
            --glow-color: rgba(0, 255, 102, 0.4);
            --btn-bg: linear-gradient(180deg, #3d4452 0%, #21252e 100%);
            --btn-active: linear-gradient(180deg, #121418 0%, #2e333f 100%);
        }

        [data-theme=&quot;cyberpunk&quot;] {
            --bg-color: #0a0017;
            --panel-color: #16002c;
            --border-color: #ff007f;
            --accent-color: #00f0ff;
            --lcd-bg: #050010;
            --lcd-text: #ff007f;
            --glow-color: rgba(255, 0, 127, 0.5);
            --btn-bg: linear-gradient(180deg, #3d0066 0%, #1a0033 100%);
            --btn-active: linear-gradient(180deg, #100020 0%, #5c0099 100%);
        }

        [data-theme=&quot;amber&quot;] {
            --bg-color: #120a00;
            --panel-color: #241400;
            --border-color: #5c3500;
            --accent-color: #ffb000;
            --lcd-bg: #0d0600;
            --lcd-text: #ffb000;
            --glow-color: rgba(255, 176, 0, 0.4);
            --btn-bg: linear-gradient(180deg, #4d2d00 0%, #291800 100%);
            --btn-active: linear-gradient(180deg, #180e00 0%, #663d00 100%);
        }

        [data-theme=&quot;gold&quot;] {
            --bg-color: #14120c;
            --panel-color: #282418;
            --border-color: #d4af37;
            --accent-color: #ffd700;
            --lcd-bg: #100f08;
            --lcd-text: #ffd700;
            --glow-color: rgba(255, 215, 0, 0.4);
            --btn-bg: linear-gradient(180deg, #594d22 0%, #302910 100%);
            --btn-active: linear-gradient(180deg, #1f1b0a 0%, #75652d 100%);
        }

        /* Scrollbars */
        ::-webkit-scrollbar {
            width: 6px;
            height: 6px;
        }
        ::-webkit-scrollbar-track {
            background: var(--lcd-bg);
        }
        ::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 3px;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: var(--accent-color);
        }

        /* Retro Bevel Borders */
        .winamp-border {
            border: 2px solid;
            border-color: #4f5869 #15181e #15181e #4f5869;
            box-shadow: inset 1px 1px 0px #6e798e, inset -1px -1px 0px #0a0b0e;
        }

        .winamp-inset {
            border: 2px solid;
            border-color: #0a0b0e #4f5869 #4f5869 #0a0b0e;
            box-shadow: inset 1px 1px 2px #000;
        }

        .winamp-btn {
            background: var(--btn-bg);
            border: 1px solid #5a6375;
            box-shadow: inset 1px 1px 0px #79859c, inset -1px -1px 0px #111318;
            color: #e5e7eb;
            touch-action: manipulation;
        }

        .winamp-btn:active, .winamp-btn.active {
            background: var(--btn-active);
            box-shadow: inset 1px 1px 2px #000;
            color: var(--accent-color);
            transform: translateY(1px);
        }

        /* Custom Drag &amp; Drop Overlay */
        .drag-over {
            border: 3px dashed var(--accent-color) !important;
            background: rgba(0, 255, 102, 0.1) !important;
        }

        /* Range Sliders for Volume/Seek */
        input[type=range] {
            -webkit-appearance: none;
            background: transparent;
        }
        input[type=range]:focus {
            outline: none;
        }
        input[type=range]::-webkit-slider-runnable-track {
            width: 100%;
            height: 6px;
            cursor: pointer;
            background: #000;
            border: 1px solid var(--border-color);
            border-radius: 2px;
        }
        input[type=range]::-webkit-slider-thumb {
            height: 18px;
            width: 12px;
            border-radius: 2px;
            background: linear-gradient(180deg, #9ca3af 0%, #374151 100%);
            border: 1px solid #d1d5db;
            cursor: pointer;
            -webkit-appearance: none;
            margin-top: -6px;
            box-shadow: 0 0 3px #000;
        }

        /* CUSTOM TOUCH EQUALIZER SLIDER TRACK */
        .eq-track {
            position: relative;
            width: 100%;
            height: 140px;
            background: #050a06;
            border: 1px solid var(--border-color);
            border-radius: 4px;
            touch-action: none;
            cursor: pointer;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .eq-track::before {
            content: &#39;&#39;;
            position: absolute;
            top: 50%;
            left: 0;
            right: 0;
            height: 1px;
            background: rgba(255, 255, 255, 0.2);
            pointer-events: none;
        }

        .eq-fill {
            position: absolute;
            bottom: 50%;
            width: 4px;
            background: var(--accent-color);
            border-radius: 2px;
            pointer-events: none;
            box-shadow: 0 0 4px var(--glow-color);
        }

        .eq-thumb {
            position: absolute;
            width: 24px;
            height: 14px;
            left: 50%;
            transform: translate(-50%, -50%);
            background: linear-gradient(180deg, #9ca3af 0%, #1f2937 100%);
            border: 1px solid #e5e7eb;
            border-radius: 3px;
            box-shadow: 0 1px 3px rgba(0,0,0,0.8);
            pointer-events: none;
            z-index: 10;
        }
        .eq-thumb::after {
            content: &#39;&#39;;
            position: absolute;
            top: 50%;
            left: 20%;
            right: 20%;
            height: 2px;
            background: var(--accent-color);
            transform: translateY(-50%);
        }

        /* Marquee Text Animation */
        .marquee-container {
            overflow: hidden;
            white-space: nowrap;
        }
        .marquee-text {
            display: inline-block;
            animation: marquee 14s linear infinite;
        }
        @keyframes marquee {
            0% { transform: translateX(100%); }
            100% { transform: translateX(-100%); }
        }

        .glow-text {
            text-shadow: 0 0 8px var(--glow-color);
        }

        /* CRT Overlay Effect */
        .crt-overlay {
            background: linear-gradient(
                rgba(18, 16, 16, 0) 50%, 
                rgba(0, 0, 0, 0.2) 50%
            ), linear-gradient(
                90deg,
                rgba(255, 0, 0, 0.02),
                rgba(0, 255, 0, 0.01),
                rgba(0, 0, 255, 0.02)
            );
            background-size: 100% 3px, 6px 100%;
            pointer-events: none;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-amp-bg text-gray-100 font-sans min-h-screen flex flex-col items-center justify-start p-2 sm:p-4 select-none transition-colors duration-300&quot;
      id=&quot;drop-zone&quot; ondragover=&quot;handleDragOver(event)&quot; ondragleave=&quot;handleDragLeave(event)&quot; ondrop=&quot;handleDrop(event)&quot;&gt;

    &lt;div id=&quot;drag-prompt&quot; class=&quot;fixed inset-0 bg-black/80 backdrop-blur-sm z-50 flex-col items-center justify-center border-4 border-dashed border-amp-accent text-amp-accent hidden&quot;&gt;
        &lt;i class=&quot;fa-solid fa-file-audio text-6xl mb-3 animate-bounce&quot;&gt;&lt;/i&gt;
        &lt;p class=&quot;text-xl font-bold font-sans&quot;&gt;ปล่อยไฟล์เพลงตรงนี้เพื่อเล่นทันที!&lt;/p&gt;
        &lt;p class=&quot;text-sm font-mono opacity-80&quot;&gt;(Drop MP3/WAV files here to play)&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;w-full max-w-md bg-amp-panel border-2 border-amp-border rounded-xl shadow-2xl overflow-hidden flex flex-col relative winamp-border&quot;&gt;
        &lt;div class=&quot;crt-overlay absolute inset-0 z-30&quot;&gt;&lt;/div&gt;

        &lt;div class=&quot;bg-black/70 px-3 py-1.5 border-b border-amp-border flex justify-between items-center text-xs font-mono&quot;&gt;
            &lt;div class=&quot;flex items-center gap-1.5 text-amp-accent glow-text font-bold&quot;&gt;
                &lt;i class=&quot;fa-solid fa-bolt text-yellow-400&quot;&gt;&lt;/i&gt;
                &lt;span class=&quot;tracking-widest&quot;&gt;DROIDAMP MOBILE&lt;/span&gt;
            &lt;/div&gt;
            &lt;div class=&quot;flex items-center gap-2 text-[10px] text-gray-400&quot;&gt;
                &lt;span id=&quot;kbps-badge&quot; class=&quot;bg-gray-800 px-1.5 py-0.5 rounded border border-gray-700 text-amp-accent&quot;&gt;320 kbps&lt;/span&gt;
                &lt;span id=&quot;khz-badge&quot; class=&quot;bg-gray-800 px-1.5 py-0.5 rounded border border-gray-700&quot;&gt;44.1 kHz&lt;/span&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;div class=&quot;p-2 bg-black/40 border-b border-amp-border grid grid-cols-2 gap-2&quot;&gt;
            &lt;button onclick=&quot;triggerFileInput()&quot; class=&quot;winamp-btn py-2 px-3 rounded-lg text-xs font-bold text-amp-accent flex items-center justify-center gap-2 shadow-md&quot;&gt;
                &lt;i class=&quot;fa-solid fa-folder-plus text-base&quot;&gt;&lt;/i&gt;
                &lt;span&gt;➕ เพิ่มเพลงจากเครื่อง&lt;/span&gt;
            &lt;/button&gt;
            &lt;button onclick=&quot;openYouTubeSearchModal()&quot; class=&quot;winamp-btn py-2 px-3 rounded-lg text-xs font-bold text-red-400 flex items-center justify-center gap-2 shadow-md&quot;&gt;
                &lt;i class=&quot;fa-brands fa-youtube text-base text-red-500&quot;&gt;&lt;/i&gt;
                &lt;span&gt;ค้นหาเพลง YouTube&lt;/span&gt;
            &lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&quot;grid grid-cols-4 gap-1 p-1.5 bg-black/50 border-b border-amp-border text-xs font-mono&quot;&gt;
            &lt;button onclick=&quot;switchTab(&#39;player&#39;)&quot; id=&quot;tab-player&quot; class=&quot;winamp-btn active py-2 rounded text-center font-bold&quot;&gt;▶️ เครื่องเล่น&lt;/button&gt;
            &lt;button onclick=&quot;switchTab(&#39;playlist&#39;)&quot; id=&quot;tab-playlist&quot; class=&quot;winamp-btn py-2 rounded text-center font-bold&quot;&gt;📜 รายการเพลง&lt;/button&gt;
            &lt;button onclick=&quot;switchTab(&#39;eq&#39;)&quot; id=&quot;tab-eq&quot; class=&quot;winamp-btn py-2 rounded text-center font-bold&quot;&gt;🎚️ อีคิว EQ&lt;/button&gt;
            &lt;button onclick=&quot;switchTab(&#39;visualizer&#39;)&quot; id=&quot;tab-visualizer&quot; class=&quot;winamp-btn py-2 rounded text-center font-bold&quot;&gt;📊 วิชวลไอลเซอร์&lt;/button&gt;
        &lt;/div&gt;

        &lt;div class=&quot;p-2.5 sm:p-3 space-y-3 flex-1 overflow-y-auto&quot;&gt;
            &lt;div id=&quot;view-player&quot; class=&quot;space-y-3&quot;&gt;
                &lt;div class=&quot;bg-amp-lcd winamp-inset p-2.5 rounded-lg relative overflow-hidden flex flex-col justify-between h-36 border border-amp-border&quot;&gt;
                    &lt;div class=&quot;flex justify-between items-start gap-2&quot;&gt;
                        &lt;div class=&quot;flex flex-col&quot;&gt;
                            &lt;span class=&quot;text-[9px] uppercase tracking-wider text-gray-400 font-mono&quot;&gt;เวลาเพลง (Track Time)&lt;/span&gt;
                            &lt;div class=&quot;flex items-baseline gap-1&quot;&gt;
                                &lt;span id=&quot;time-display&quot; class=&quot;font-lcd text-4xl text-amp-lcdText glow-text leading-none tracking-wider&quot;&gt;00:00&lt;/span&gt;
                                &lt;span id=&quot;time-mode&quot; class=&quot;text-[10px] font-mono text-amp-accent cursor-pointer select-none&quot; onclick=&quot;toggleTimeMode()&quot;&gt;[ผ่านไป]&lt;/span&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;

                        &lt;div class=&quot;w-28 h-12 border border-gray-800 rounded bg-black/60 overflow-hidden relative cursor-pointer&quot; onclick=&quot;switchTab(&#39;visualizer&#39;)&quot; title=&quot;กดเพื่อขยายวิชวลไอลเซอร์&quot;&gt;
                            &lt;canvas id=&quot;mini-visualizer&quot; class=&quot;w-full h-full&quot;&gt;&lt;/canvas&gt;
                            &lt;span class=&quot;absolute bottom-0.5 right-1 text-[8px] font-mono text-gray-500 bg-black/70 px-0.5 rounded&quot;&gt;แตะเพื่อเปลี่ยน&lt;/span&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;flex items-center gap-2 bg-black/70 px-2 py-1.5 rounded border border-gray-900 font-mono text-xs text-amp-lcdText overflow-hidden&quot;&gt;
                        &lt;div id=&quot;album-art&quot; class=&quot;w-8 h-8 rounded bg-gray-800 border border-amp-border flex items-center justify-center shrink-0 text-amp-accent&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-music&quot;&gt;&lt;/i&gt;
                        &lt;/div&gt;
                        &lt;div class=&quot;marquee-container flex-1&quot;&gt;
                            &lt;span id=&quot;marquee-text&quot; class=&quot;marquee-text glow-text&quot;&gt;ยินดีต้อนรับสู่ Droidamp - เพิ่มเพลงจากเครื่องของคุณเพื่อเริ่มฟังเพลงได้เลย!&lt;/span&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;flex justify-between items-center text-[10px] font-mono text-gray-400 pt-1 border-t border-gray-900&quot;&gt;
                        &lt;div class=&quot;flex items-center gap-2&quot;&gt;
                            &lt;span class=&quot;text-amp-accent font-bold&quot;&gt;&lt;i class=&quot;fa-solid fa-compact-disc animate-spin-slow&quot;&gt;&lt;/i&gt; STEREO&lt;/span&gt;
                            &lt;span id=&quot;sample-rate-info&quot;&gt;44.1kHz&lt;/span&gt;
                        &lt;/div&gt;
                        &lt;div class=&quot;flex gap-1.5 text-amp-accent font-bold&quot;&gt;
                            &lt;span id=&quot;indicator-shuffle&quot; class=&quot;opacity-30&quot;&gt;SHUFFLE&lt;/span&gt; | 
                            &lt;span id=&quot;indicator-repeat&quot; class=&quot;opacity-30&quot;&gt;REPEAT&lt;/span&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&quot;space-y-1&quot;&gt;
                    &lt;div class=&quot;flex justify-between text-[11px] font-mono text-gray-300 px-1&quot;&gt;
                        &lt;span id=&quot;seek-current&quot;&gt;0:00&lt;/span&gt;
                        &lt;span id=&quot;seek-duration&quot;&gt;0:00&lt;/span&gt;
                    &lt;/div&gt;
                    &lt;input type=&quot;range&quot; id=&quot;seek-bar&quot; min=&quot;0&quot; max=&quot;100&quot; value=&quot;0&quot; class=&quot;w-full h-2 rounded cursor-pointer&quot; oninput=&quot;handleSeek(this.value)&quot;&gt;
                &lt;/div&gt;

                &lt;div class=&quot;grid grid-cols-5 gap-2 pt-1&quot;&gt;
                    &lt;button onclick=&quot;prevTrack()&quot; class=&quot;winamp-btn p-3 rounded-lg flex flex-col justify-center items-center text-lg active:bg-gray-700&quot; title=&quot;เพลงก่อนหน้า&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-backward-step&quot;&gt;&lt;/i&gt;
                    &lt;/button&gt;
                    &lt;button onclick=&quot;playAudio()&quot; class=&quot;winamp-btn p-3 rounded-lg flex flex-col justify-center items-center text-xl active:bg-gray-700 text-amp-accent font-bold&quot; title=&quot;เล่นเพลง&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-play&quot;&gt;&lt;/i&gt;
                    &lt;/button&gt;
                    &lt;button onclick=&quot;pauseAudio()&quot; class=&quot;winamp-btn p-3 rounded-lg flex flex-col justify-center items-center text-xl active:bg-gray-700 text-yellow-400&quot; title=&quot;หยุดชั่วคราว&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-pause&quot;&gt;&lt;/i&gt;
                    &lt;/button&gt;
                    &lt;button onclick=&quot;stopAudio()&quot; class=&quot;winamp-btn p-3 rounded-lg flex flex-col justify-center items-center text-xl active:bg-gray-700 text-red-400&quot; title=&quot;หยุดเล่น&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-stop&quot;&gt;&lt;/i&gt;
                    &lt;/button&gt;
                    &lt;button onclick=&quot;nextTrack()&quot; class=&quot;winamp-btn p-3 rounded-lg flex flex-col justify-center items-center text-lg active:bg-gray-700&quot; title=&quot;เพลงถัดไป&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-forward-step&quot;&gt;&lt;/i&gt;
                    &lt;/button&gt;
                &lt;/div&gt;

                &lt;div class=&quot;bg-black/30 p-3 rounded-xl border border-amp-border space-y-3&quot;&gt;
                    &lt;div class=&quot;grid grid-cols-2 gap-3 text-xs font-mono&quot;&gt;
                        &lt;div&gt;
                            &lt;div class=&quot;flex justify-between text-gray-300 text-[11px] mb-1&quot;&gt;
                                &lt;span&gt;🔊 ความดัง (VOL)&lt;/span&gt;
                                &lt;span id=&quot;vol-val&quot; class=&quot;text-amp-accent font-bold&quot;&gt;80%&lt;/span&gt;
                            &lt;/div&gt;
                            &lt;input type=&quot;range&quot; id=&quot;vol-slider&quot; min=&quot;0&quot; max=&quot;1&quot; step=&quot;0.01&quot; value=&quot;0.8&quot; class=&quot;w-full&quot; oninput=&quot;setVolume(this.value)&quot;&gt;
                        &lt;/div&gt;
                        &lt;div&gt;
                            &lt;div class=&quot;flex justify-between text-gray-300 text-[11px] mb-1&quot;&gt;
                                &lt;span&gt;🎧 สมดุล (BAL)&lt;/span&gt;
                                &lt;span id=&quot;bal-val&quot; class=&quot;text-amp-accent font-bold&quot;&gt;CENTER&lt;/span&gt;
                            &lt;/div&gt;
                            &lt;input type=&quot;range&quot; id=&quot;bal-slider&quot; min=&quot;-1&quot; max=&quot;1&quot; step=&quot;0.1&quot; value=&quot;0&quot; class=&quot;w-full&quot; oninput=&quot;setBalance(this.value)&quot;&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;flex justify-between gap-2 pt-1&quot;&gt;
                        &lt;button onclick=&quot;toggleShuffle()&quot; id=&quot;btn-shuffle&quot; class=&quot;winamp-btn flex-1 py-2 rounded-lg text-xs font-bold font-sans flex items-center justify-center gap-1.5&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-shuffle&quot;&gt;&lt;/i&gt; สุ่มเพลง
                        &lt;/button&gt;
                        &lt;button onclick=&quot;toggleRepeat()&quot; id=&quot;btn-repeat&quot; class=&quot;winamp-btn flex-1 py-2 rounded-lg text-xs font-bold font-sans flex items-center justify-center gap-1.5&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-repeat&quot;&gt;&lt;/i&gt; วนซ้ำ
                        &lt;/button&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;div id=&quot;view-playlist&quot; class=&quot;space-y-3 hidden&quot;&gt;
                &lt;div class=&quot;bg-black/40 p-2.5 rounded-xl border border-amp-border flex flex-col h-[360px]&quot;&gt;
                    &lt;div class=&quot;flex gap-2 mb-2&quot;&gt;
                        &lt;div class=&quot;relative flex-1&quot;&gt;
                            &lt;input type=&quot;text&quot; id=&quot;playlist-search&quot; onkeyup=&quot;filterPlaylist()&quot; placeholder=&quot;🔍 ค้นหาชื่อเพลงในรายการ...&quot; class=&quot;w-full bg-amp-lcd text-amp-accent font-sans text-xs px-2.5 py-2 rounded-lg border border-amp-border focus:outline-none&quot;&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;div id=&quot;playlist-drop-area&quot; onclick=&quot;triggerFileInput()&quot; class=&quot;mb-2 p-2 border border-dashed border-amp-accent/50 bg-black/40 rounded-lg text-center cursor-pointer hover:bg-black/60 transition-colors&quot;&gt;
                        &lt;span class=&quot;text-xs text-amp-accent font-bold&quot;&gt;&lt;i class=&quot;fa-solid fa-file-arrow-up&quot;&gt;&lt;/i&gt; กดตรงนี้เพื่อเลือกเพลง หรือ ลากไฟล์เพลงมาวางที่นี่&lt;/span&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;flex-1 overflow-y-auto bg-amp-lcd winamp-inset rounded-lg border border-amp-border&quot;&gt;
                        &lt;ul id=&quot;playlist-items&quot; class=&quot;divide-y divide-gray-900 font-mono text-xs&quot;&gt;
                        &lt;/ul&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;flex justify-between items-center pt-2 text-xs font-sans&quot;&gt;
                        &lt;span id=&quot;playlist-counter&quot; class=&quot;text-gray-400&quot;&gt;0 เพลง&lt;/span&gt;
                        &lt;button onclick=&quot;clearPlaylist()&quot; class=&quot;winamp-btn px-3 py-1 rounded-lg text-red-400 font-bold&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-trash-can&quot;&gt;&lt;/i&gt; ล้างรายการ
                        &lt;/button&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;div id=&quot;view-eq&quot; class=&quot;space-y-3 hidden&quot;&gt;
                &lt;div class=&quot;bg-black/40 p-3 rounded-xl border border-amp-border space-y-3&quot;&gt;
                    &lt;div class=&quot;flex justify-between items-center&quot;&gt;
                        &lt;div class=&quot;flex items-center gap-2&quot;&gt;
                            &lt;span class=&quot;font-sans text-xs font-bold text-amp-accent glow-text&quot;&gt;🎚️ อีคิวปรับแต่งเสียง 10 แบนด์&lt;/span&gt;
                            &lt;button onclick=&quot;toggleEQ()&quot; id=&quot;eq-power-btn&quot; class=&quot;winamp-btn px-3 py-1 rounded-md text-xs font-mono text-amp-accent font-bold active&quot;&gt;ON&lt;/button&gt;
                        &lt;/div&gt;
                        &lt;button onclick=&quot;resetEQFlat()&quot; class=&quot;winamp-btn px-2 py-1 rounded text-[11px] text-gray-300 font-mono&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-rotate-left&quot;&gt;&lt;/i&gt; รีเซ็ต
                        &lt;/button&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;space-y-1&quot;&gt;
                        &lt;span class=&quot;text-[10px] font-mono text-gray-400 block&quot;&gt;เลือกโหมดเสียงสำเร็จรูป (Presets):&lt;/span&gt;
                        &lt;div class=&quot;grid grid-cols-4 gap-1.5 font-sans text-xs&quot;&gt;
                            &lt;button onclick=&quot;applyEQPreset(&#39;flat&#39;)&quot; class=&quot;winamp-btn py-1.5 px-1 rounded text-center truncate font-semibold&quot; title=&quot;Flat Normal&quot;&gt;Normal/Flat&lt;/button&gt;
                            &lt;button onclick=&quot;applyEQPreset(&#39;bass&#39;)&quot; class=&quot;winamp-btn py-1.5 px-1 rounded text-center truncate font-semibold text-yellow-400&quot; title=&quot;Bass Boost&quot;&gt;Bass Boost&lt;/button&gt;
                            &lt;button onclick=&quot;applyEQPreset(&#39;pop&#39;)&quot; class=&quot;winamp-btn py-1.5 px-1 rounded text-center truncate font-semibold&quot; title=&quot;Pop&quot;&gt;Pop&lt;/button&gt;
                            &lt;button onclick=&quot;applyEQPreset(&#39;rock&#39;)&quot; class=&quot;winamp-btn py-1.5 px-1 rounded text-center truncate font-semibold&quot; title=&quot;Rock&quot;&gt;Rock&lt;/button&gt;
                            &lt;button onclick=&quot;applyEQPreset(&#39;jazz&#39;)&quot; class=&quot;winamp-btn py-1.5 px-1 rounded text-center truncate font-semibold&quot; title=&quot;Jazz&quot;&gt;Jazz&lt;/button&gt;
                            &lt;button onclick=&quot;applyEQPreset(&#39;dance&#39;)&quot; class=&quot;winamp-btn py-1.5 px-1 rounded text-center truncate font-semibold text-amp-accent&quot; title=&quot;Dance&quot;&gt;Dance&lt;/button&gt;
                            &lt;button onclick=&quot;applyEQPreset(&#39;vocal&#39;)&quot; class=&quot;winamp-btn py-1.5 px-1 rounded text-center truncate font-semibold&quot; title=&quot;Vocal&quot;&gt;Vocal&lt;/button&gt;
                            &lt;button onclick=&quot;applyEQPreset(&#39;techno&#39;)&quot; class=&quot;winamp-btn py-1.5 px-1 rounded text-center truncate font-semibold&quot; title=&quot;Techno&quot;&gt;Techno&lt;/button&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;bg-amp-lcd winamp-inset p-2 rounded-lg border border-amp-border&quot;&gt;
                        &lt;div class=&quot;flex justify-between text-[8px] font-mono text-gray-400 mb-1 px-1&quot;&gt;
                            &lt;span&gt;+12dB&lt;/span&gt;
                            &lt;span class=&quot;text-amp-accent&quot;&gt;0dB&lt;/span&gt;
                            &lt;span&gt;-12dB&lt;/span&gt;
                        &lt;/div&gt;

                        &lt;div class=&quot;grid grid-cols-10 gap-1 sm:gap-1.5&quot;&gt;
                            &lt;script&gt;
                                const frequencies = [&#39;31&#39;, &#39;62&#39;, &#39;125&#39;, &#39;250&#39;, &#39;500&#39;, &#39;1k&#39;, &#39;2k&#39;, &#39;4k&#39;, &#39;8k&#39;, &#39;16k&#39;];
                                frequencies.forEach((freq, idx) =&gt; {
                                    document.write(`
                                        &lt;div class=&quot;flex flex-col items-center gap-1&quot;&gt;
                                            &lt;span id=&quot;eq-val-${idx}&quot; class=&quot;text-[9px] font-mono text-amp-accent font-bold&quot;&gt;0&lt;/span&gt;
                                            &lt;div id=&quot;eq-track-${idx}&quot; class=&quot;eq-track&quot; 
                                                 onmousedown=&quot;startEQDrag(${idx}, event)&quot;
                                                 ontouchstart=&quot;startEQDrag(${idx}, event)&quot;&gt;
                                                &lt;div id=&quot;eq-fill-${idx}&quot; class=&quot;eq-fill&quot;&gt;&lt;/div&gt;
                                                &lt;div id=&quot;eq-thumb-${idx}&quot; class=&quot;eq-thumb&quot;&gt;&lt;/div&gt;
                                            &lt;/div&gt;
                                            &lt;span class=&quot;text-[9px] font-mono text-gray-300 font-bold&quot;&gt;${freq}&lt;/span&gt;
                                        &lt;/div&gt;
                                    `);
                                });
                            &lt;/script&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                &lt;/div&gt;
            &lt;/div&gt;

            &lt;div id=&quot;view-visualizer&quot; class=&quot;space-y-3 hidden&quot;&gt;
                &lt;div class=&quot;bg-black/40 p-3 rounded-xl border border-amp-border space-y-2&quot;&gt;
                    &lt;div class=&quot;flex justify-between items-center&quot;&gt;
                        &lt;span class=&quot;font-sans text-xs font-bold text-amp-accent glow-text&quot;&gt;วิชวลไลเซอร์กราฟิก&lt;/span&gt;
                        
                        &lt;select id=&quot;vis-mode&quot; onchange=&quot;setVisualizerMode(this.value)&quot; class=&quot;bg-gray-900 border border-amp-border text-amp-accent font-sans text-xs px-2 py-1 rounded-lg focus:outline-none&quot;&gt;
                            &lt;option value=&quot;bars&quot;&gt;แท่งสเปกตรัม (Classic Bars)&lt;/option&gt;
                            &lt;option value=&quot;wave&quot;&gt;คลื่นเสียง (Oscilloscope Wave)&lt;/option&gt;
                            &lt;option value=&quot;synthwave&quot;&gt;นีออนซินธ์เวฟ (Neon Synthwave)&lt;/option&gt;
                            &lt;option value=&quot;fire&quot;&gt;เปลวไฟ (Flame Spectrum)&lt;/option&gt;
                        &lt;/select&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;w-full h-60 bg-amp-lcd winamp-inset rounded-lg border border-amp-border overflow-hidden relative cursor-pointer&quot; onclick=&quot;cycleVisualizerMode()&quot; title=&quot;แตะเพื่อเปลี่ยนรูปแบบคลื่นเสียง&quot;&gt;
                        &lt;canvas id=&quot;full-visualizer&quot; class=&quot;w-full h-full block&quot;&gt;&lt;/canvas&gt;
                        &lt;span class=&quot;absolute bottom-1 right-2 text-[10px] font-mono text-gray-400 bg-black/60 px-1.5 py-0.5 rounded border border-gray-800&quot;&gt;แตะหน้าจอเพื่อเปลี่ยนโหมด&lt;/span&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/div&gt;

        &lt;div class=&quot;bg-black/80 p-2.5 border-t border-amp-border flex justify-between items-center text-xs font-sans&quot;&gt;
            &lt;div class=&quot;flex items-center gap-1.5&quot;&gt;
                &lt;i class=&quot;fa-solid fa-palette text-amp-accent&quot;&gt;&lt;/i&gt;
                &lt;span class=&quot;text-gray-400 text-[11px]&quot;&gt;สกิน:&lt;/span&gt;
                &lt;select id=&quot;theme-select&quot; onchange=&quot;changeTheme(this.value)&quot; class=&quot;bg-gray-900 text-gray-200 border border-amp-border rounded-lg text-xs px-2 py-1 focus:outline-none&quot;&gt;
                    &lt;option value=&quot;classic&quot;&gt;🟢 Classic Winamp&lt;/option&gt;
                    &lt;option value=&quot;cyberpunk&quot;&gt;🟣 Cyberpunk Neon&lt;/option&gt;
                    &lt;option value=&quot;amber&quot;&gt;🟠 Retro CRT Amber&lt;/option&gt;
                    &lt;option value=&quot;gold&quot;&gt;🟡 Gold Luxury&lt;/option&gt;
                &lt;/select&gt;
            &lt;/div&gt;

            &lt;div class=&quot;text-[10px] text-gray-400 font-mono&quot;&gt;
                &lt;span&gt;Droidamp v2.7 Touch EQ&lt;/span&gt;
            &lt;/div&gt;
        &lt;/div&gt;

    &lt;/div&gt;

    &lt;input type=&quot;file&quot; id=&quot;file-input&quot; accept=&quot;audio/*&quot; multiple class=&quot;hidden&quot; onchange=&quot;handleFileSelect(event)&quot;&gt;

    &lt;div id=&quot;youtube-modal&quot; class=&quot;fixed inset-0 bg-black/80 backdrop-blur-sm z-50 flex items-center justify-center p-4 hidden&quot;&gt;
        &lt;div class=&quot;bg-amp-panel border-2 border-amp-border w-full max-w-sm rounded-xl p-4 space-y-3 winamp-border&quot;&gt;
            &lt;div class=&quot;flex justify-between items-center border-b border-amp-border pb-2&quot;&gt;
                &lt;span class=&quot;font-bold text-sm text-red-400 flex items-center gap-2&quot;&gt;
                    &lt;i class=&quot;fa-brands fa-youtube&quot;&gt;&lt;/i&gt; ค้นหาเพลง YouTube
                &lt;/span&gt;
                &lt;button onclick=&quot;closeYouTubeSearchModal()&quot; class=&quot;text-gray-400 hover:text-white&quot;&gt;&lt;i class=&quot;fa-solid fa-xmark text-lg&quot;&gt;&lt;/i&gt;&lt;/button&gt;
            &lt;/div&gt;
            &lt;p class=&quot;text-xs text-gray-300&quot;&gt;พิมพ์ชื่อเพลงเพื่อค้นหาบน YouTube โดยตรง:&lt;/p&gt;
            &lt;div class=&quot;flex gap-2&quot;&gt;
                &lt;input type=&quot;text&quot; id=&quot;yt-search-input&quot; placeholder=&quot;พิมพ์ชื่อเพลง เช่น เพลงยุค 90...&quot; class=&quot;flex-1 bg-black text-amp-accent font-sans text-xs px-2.5 py-2 rounded-lg border border-amp-border focus:outline-none&quot;&gt;
                &lt;button onclick=&quot;executeYouTubeSearch()&quot; class=&quot;winamp-btn px-3 text-xs font-bold rounded-lg text-red-400&quot;&gt;ค้นหา&lt;/button&gt;
            &lt;/div&gt;
            &lt;div class=&quot;pt-2 border-t border-gray-800 text-[11px] text-gray-400&quot;&gt;
                &lt;span&gt;💡 ระบบจะเปิดหน้าค้นหา YouTube ในแท็บใหม่ทันที&lt;/span&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;script&gt;
        let audioCtx;
        let audioElement;
        let audioSourceNode;
        let gainNode;
        let pannerNode;
        let analyserNode;
        let eqFilters = [];
        
        let eqGains = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
        let isEQEnabled = true;

        let playlist = [];
        let currentTrackIdx = -1;
        let isPlaying = false;
        let isShuffle = false;
        let isRepeat = false;
        let isTimeRemaining = false;
        let currentVisMode = &#39;bars&#39;;
        let isSynthPlaying = false;
        let synthInterval = null;

        let activeEQDragIndex = -1;

        function switchTab(tabName) {
            const tabs = [&#39;player&#39;, &#39;playlist&#39;, &#39;eq&#39;, &#39;visualizer&#39;];
            tabs.forEach(t =&gt; {
                document.getElementById(`view-${t}`).classList.add(&#39;hidden&#39;);
                document.getElementById(`tab-${t}`).classList.remove(&#39;active&#39;);
            });

            document.getElementById(`view-${tabName}`).classList.remove(&#39;hidden&#39;);
            document.getElementById(`tab-${tabName}`).classList.add(&#39;active&#39;);

            if (tabName === &#39;visualizer&#39; || tabName === &#39;player&#39;) {
                resizeCanvases();
            } else if (tabName === &#39;eq&#39;) {
                updateAllEQUI();
            }
        }

        function initAudioContext() {
            if (audioCtx) return;

            const AudioContext = window.AudioContext || window.webkitAudioContext;
            audioCtx = new AudioContext();

            audioElement = new Audio();
            audioElement.crossOrigin = &quot;anonymous&quot;;

            audioSourceNode = audioCtx.createMediaElementSource(audioElement);

            const eqFrequencies = [31, 62, 125, 250, 500, 1000, 2000, 4000, 8000, 16000];
            eqFilters = eqFrequencies.map((freq, idx) =&gt; {
                const filter = audioCtx.createBiquadFilter();
                filter.type = &#39;peaking&#39;;
                filter.frequency.value = freq;
                filter.Q.value = 1.4;
                filter.gain.value = isEQEnabled ? eqGains[idx] : 0;
                return filter;
            });

            gainNode = audioCtx.createGain();
            gainNode.gain.value = 0.8;

            pannerNode = audioCtx.createStereoPanner ? audioCtx.createStereoPanner() : null;

            analyserNode = audioCtx.createAnalyser();
            analyserNode.fftSize = 128;

            let previousNode = audioSourceNode;
            eqFilters.forEach(filter =&gt; {
                previousNode.connect(filter);
                previousNode = filter;
            });

            if (pannerNode) {
                previousNode.connect(pannerNode);
                pannerNode.connect(gainNode);
            } else {
                previousNode.connect(gainNode);
            }

            gainNode.connect(analyserNode);
            analyserNode.connect(audioCtx.destination);

            audioElement.addEventListener(&#39;timeupdate&#39;, updateTimeAndSeek);
            audioElement.addEventListener(&#39;ended&#39;, handleTrackEnded);
            audioElement.addEventListener(&#39;error&#39;, (e) =&gt; {
                console.warn(&quot;Audio playback issue.&quot;, e);
            });
        }

        function startEQDrag(bandIdx, event) {
            activeEQDragIndex = bandIdx;
            handleEQPointerMove(event);

            window.addEventListener(&#39;mousemove&#39;, handleEQPointerMove);
            window.addEventListener(&#39;mouseup&#39;, stopEQDrag);
            window.addEventListener(&#39;touchmove&#39;, handleEQPointerMove, { passive: false });
            window.addEventListener(&#39;touchend&#39;, stopEQDrag);
        }

        function handleEQPointerMove(e) {
            if (activeEQDragIndex === -1) return;

            if (e.preventDefault) e.preventDefault();

            const trackEl = document.getElementById(`eq-track-${activeEQDragIndex}`);
            if (!trackEl) return;

            const rect = trackEl.getBoundingClientRect();
            const clientY = e.touches &amp;&amp; e.touches.length &gt; 0 ? e.touches[0].clientY : e.clientY;

            let offsetY = clientY - rect.top;
            offsetY = Math.max(0, Math.min(rect.height, offsetY));

            const percentNormalized = 1 - (offsetY / rect.height);
            let gainVal = Math.round((percentNormalized * 24) - 12);
            
            if (Math.abs(gainVal) &lt; 1) gainVal = 0;

            eqGains[activeEQDragIndex] = gainVal;

            if (isEQEnabled &amp;&amp; eqFilters[activeEQDragIndex]) {
                eqFilters[activeEQDragIndex].gain.value = gainVal;
            }

            updateSingleEQTrackUI(activeEQDragIndex);
        }

        function stopEQDrag() {
            activeEQDragIndex = -1;
            window.removeEventListener(&#39;mousemove&#39;, handleEQPointerMove);
            window.removeEventListener(&#39;mouseup&#39;, stopEQDrag);
            window.removeEventListener(&#39;touchmove&#39;, handleEQPointerMove);
            window.removeEventListener(&#39;touchend&#39;, stopEQDrag);
        }

        function updateSingleEQTrackUI(idx) {
            const val = eqGains[idx];
            
            const valEl = document.getElementById(`eq-val-${idx}`);
            if (valEl) {
                valEl.innerText = val &gt; 0 ? `+${val}` : `${val}`;
                valEl.style.color = val &gt; 0 ? &#39;#00ff66&#39; : (val &lt; 0 ? &#39;#ff4444&#39; : &#39;#9ca3af&#39;);
            }

            const trackEl = document.getElementById(`eq-track-${idx}`);
            const thumbEl = document.getElementById(`eq-thumb-${idx}`);
            const fillEl = document.getElementById(`eq-fill-${idx}`);

            if (trackEl &amp;&amp; thumbEl &amp;&amp; fillEl) {
                const trackH = trackEl.clientHeight || 140;
                const normalized = (val + 12) / 24; 
                const topPx = trackH * (1 - normalized);

                thumbEl.style.top = `${topPx}px`;

                if (val &gt;= 0) {
                    fillEl.style.top = `${topPx}px`;
                    fillEl.style.bottom = &#39;50%&#39;;
                    fillEl.style.background = &#39;var(--accent-color)&#39;;
                } else {
                    fillEl.style.top = &#39;50%&#39;;
                    fillEl.style.bottom = `${trackH - topPx}px`;
                    fillEl.style.background = &#39;#ff4444&#39;;
                }
            }
        }

        function updateAllEQUI() {
            for (let i = 0; i &lt; 10; i++) {
                updateSingleEQTrackUI(i);
            }
        }

        function toggleEQ() {
            const btn = document.getElementById(&#39;eq-power-btn&#39;);
            isEQEnabled = !isEQEnabled;

            if (isEQEnabled) {
                btn.classList.add(&#39;active&#39;);
                btn.innerText = &#39;ON&#39;;
                eqFilters.forEach((f, idx) =&gt; {
                    if (f) f.gain.value = eqGains[idx];
                });
            } else {
                btn.classList.remove(&#39;active&#39;);
                btn.innerText = &#39;OFF&#39;;
                eqFilters.forEach(f =&gt; {
                    if (f) f.gain.value = 0;
                });
            }
        }

        function resetEQFlat() {
            applyEQPreset(&#39;flat&#39;);
        }

        function applyEQPreset(presetKey) {
            const presets = {
                flat:  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                bass:  [9, 8, 6, 3, 0, 0, 0, 0, 0, 0],
                pop:   [-1, 2, 4, 5, 3, 0, -1, -1, 1, 2],
                rock:  [5, 4, 2, -1, -2, 0, 2, 4, 5, 5],
                jazz:  [3, 2, 1, 2, -1, -1, 0, 1, 2, 3],
                dance: [7, 6, 3, 0, 0, -2, -3, -1, 4, 5],
                vocal: [-2, -1, 1, 3, 5, 4, 2, 1, 0, -1],
                techno:[6, 5, 3, 0, -2, 0, 2, 4, 5, 4]
            };

            const targetGains = presets[presetKey] || presets.flat;
            eqGains = [...targetGains];

            eqGains.forEach((gain, idx) =&gt; {
                if (isEQEnabled &amp;&amp; eqFilters[idx]) {
                    eqFilters[idx].gain.value = gain;
                }
            });

            updateAllEQUI();
        }

        function renderPlaylist() {
            const listEl = document.getElementById(&#39;playlist-items&#39;);
            listEl.innerHTML = &#39;&#39;;

            playlist.forEach((track, idx) =&gt; {
                const isSelected = idx === currentTrackIdx;
                const li = document.createElement(&#39;li&#39;);
                li.className = `p-2.5 flex justify-between items-center cursor-pointer transition-colors ${
                    isSelected ? &#39;bg-amp-accent/20 text-amp-accent font-bold&#39; : &#39;hover:bg-gray-800 text-gray-300&#39;
                }`;
                li.onclick = () =&gt; selectTrack(idx, true);

                li.innerHTML = `
                    &lt;div class=&quot;flex items-center gap-2 truncate pr-2&quot;&gt;
                        &lt;span class=&quot;w-5 text-gray-500 text-[10px] font-mono&quot;&gt;${idx + 1}.&lt;/span&gt;
                        &lt;span class=&quot;truncate font-sans&quot;&gt;${track.title}&lt;/span&gt;
                    &lt;/div&gt;
                    &lt;span class=&quot;text-[10px] text-gray-500 font-mono&quot;&gt;${track.duration || &#39;0:00&#39;}&lt;/span&gt;
                `;
                listEl.appendChild(li);
            });

            document.getElementById(&#39;playlist-counter&#39;).innerText = `${playlist.length} เพลง`;
        }

        function filterPlaylist() {
            const query = document.getElementById(&#39;playlist-search&#39;).value.toLowerCase();
            const items = document.querySelectorAll(&#39;#playlist-items li&#39;);
            
            playlist.forEach((track, idx) =&gt; {
                const match = track.title.toLowerCase().includes(query) || (track.artist &amp;&amp; track.artist.toLowerCase().includes(query));
                if (items[idx]) {
                    items[idx].style.display = match ? &#39;flex&#39; : &#39;none&#39;;
                }
            });
        }

        function clearPlaylist() {
            stopAudio();
            playlist = [];
            currentTrackIdx = -1;
            renderPlaylist();
            updateMarquee(&quot;รายการเพลงถูกล้างแล้ว - เพิ่มเพลงจากเครื่องเพื่อเริ่มฟังเพลง&quot;);
        }

        function selectTrack(idx, autoPlay = true) {
            if (idx &lt; 0 || idx &gt;= playlist.length) return;

            initAudioContext();
            stopAudio();

            currentTrackIdx = idx;
            const track = playlist[idx];

            renderPlaylist();
            updateMarquee(`${idx + 1}. ${track.artist ? track.artist + &#39; - &#39; : &#39;&#39;}${track.title}`);

            if (track.type === &#39;file&#39; &amp;&amp; track.url) {
                audioElement.src = track.url;
            }

            if (autoPlay) {
                playAudio();
            }
        }

        function triggerFileInput() {
            document.getElementById(&#39;file-input&#39;).click();
        }

        function handleFileSelect(e) {
            const files = e.target.files;
            addAudioFiles(files);
        }

        function addAudioFiles(files) {
            if (!files || files.length === 0) return;

            const newTracksCount = files.length;
            for (let i = 0; i &lt; files.length; i++) {
                const file = files[i];
                if (!file.type.startsWith(&#39;audio/&#39;) &amp;&amp; !file.name.match(/\.(mp3|wav|ogg|m4a|aac)$/i)) continue;

                const fileUrl = URL.createObjectURL(file);
                playlist.push({
                    title: file.name.replace(/\.[^/.]+$/, &quot;&quot;),
                    artist: &quot;ไฟล์ในเครื่อง&quot;,
                    duration: &quot;--:--&quot;,
                    type: &#39;file&#39;,
                    url: fileUrl
                });
            }

            renderPlaylist();
            
            if (playlist.length &gt; 0 &amp;&amp; currentTrackIdx === -1) {
                selectTrack(0, true);
            }
        }

        function handleDragOver(e) {
            e.preventDefault();
            document.getElementById(&#39;drag-prompt&#39;).classList.remove(&#39;hidden&#39;);
            document.getElementById(&#39;drag-prompt&#39;).classList.add(&#39;flex&#39;);
        }

        function handleDragLeave(e) {
            e.preventDefault();
            if (e.clientX === 0 &amp;&amp; e.clientY === 0) {
                document.getElementById(&#39;drag-prompt&#39;).classList.add(&#39;hidden&#39;);
                document.getElementById(&#39;drag-prompt&#39;).classList.remove(&#39;flex&#39;);
            }
        }

        function handleDrop(e) {
            e.preventDefault();
            document.getElementById(&#39;drag-prompt&#39;).classList.add(&#39;hidden&#39;);
            document.getElementById(&#39;drag-prompt&#39;).classList.remove(&#39;flex&#39;);
            if (e.dataTransfer &amp;&amp; e.dataTransfer.files) {
                addAudioFiles(e.dataTransfer.files);
            }
        }

        function playAudio() {
            initAudioContext();
            if (audioCtx.state === &#39;suspended&#39;) {
                audioCtx.resume();
            }

            if (currentTrackIdx === -1 &amp;&amp; playlist.length &gt; 0) {
                selectTrack(0, true);
                return;
            }

            if (currentTrackIdx === -1) return;

            if (audioElement &amp;&amp; audioElement.src) {
                audioElement.play().catch(err =&gt; console.warn(&quot;Playback prevented:&quot;, err));
            }

            isPlaying = true;
        }

        function pauseAudio() {
            if (audioElement) audioElement.pause();
            isPlaying = false;
        }

        function stopAudio() {
            if (audioElement) {
                audioElement.pause();
                audioElement.currentTime = 0;
            }
            isPlaying = false;
            updateTimeDisplay(0, 0);
        }

        function nextTrack() {
            if (playlist.length === 0) return;
            let nextIdx = isShuffle ? Math.floor(Math.random() * playlist.length) : (currentTrackIdx + 1) % playlist.length;
            selectTrack(nextIdx, true);
        }

        function prevTrack() {
            if (playlist.length === 0) return;
            let prevIdx = (currentTrackIdx - 1 + playlist.length) % playlist.length;
            selectTrack(prevIdx, true);
        }

        function handleTrackEnded() {
            if (isRepeat) {
                selectTrack(currentTrackIdx, true);
            } else {
                nextTrack();
            }
        }

        function updateTimeAndSeek() {
            if (!audioElement || isNaN(audioElement.duration)) return;
            const current = audioElement.currentTime;
            const duration = audioElement.duration;

            updateTimeDisplay(current, duration);

            const seekPercent = (current / duration) * 100;
            document.getElementById(&#39;seek-bar&#39;).value = seekPercent || 0;
        }

        function updateTimeDisplay(current, duration) {
            const displayTime = isTimeRemaining &amp;&amp; duration ? (duration - current) : current;
            const mins = Math.floor(displayTime / 60);
            const secs = Math.floor(displayTime % 60);

            document.getElementById(&#39;time-display&#39;).innerText = 
                `${mins.toString().padStart(2, &#39;0&#39;)}:${secs.toString().padStart(2, &#39;0&#39;)}`;

            document.getElementById(&#39;seek-current&#39;).innerText = formatTime(current);
            document.getElementById(&#39;seek-duration&#39;).innerText = formatTime(duration);
        }

        function formatTime(seconds) {
            if (isNaN(seconds)) return &quot;0:00&quot;;
            const m = Math.floor(seconds / 60);
            const s = Math.floor(seconds % 60);
            return `${m}:${s.toString().padStart(2, &#39;0&#39;)}`;
        }

        function handleSeek(val) {
            if (audioElement &amp;&amp; audioElement.duration) {
                audioElement.currentTime = (val / 100) * audioElement.duration;
            }
        }

        function setVolume(val) {
            if (gainNode) gainNode.gain.value = parseFloat(val);
            document.getElementById(&#39;vol-val&#39;).innerText = `${Math.round(val * 100)}%`;
        }

        function setBalance(val) {
            if (pannerNode) pannerNode.pan.value = parseFloat(val);
            const num = parseFloat(val);
            let text = &quot;CENTER&quot;;
            if (num &lt; 0) text = `ซ้าย L ${Math.abs(Math.round(num * 100))}%`;
            if (num &gt; 0) text = `ขวา R ${Math.round(num * 100)}%`;
            document.getElementById(&#39;bal-val&#39;).innerText = text;
        }

        function toggleTimeMode() {
            isTimeRemaining = !isTimeRemaining;
            document.getElementById(&#39;time-mode&#39;).innerText = isTimeRemaining ? &#39;[เหลือ]&#39; : &#39;[ผ่านไป]&#39;;
        }

        function toggleShuffle() {
            isShuffle = !isShuffle;
            const btn = document.getElementById(&#39;btn-shuffle&#39;);
            const ind = document.getElementById(&#39;indicator-shuffle&#39;);
            if (isShuffle) {
                btn.classList.add(&#39;active&#39;);
                ind.classList.remove(&#39;opacity-30&#39;);
            } else {
                btn.classList.remove(&#39;active&#39;);
                ind.classList.add(&#39;opacity-30&#39;);
            }
        }

        function toggleRepeat() {
            isRepeat = !isRepeat;
            const btn = document.getElementById(&#39;btn-repeat&#39;);
            const ind = document.getElementById(&#39;indicator-repeat&#39;);
            if (isRepeat) {
                btn.classList.add(&#39;active&#39;);
                ind.classList.remove(&#39;opacity-30&#39;);
            } else {
                btn.classList.remove(&#39;active&#39;);
                ind.classList.add(&#39;opacity-30&#39;);
            }
        }

        let miniCanvas, miniCtx;
        let fullCanvas, fullCtx;

        function initCanvases() {
            miniCanvas = document.getElementById(&#39;mini-visualizer&#39;);
            miniCtx = miniCanvas.getContext(&#39;2d&#39;);

            fullCanvas = document.getElementById(&#39;full-visualizer&#39;);
            fullCtx = fullCanvas.getContext(&#39;2d&#39;);

            resizeCanvases();
            window.addEventListener(&#39;resize&#39;, resizeCanvases);

            requestAnimationFrame(drawVisualizers);
        }

        function resizeCanvases() {
            if (miniCanvas) {
                miniCanvas.width = miniCanvas.clientWidth;
                miniCanvas.height = miniCanvas.clientHeight;
            }
            if (fullCanvas) {
                fullCanvas.width = fullCanvas.clientWidth;
                fullCanvas.height = fullCanvas.clientHeight;
            }
        }

        function setVisualizerMode(mode) {
            currentVisMode = mode;
        }

        function cycleVisualizerMode() {
            const modes = [&#39;bars&#39;, &#39;wave&#39;, &#39;synthwave&#39;, &#39;fire&#39;];
            const nextIndex = (modes.indexOf(currentVisMode) + 1) % modes.length;
            currentVisMode = modes[nextIndex];
            document.getElementById(&#39;vis-mode&#39;).value = currentVisMode;
        }

        function drawVisualizers() {
            requestAnimationFrame(drawVisualizers);

            if (!analyserNode) return;

            const bufferLength = analyserNode.frequencyBinCount;
            const dataArray = new Uint8Array(bufferLength);
            analyserNode.getByteFrequencyData(dataArray);

            if (miniCtx &amp;&amp; miniCanvas) {
                miniCtx.clearRect(0, 0, miniCanvas.width, miniCanvas.height);
                const barWidth = (miniCanvas.width / bufferLength) * 2;
                let x = 0;

                for (let i = 0; i &lt; bufferLength; i++) {
                    const barHeight = (dataArray[i] / 255) * miniCanvas.height;
                    miniCtx.fillStyle = &#39;#00ff66&#39;;
                    miniCtx.fillRect(x, miniCanvas.height - barHeight, barWidth - 1, barHeight);
                    x += barWidth;
                }
            }

            if (fullCtx &amp;&amp; fullCanvas) {
                fullCtx.clearRect(0, 0, fullCanvas.width, fullCanvas.height);

                if (currentVisMode === &#39;bars&#39;) {
                    const barWidth = (fullCanvas.width / (bufferLength / 2)) - 2;
                    let x = 0;

                    for (let i = 0; i &lt; bufferLength / 2; i++) {
                        const barHeight = (dataArray[i] / 255) * fullCanvas.height;

                        const gradient = fullCtx.createLinearGradient(0, fullCanvas.height, 0, 0);
                        gradient.addColorStop(0, &#39;#00ff66&#39;);
                        gradient.addColorStop(0.7, &#39;#ffff00&#39;);
                        gradient.addColorStop(1, &#39;#ff0000&#39;);

                        fullCtx.fillStyle = gradient;
                        fullCtx.fillRect(x, fullCanvas.height - barHeight, barWidth, barHeight);
                        x += barWidth + 2;
                    }
                } else if (currentVisMode === &#39;wave&#39;) {
                    const waveArray = new Uint8Array(analyserNode.fftSize);
                    analyserNode.getByteTimeDomainData(waveArray);

                    fullCtx.lineWidth = 2;
                    fullCtx.strokeStyle = &#39;#00ff66&#39;;
                    fullCtx.beginPath();

                    const sliceWidth = fullCanvas.width / analyserNode.fftSize;
                    let x = 0;

                    for (let i = 0; i &lt; analyserNode.fftSize; i++) {
                        const v = waveArray[i] / 128.0;
                        const y = (v * fullCanvas.height) / 2;

                        if (i === 0) fullCtx.moveTo(x, y);
                        else fullCtx.lineTo(x, y);

                        x += sliceWidth;
                    }

                    fullCtx.lineTo(fullCanvas.width, fullCanvas.height / 2);
                    fullCtx.stroke();
                } else if (currentVisMode === &#39;synthwave&#39;) {
                    fullCtx.strokeStyle = &#39;#00f0ff&#39;;
                    fullCtx.lineWidth = 1;

                    for (let y = fullCanvas.height / 2; y &lt; fullCanvas.height; y += 12) {
                        fullCtx.beginPath();
                        fullCtx.moveTo(0, y);
                        fullCtx.lineTo(fullCanvas.width, y);
                        fullCtx.stroke();
                    }

                    const avgVal = dataArray.reduce((a, b) =&gt; a + b, 0) / bufferLength;
                    const radius = 25 + (avgVal / 255) * 20;

                    fullCtx.beginPath();
                    fullCtx.arc(fullCanvas.width / 2, fullCanvas.height / 2 - 20, radius, 0, Math.PI * 2);
                    fullCtx.fillStyle = &#39;#ff007f&#39;;
                    fullCtx.fill();
                } else if (currentVisMode === &#39;fire&#39;) {
                    const barWidth = (fullCanvas.width / (bufferLength / 2));
                    let x = 0;

                    for (let i = 0; i &lt; bufferLength / 2; i++) {
                        const barHeight = (dataArray[i] / 255) * fullCanvas.height;

                        const grad = fullCtx.createLinearGradient(0, fullCanvas.height, 0, 0);
                        grad.addColorStop(0, &#39;#ff1100&#39;);
                        grad.addColorStop(0.5, &#39;#ffaa00&#39;);
                        grad.addColorStop(1, &#39;#ffffff&#39;);

                        fullCtx.fillStyle = grad;
                        fullCtx.fillRect(x, fullCanvas.height - barHeight, barWidth - 1, barHeight);
                        x += barWidth;
                    }
                }
            }
        }

        function openYouTubeSearchModal() {
            document.getElementById(&#39;youtube-modal&#39;).classList.remove(&#39;hidden&#39;);
        }

        function closeYouTubeSearchModal() {
            document.getElementById(&#39;youtube-modal&#39;).classList.add(&#39;hidden&#39;);
        }

        function executeYouTubeSearch() {
            const query = document.getElementById(&#39;yt-search-input&#39;).value.trim();
            if (query) {
                const searchUrl = `https://www.youtube.com/results?search_query=${encodeURIComponent(query)}`;
                window.open(searchUrl, &#39;_blank&#39;);
                closeYouTubeSearchModal();
            }
        }

        function changeTheme(theme) {
            if (theme === &#39;classic&#39;) {
                document.body.removeAttribute(&#39;data-theme&#39;);
            } else {
                document.body.setAttribute(&#39;data-theme&#39;, theme);
            }
        }

        function updateMarquee(text) {
            const el = document.getElementById(&#39;marquee-text&#39;);
            if (el) el.innerText = text;
        }

        window.onload = function() {
            initCanvases();
            renderPlaylist();
            setTimeout(updateAllEQUI, 100);
        };
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;




&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0xJoGNdEAsF4rViLzrmEGeCO8Wnn1Rrejqew0u-aRoKZZAETkGcHlU8TNLOWAHbh7vdBPMGdbaIXdaUasH4nXFP_mVELsXHPxTXdBqr4wYL5VXLRmGZYqFskprUNfcrUyJk_uFO2yt0e13YOXG1DR75dva-Rd-e2u6ttn2mGeLs0T2ZhAO-C4gauvJl8/s606/Droidamp%20%281%29.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;320&quot; data-original-height=&quot;606&quot; data-original-width=&quot;461&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0xJoGNdEAsF4rViLzrmEGeCO8Wnn1Rrejqew0u-aRoKZZAETkGcHlU8TNLOWAHbh7vdBPMGdbaIXdaUasH4nXFP_mVELsXHPxTXdBqr4wYL5VXLRmGZYqFskprUNfcrUyJk_uFO2yt0e13YOXG1DR75dva-Rd-e2u6ttn2mGeLs0T2ZhAO-C4gauvJl8/s320/Droidamp%20%281%29.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMb_SqfZ1yuJjJZnlXYW3hDDFJck1rg57Ce72UDEm1BkhrHdaF5XvEs4R5oT5-B3GLl-1QWJMVg7Zz3h86pHU-Wi4U6_0AmBoqHh8gnqc7aV_XL-ffTsJGYbgW7JdiKeqvadvV-BLQTgYJN5XWIfgDTvGwm4u2XRt7cLeTEWwXnXvXecMQxpqUaNB7U3Y/s610/Droidamp%20%282%29.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;320&quot; data-original-height=&quot;610&quot; data-original-width=&quot;461&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMb_SqfZ1yuJjJZnlXYW3hDDFJck1rg57Ce72UDEm1BkhrHdaF5XvEs4R5oT5-B3GLl-1QWJMVg7Zz3h86pHU-Wi4U6_0AmBoqHh8gnqc7aV_XL-ffTsJGYbgW7JdiKeqvadvV-BLQTgYJN5XWIfgDTvGwm4u2XRt7cLeTEWwXnXvXecMQxpqUaNB7U3Y/s320/Droidamp%20%282%29.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUY3xW0qPcF0zzbNJ32eQ-CCMRG5pdkSpvf5hlfpDYnf6ZGYhDkHvT1SuWgvVr2TZMKEfmz4ryeSIsFlMtaVVPt9KFee_0QhVTqvXrWlLGSW1v3LVyQaQ_pswAeg-NRn0tK-KWAqbXKe-dBcXzuEtf5drBNYVDPGq-agE0njvombaZjJ41t4nfdK4i8NI/s603/Droidamp%20%283%29.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;320&quot; data-original-height=&quot;603&quot; data-original-width=&quot;459&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUY3xW0qPcF0zzbNJ32eQ-CCMRG5pdkSpvf5hlfpDYnf6ZGYhDkHvT1SuWgvVr2TZMKEfmz4ryeSIsFlMtaVVPt9KFee_0QhVTqvXrWlLGSW1v3LVyQaQ_pswAeg-NRn0tK-KWAqbXKe-dBcXzuEtf5drBNYVDPGq-agE0njvombaZjJ41t4nfdK4i8NI/s320/Droidamp%20%283%29.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQdGT1HmNvPafVRKE5Gn7g-G5fSassV-M2XIaDNg9hLMDp24NEp_oTcqWmy1aexv3EUbk-IMbj3Ksi0SYCCircoro7cVsKyhF3DMhxqplw_iomVOzmOQoEovNz-w1cpNmdSuGJzkJQYxm_Hc8Cwivx2xrNVYH7CAqchFlfgW3_LO7E8Anam4o_1crPpV4/s528/Droidamp%20%284%29.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;320&quot; data-original-height=&quot;528&quot; data-original-width=&quot;446&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQdGT1HmNvPafVRKE5Gn7g-G5fSassV-M2XIaDNg9hLMDp24NEp_oTcqWmy1aexv3EUbk-IMbj3Ksi0SYCCircoro7cVsKyhF3DMhxqplw_iomVOzmOQoEovNz-w1cpNmdSuGJzkJQYxm_Hc8Cwivx2xrNVYH7CAqchFlfgW3_LO7E8Anam4o_1crPpV4/s320/Droidamp%20%284%29.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/2529661578205887223/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/2529661578205887223' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/2529661578205887223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/2529661578205887223'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/winamp-90s.html' title='โปรแกรมฟังเพลงสไตล์ Winamp ยุค 90s สุดเก๋า'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0xJoGNdEAsF4rViLzrmEGeCO8Wnn1Rrejqew0u-aRoKZZAETkGcHlU8TNLOWAHbh7vdBPMGdbaIXdaUasH4nXFP_mVELsXHPxTXdBqr4wYL5VXLRmGZYqFskprUNfcrUyJk_uFO2yt0e13YOXG1DR75dva-Rd-e2u6ttn2mGeLs0T2ZhAO-C4gauvJl8/s72-c/Droidamp%20%281%29.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-2274842120063615461</id><published>2026-10-25T19:46:47.485+07:00</published><updated>2026-10-25T19:56:31.635+07:00</updated><title type='text'>Droidamp v1.0 โปรแกรมฟังเพลงสไตล์ Winamp ยุค 90s สุดเก๋า   เสียงกระหึ่ม ใช้งานง่าย ไม่ต้องติดตั้ง</title><content type='html'>&lt;!-- บทความรีวิวโปรแกรม Droidamp สไตล์ Thaiware (ปรับโทนสีไม่ให้ขาวโพน) --&gt;
&lt;article style=&quot;font-family: &#39;Sarabun&#39;, &#39;Segoe UI&#39;, Tahoma, sans-serif; color: #2d3748; line-height: 1.8; max-width: 850px; margin: 0 auto; background-color: #fcfcfc; padding: 20px; border-radius: 12px; border: 1px solid #edf2f7;&quot;&gt;

  &lt;!-- หัวข้อหลัก (มีพื้นหลังส้มอ่อนละมุนตัดกับข้อความ) --&gt;
  &lt;div style=&quot;background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%); border-left: 5px solid #f97316; padding: 18px 20px; border-radius: 0 10px 10px 0; margin-bottom: 20px;&quot;&gt;
    &lt;h1 style=&quot;color: #c2410c; font-size: 1.75rem; font-weight: bold; margin: 0 0 8px 0; line-height: 1.4;&quot;&gt;
      แจกฟรี! Droidamp v1.0 โปรแกรมฟังเพลงสไตล์ Winamp ยุค 90s สุดเก๋า ปรับ EQ 10 แบนด์ เสียงกระหึ่ม ใช้งานง่าย ไม่ต้องติดตั้ง!
    &lt;/h1&gt;
    &lt;p style=&quot;font-size: 1.02rem; color: #7c2d12; margin: 0;&quot;&gt;
      เปิดปุ๊บ ฟังปั๊บ! เปลี่ยนคอมพิวเตอร์และมือถือของคุณให้กลายเป็นเครื่องเล่นเพลงคลาสสิกระดับตำนาน แจกฟรี 100% โดยผู้พัฒนาใจดีทำมาให้ใช้ฟรีไม่มีกั๊ก!
    &lt;/p&gt;
  &lt;/div&gt;

  &lt;hr style=&quot;border: none; border-top: 1px solid #e2e8f0; margin: 20px 0;&quot;&gt;

  &lt;!-- เนื้อหาบทความเกริ่นนำ --&gt;
  &lt;p&gt;
    สวัสดีครับเพื่อนๆ สาวกเสียงเพลงและชาวเรโทรทุกท่าน! วันนี้ขอแนะนำโปรแกรมฟังเพลงสุดจี๊ดแห่งปี นั่นคือ &lt;strong&gt;&quot;Droidamp v1.0 (Winamp Classic Retro Player)&quot;&lt;/strong&gt; โปรแกรมฟังเพลงไซส์จิ๋วแต่พลังเสียงระดับมอนสเตอร์ ที่ถูกออกแบบมาเพื่อปลุกจิตวิญญาณความเก๋าของเครื่องเล่นเพลง Winamp ในตำนานยุค 90s ให้กลับมามีชีวิตอีกครั้ง!
  &lt;/p&gt;

  &lt;p&gt;
    ตัวโปรแกรมถูกพัฒนาขึ้นด้วยเทคโนโลยีเว็บแอปพลิเคชันล้ำสมัย (Web Audio API) ทำให้ตัวไฟล์มีขนาดเล็กมากๆ ไม่กินทรัพยากรเครื่อง เปิดปุ๊บติดปั๊บ ไม่ต้องเสียเวลานั่งติดตั้งโปรแกรมใหญ่ๆ ให้หนักเครื่อง แถมผู้พัฒนายังใจดี&lt;strong&gt;เปิดให้ดาวน์โหลดไปใช้งานกันได้ฟรีๆ 100% ไม่มีโฆษณาคั่น รบกวนใจแน่นอนครับ!&lt;/strong&gt;
  &lt;/p&gt;

  &lt;!-- กล่องคุณสมบัติเด่น (เพิ่มสีส้มจางๆ สบายตา ไม่ขาวโพน) --&gt;
  &lt;div style=&quot;background-color: #fffaf5; border: 1px solid #fed7aa; border-left: 5px solid #ea580c; border-radius: 0 10px 10px 0; padding: 22px; margin: 25px 0; box-shadow: 0 3px 10px rgba(234, 88, 12, 0.05);&quot;&gt;
    &lt;h3 style=&quot;color: #9a3412; margin-top: 0; font-size: 1.25rem; font-weight: bold;&quot;&gt;
      🔥 ฟีเจอร์เด็ดที่ไม่ควรพลาดของ Droidamp v1.0
    &lt;/h3&gt;
    &lt;ul style=&quot;padding-left: 20px; margin-bottom: 0; color: #431407;&quot;&gt;
      &lt;li style=&quot;margin-bottom: 10px;&quot;&gt;
        &lt;strong&gt;🔊 อีคิวปรับแต่งเสียงละเอียด 10 แบนด์ (10-Band EQ):&lt;/strong&gt; ปรับแต่งม่านเสียงได้ดั่งใจตั้งแต่ย่านเบสลึก 31Hz จนถึงเสียงแหลมใส 16kHz พร้อมโหมดสำเร็จรูปครบครัน เช่น Bass Boost, Pop, Rock, Jazz, Dance และ Vocal
      &lt;/li&gt;
      &lt;li style=&quot;margin-bottom: 10px;&quot;&gt;
        &lt;strong&gt;🎨 เปลี่ยน สกิน (Skin) ได้หลากหลายสไตล์:&lt;/strong&gt; เบื่อหน้าตาเดิมๆ ก็กดเปลี่ยนธีมได้ทันที ทั้งสไตล์ Winamp Classic, Neon Synthwave, Cyberpunk และ Matrix Green
      &lt;/li&gt;
      &lt;li style=&quot;margin-bottom: 10px;&quot;&gt;
        &lt;strong&gt;📊 Spectrum Visualizer ตื่นตาตื่นใจ:&lt;/strong&gt; กราฟคลื่นเสียงเด้งตามจังหวะเพลงแบบ Real-time ให้ฟีลลิ่งเครื่องเสียงติดรถยนต์ยุค 90s ตัวจริง!
      &lt;/li&gt;
      &lt;li style=&quot;margin-bottom: 10px;&quot;&gt;
        &lt;strong&gt;💻 ใช้งานได้ทุก Windows &amp; ทุกระบบปฏิบัติการ:&lt;/strong&gt; รองรับตั้งแต่ออริจินัลอย่าง &lt;strong&gt;Windows XP, Windows 7, Windows 10, Windows 11&lt;/strong&gt; รวมไปถึง &lt;strong&gt;Linux (Ubuntu) และ macOS&lt;/strong&gt; ขอแค่มีเว็บเบราว์เซอร์ก็เปิดเล่นได้ทันที!
      &lt;/li&gt;
      &lt;li style=&quot;margin-bottom: 10px;&quot;&gt;
        &lt;strong&gt;📱 ลื่นไหลทั้งคอมและมือถือ:&lt;/strong&gt; หน้าตาโปรแกรมแบบ Responsive ออกแบบมาให้แตะสัมผัสบนสมาร์ตโฟน Android / iOS ได้อย่างคล่องตัว
      &lt;/li&gt;
      &lt;li style=&quot;margin-bottom: 0;&quot;&gt;
        &lt;strong&gt;⚡ Portable ไม่ต้องติดตั้ง:&lt;/strong&gt; เพียงแตกไฟล์แล้วดับเบิลคลิกเปิดเล่นได้เลย ไม่รก Registry ของระบบ ปลอดภัย ไร้ไวรัส 100%
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;!-- กล่องดาวน์โหลด พร้อมนับยอดเริ่มที่ 1999 --&gt;
  &lt;style&gt;
    .dl-card {
      background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
      border: 2px dashed #f59e0b;
      border-radius: 16px;
      padding: 28px 20px;
      text-align: center;
      margin: 30px 0;
      box-shadow: 0 8px 20px rgba(245, 158, 11, 0.12);
    }
    .dl-title {
      font-size: 1.35rem;
      font-weight: bold;
      color: #92400e;
      margin-bottom: 8px;
    }
    .dl-subtitle {
      font-size: 0.92rem;
      color: #78350f;
      margin-bottom: 20px;
    }
    .dl-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: linear-gradient(180deg, #f97316 0%, #c2410c 100%);
      color: #ffffff !important;
      font-weight: bold;
      font-size: 1.1rem;
      padding: 14px 32px;
      border-radius: 50px;
      text-decoration: none !important;
      box-shadow: 0 4px 15px rgba(249, 115, 22, 0.4);
      transition: all 0.25s ease;
      cursor: pointer;
      border: none;
    }
    .dl-btn:hover {
      background: linear-gradient(180deg, #fb923c 0%, #9a3412 100%);
      transform: translateY(-3px);
      box-shadow: 0 8px 22px rgba(249, 115, 22, 0.5);
    }
    .dl-count-box {
      margin-top: 18px;
      font-size: 0.9rem;
      color: #78350f;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
    }
    .dl-badge {
      background-color: #dc2626;
      color: #ffffff;
      font-weight: bold;
      padding: 3px 12px;
      border-radius: 20px;
      font-size: 0.95rem;
      box-shadow: 0 2px 6px rgba(220, 38, 38, 0.3);
    }
  &lt;/style&gt;

  &lt;div class=&quot;dl-card&quot;&gt;
    &lt;div class=&quot;dl-title&quot;&gt;
      📦 ดาวน์โหลดโปรแกรม Droidamp v1.0 (Winamp Classic Edition)
    &lt;/div&gt;
    &lt;div class=&quot;dl-subtitle&quot;&gt;
      (ไฟล์ Zip / EXE ขนาดจิ๋ว ปลอดภัย พร้อมใช้งานทันที ไม่ต้องติดตั้ง)
    &lt;/div&gt;
    
    &lt;!-- ปุ่มลิงก์ OneDrive ของคุณแจ่ม --&gt;
    &lt;a id=&quot;downloadBtn&quot; href=&quot;https://1drv.ms/u/c/8d06b695b2c6a4a4/IQAbkLYml4X4Soj1uYONSIf0AYmwqkWL4KjCcy-kHKxzRss?e=UxpdoF&quot; target=&quot;_blank&quot; class=&quot;dl-btn&quot;&gt;
      ⚡ คลิกเพื่อดาวน์โหลดโปรแกรมฟรี (OneDrive)
    &lt;/a&gt;
    
    &lt;div class=&quot;dl-count-box&quot;&gt;
      🔥 ยอดดาวน์โหลดสะสมทั้งหมด: &lt;span id=&quot;downloadCount&quot; class=&quot;dl-badge&quot;&gt;1,999&lt;/span&gt; ครั้ง
    &lt;/div&gt;
  &lt;/div&gt;

  &lt;!-- ระบบนับยอดดาวน์โหลดแบบบันทึกจำค่า --&gt;
  &lt;script&gt;
    (function() {
      const START_COUNT = 1999; // กำหนดค่านับเริ่มต้นที่ 1,999 ครั้ง
      const countEl = document.getElementById(&#39;downloadCount&#39;);
      const btnEl = document.getElementById(&#39;downloadBtn&#39;);

      let currentCount = parseInt(localStorage.getItem(&#39;droidamp_dl_count&#39;)) || START_COUNT;
      countEl.innerText = currentCount.toLocaleString();

      btnEl.addEventListener(&#39;click&#39;, function() {
        currentCount++;
        countEl.innerText = currentCount.toLocaleString();
        localStorage.setItem(&#39;droidamp_dl_count&#39;, currentCount);
      });
    })();
  &lt;/script&gt;

  &lt;!-- ส่วนผู้พัฒนา &amp; หมายเหตุ --&gt;
  &lt;div style=&quot;background-color: #fff7ed; border: 1px solid #ffedd5; border-radius: 8px; padding: 16px; margin-bottom: 25px;&quot;&gt;
    &lt;p style=&quot;margin: 0; font-size: 0.95rem; color: #9a3412;&quot;&gt;
      ❤️ &lt;strong&gt;จากผู้พัฒนาใจดี:&lt;/strong&gt; &quot;ตั้งใจพัฒนาโปรแกรมนี้ขึ้นมาเพื่อให้เพื่อนๆ ที่คิดถึงกลิ่นอายยุค Winamp ได้เอาไว้ฟังเพลงโปรดกันแบบฟรีๆ ไม่คิดเงินสักบาท หากใช้งานแล้วถูกใจ อย่าลืมส่งต่อแชร์ลิงก์นี้ให้เพื่อนๆ ได้ลองใช้กันด้วยนะครับ!&quot;
    &lt;/p&gt;
  &lt;/div&gt;

  &lt;hr style=&quot;border: none; border-top: 1px solid #e2e8f0; margin: 25px 0;&quot;&gt;

  &lt;!-- แท็ก SEO สำหรับค้นหาบน Google (Search Tags) --&gt;
  &lt;div style=&quot;font-size: 0.85rem; color: #64748b;&quot;&gt;
    &lt;strong&gt;🏷️ แท็กการค้นหา (Tags):&lt;/strong&gt; 
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#ดาวน์โหลดWinamp&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#โปรแกรมฟังเพลงฟรี&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#Droidamp&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#WinampAndroid&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#ปรับแต่งEQ10แบนด์&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#โปรแกรมฟังเพลงคอมพิวเตอร์&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#WindowsXP&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#Windows11&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#โปรแกรมพกพาPortable&lt;/span&gt;
    &lt;span style=&quot;background: #f1f5f9; padding: 2px 8px; border-radius: 4px; margin-right: 4px; display: inline-block; margin-bottom: 5px;&quot;&gt;#แจกโปรแกรมฟรี&lt;/span&gt;
  &lt;/div&gt;

&lt;/article&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/2274842120063615461/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/2274842120063615461' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/2274842120063615461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/2274842120063615461'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/blog-post_25.html' title='Droidamp v1.0 โปรแกรมฟังเพลงสไตล์ Winamp ยุค 90s สุดเก๋า   เสียงกระหึ่ม ใช้งานง่าย ไม่ต้องติดตั้ง'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-4728664105178587862</id><published>2026-10-24T10:38:18.037+07:00</published><updated>2026-10-27T10:46:36.025+07:00</updated><title type='text'>  วิทยุออนไลน์ ลุงแจ่ม อารมณ์ดี</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;ม้าเหล็กเรดิโอ โดยลุงแจ่ม อารมณ์ดี 24 ชั่วโมง&lt;/title&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&gt;
    &lt;style&gt;
        @import url(&#39;https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&amp;display=swap&#39;);
        * { font-family: &#39;Prompt&#39;, sans-serif; }
        .gradient-bg { background: linear-gradient(135deg, #FFF9F3 0%, #FFF2E6 100%); }
        .dark .gradient-bg { background: linear-gradient(135deg, #18181B 0%, #09090B 100%); }
        .pulse-ring { animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
        @keyframes pulse-ring {
            0% { transform: scale(0.95); opacity: 0.8; }
            50% { transform: scale(1.05); opacity: 0.4; }
            100% { transform: scale(0.95); opacity: 0.8; }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;gradient-bg min-h-screen text-slate-800 dark:text-slate-100 transition-colors duration-300&quot;&gt;

    &lt;div class=&quot;max-w-4xl mx-auto px-4 py-6 flex flex-col min-h-screen&quot;&gt;
        
        &lt;!-- Header Bar --&gt;
        &lt;header class=&quot;flex items-center justify-between mb-6&quot;&gt;
            &lt;div class=&quot;flex items-center gap-2&quot;&gt;
                &lt;div class=&quot;w-10 h-10 rounded-full bg-amber-500 text-white flex items-center justify-center font-bold text-lg shadow-md&quot;&gt;
                    ลจ
                &lt;/div&gt;
                &lt;div&gt;
                    &lt;h3 class=&quot;font-bold text-slate-800 dark:text-white leading-tight&quot;&gt;ลุงแจ่ม อารมณ์ดี&lt;/h3&gt;
                    &lt;p class=&quot;text-xs text-amber-600 dark:text-amber-400&quot;&gt;สวนราชินี กำแพงเพชร&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;div class=&quot;flex items-center gap-2&quot;&gt;
                &lt;button onclick=&quot;testSpeaker()&quot; class=&quot;px-3.5 py-2 rounded-xl bg-amber-100 text-amber-800 dark:bg-amber-950/50 dark:text-amber-300 text-xs sm:text-sm font-semibold hover:bg-amber-200 transition-all flex items-center gap-1.5&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-volume-high&quot;&gt;&lt;/i&gt; ทดสอบลำโพง
                &lt;/button&gt;
                &lt;button onclick=&quot;toggleDarkMode()&quot; class=&quot;p-2.5 rounded-xl bg-white dark:bg-zinc-800 shadow-sm border border-slate-100 dark:border-zinc-700 text-slate-600 dark:text-slate-300&quot;&gt;
                    &lt;i id=&quot;themeIcon&quot; class=&quot;fa-solid fa-moon text-lg&quot;&gt;&lt;/i&gt;
                &lt;/button&gt;
            &lt;/div&gt;
        &lt;/header&gt;

        &lt;!-- Main Title --&gt;
        &lt;div class=&quot;text-center mb-6&quot;&gt;
            &lt;div class=&quot;inline-flex items-center gap-2 px-3 py-1 rounded-full bg-amber-500/10 text-amber-600 dark:text-amber-400 text-xs font-medium mb-2&quot;&gt;
                &lt;span class=&quot;w-2 h-2 rounded-full bg-amber-500 animate-ping&quot;&gt;&lt;/span&gt; Live Global Radio
            &lt;/div&gt;
            &lt;h1 class=&quot;text-2xl sm:text-3xl font-bold text-slate-900 dark:text-white tracking-tight mb-1&quot;&gt;
               ม้าเหล็กเรดิโอ &lt;span class=&quot;text-amber-500&quot;&gt;24 ชั่วโมง&lt;/span&gt;
            &lt;/h1&gt;
            &lt;p class=&quot;text-sm text-slate-500 dark:text-slate-400&quot;&gt;สตรีมสดสถานีวิทยุยอดนิยมจากทั่วทุกมุมโลก ฟังเพลินตลอดวัน&lt;/p&gt;
        &lt;/div&gt;

        &lt;!-- Radio Player Card --&gt;
        &lt;main class=&quot;bg-white dark:bg-zinc-900 rounded-3xl shadow-xl border border-slate-100 dark:border-zinc-800 p-4 sm:p-8 mb-8 flex-1 flex flex-col justify-between&quot;&gt;
            
            &lt;!-- แถบ 3 ลิงก์หลัก --&gt;
            &lt;div class=&quot;grid grid-cols-1 md:grid-cols-3 gap-3 mb-6&quot;&gt;
                &lt;a href=&quot;https://shopee.co.th/jam_aromdee?categoryId=100636&amp;entryPoint=ShopByPDP&amp;itemId=25385928215&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; 
                   class=&quot;flex items-center justify-center gap-3 p-3.5 rounded-2xl bg-orange-500 hover:bg-orange-600 text-white font-bold transition-all shadow-md active:scale-95 border-b-4 border-orange-700&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-bag-shopping text-2xl&quot;&gt;&lt;/i&gt;
                    &lt;div class=&quot;text-left&quot;&gt;
                        &lt;div class=&quot;text-xs opacity-90 leading-tight&quot;&gt;ร้านค้าออนไลน์&lt;/div&gt;
                        &lt;div class=&quot;text-base sm:text-lg&quot;&gt;Shopee ลุงแจ่ม&lt;/div&gt;
                    &lt;/div&gt;
                &lt;/a&gt;

                &lt;a href=&quot;https://aromdeeman.blogspot.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; 
                   class=&quot;flex items-center justify-center gap-3 p-3.5 rounded-2xl bg-amber-500 hover:bg-amber-600 text-white font-bold transition-all shadow-md active:scale-95 border-b-4 border-amber-700&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-blog text-2xl&quot;&gt;&lt;/i&gt;
                    &lt;div class=&quot;text-left&quot;&gt;
                        &lt;div class=&quot;text-xs opacity-90 leading-tight&quot;&gt;เยี่ยมชมผลงาน&lt;/div&gt;
                        &lt;div class=&quot;text-base sm:text-lg&quot;&gt;เว็บบล็อกของเรา&lt;/div&gt;
                    &lt;/div&gt;
                &lt;/a&gt;

                &lt;a href=&quot;https://www.facebook.com/jam.aromdee&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; 
                   class=&quot;flex items-center justify-center gap-3 p-3.5 rounded-2xl bg-blue-600 hover:bg-blue-700 text-white font-bold transition-all shadow-md active:scale-95 border-b-4 border-blue-800&quot;&gt;
                    &lt;i class=&quot;fa-brands fa-facebook-f text-2xl&quot;&gt;&lt;/i&gt;
                    &lt;div class=&quot;text-left&quot;&gt;
                        &lt;div class=&quot;text-xs opacity-90 leading-tight&quot;&gt;พูดคุยทักทาย&lt;/div&gt;
                        &lt;div class=&quot;text-base sm:text-lg&quot;&gt;Facebook ลุงแจ่ม&lt;/div&gt;
                    &lt;/div&gt;
                &lt;/a&gt;
            &lt;/div&gt;

            &lt;!-- Player Screen --&gt;
            &lt;div class=&quot;flex flex-col items-center justify-center py-4&quot;&gt;
                &lt;div class=&quot;relative mb-6&quot;&gt;
                    &lt;div id=&quot;visualizer&quot; class=&quot;w-36 h-36 sm:w-44 sm:h-44 rounded-full bg-gradient-to-tr from-amber-400 to-orange-500 flex items-center justify-center shadow-lg shadow-orange-500/20 text-white text-5xl sm:text-6xl pulse-ring&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-headphones&quot;&gt;&lt;/i&gt;
                    &lt;/div&gt;
                    &lt;div id=&quot;liveBadge&quot; class=&quot;absolute bottom-2 right-2 bg-red-500 text-white text-[10px] font-bold px-2.5 py-0.5 rounded-full uppercase tracking-wider border-2 border-white dark:border-zinc-900 flex items-center gap-1 shadow-sm&quot;&gt;
                        &lt;span class=&quot;w-1.5 h-1.5 rounded-full bg-white animate-pulse&quot;&gt;&lt;/span&gt; Live
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;h2 id=&quot;stationTitle&quot; class=&quot;text-lg sm:text-xl font-bold text-center text-slate-800 dark:text-slate-100 mb-1 px-4 line-clamp-1&quot;&gt;
                    กำลังโหลดสถานีวิทยุ...
                &lt;/h2&gt;
                &lt;p id=&quot;stationSub&quot; class=&quot;text-xs sm:text-sm text-slate-400 dark:text-slate-500 mb-4 text-center&quot;&gt;
                    เชื่อมต่อฐานข้อมูลสตรีมมิ่งสากล
                &lt;/p&gt;

                &lt;!-- Audio Main Controls --&gt;
                &lt;div id=&quot;mainControls&quot; class=&quot;flex flex-col items-center gap-4 w-full&quot;&gt;
                    
                    &lt;!-- Progress Bar --&gt;
                    &lt;div id=&quot;progressContainer&quot; class=&quot;w-full max-w-md hidden px-4&quot;&gt;
                        &lt;div class=&quot;flex justify-between text-[11px] text-slate-400 mb-1 font-mono&quot;&gt;
                            &lt;span id=&quot;currentTime&quot;&gt;00:00&lt;/span&gt;
                            &lt;span id=&quot;durationTime&quot;&gt;00:00&lt;/span&gt;
                        &lt;/div&gt;
                        &lt;div onclick=&quot;seekAudio(event)&quot; class=&quot;w-full h-2 bg-slate-200 dark:bg-zinc-700 rounded-full cursor-pointer overflow-hidden&quot;&gt;
                            &lt;div id=&quot;progressBar&quot; class=&quot;h-full bg-amber-500 rounded-full w-0 transition-all duration-200&quot;&gt;&lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;!-- Media Buttons --&gt;
                    &lt;div class=&quot;flex items-center gap-4&quot;&gt;
                        &lt;!-- ปุ่มสุ่มเพลง (เปิดใช้งานเป็นค่าเริ่มต้นให้แล้ว) --&gt;
                        &lt;button id=&quot;shuffleBtn&quot; onclick=&quot;toggleShuffle()&quot; class=&quot;p-2.5 rounded-full text-amber-500 transition-colors text-sm font-bold&quot; title=&quot;สุ่มเพลง&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-shuffle&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;

                        &lt;button onclick=&quot;playPrevSong()&quot; class=&quot;w-10 h-10 rounded-full bg-slate-100 dark:bg-zinc-800 hover:bg-slate-200 dark:hover:bg-zinc-700 text-slate-700 dark:text-slate-200 flex items-center justify-center transition-transform active:scale-95 shadow-sm&quot; title=&quot;เพลงก่อนหน้า&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-backward-step&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;

                        &lt;button id=&quot;playBtn&quot; onclick=&quot;togglePlay()&quot; class=&quot;w-16 h-16 sm:w-20 sm:h-20 rounded-full bg-gradient-to-r from-amber-500 to-orange-500 hover:from-amber-600 hover:to-orange-600 text-white text-2xl sm:text-3xl flex items-center justify-center shadow-xl shadow-orange-500/30 transition-transform active:scale-95&quot;&gt;
                            &lt;i id=&quot;playIcon&quot; class=&quot;fa-solid fa-play ml-1&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;

                        &lt;button onclick=&quot;playNextSong()&quot; class=&quot;w-10 h-10 rounded-full bg-slate-100 dark:bg-zinc-800 hover:bg-slate-200 dark:hover:bg-zinc-700 text-slate-700 dark:text-slate-200 flex items-center justify-center transition-transform active:scale-95 shadow-sm&quot; title=&quot;เพลงถัดไป&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-forward-step&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;

                        &lt;button id=&quot;loopBtn&quot; onclick=&quot;toggleLoop()&quot; class=&quot;p-2.5 rounded-full text-amber-500 transition-colors text-sm font-bold&quot; title=&quot;เล่นวนลูปทั้งลิสต์&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-repeat&quot;&gt;&lt;/i&gt;
                        &lt;/button&gt;
                    &lt;/div&gt;

                    &lt;!-- Volume Slider --&gt;
                    &lt;div class=&quot;w-full max-w-xs flex items-center gap-3 px-4&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-volume-low text-slate-400 text-xs&quot;&gt;&lt;/i&gt;
                        &lt;input type=&quot;range&quot; id=&quot;volumeSlider&quot; min=&quot;0&quot; max=&quot;1&quot; step=&quot;0.01&quot; value=&quot;0.8&quot; oninput=&quot;setVolume(this.value)&quot; class=&quot;w-full h-1.5 bg-slate-200 dark:bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-amber-500&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-volume-high text-slate-400 text-xs&quot;&gt;&lt;/i&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Country Filter Tabs &amp; Playlist Controls --&gt;
            &lt;div class=&quot;mt-6 pt-6 border-t border-slate-100 dark:border-zinc-800&quot;&gt;
                &lt;div class=&quot;flex items-center justify-between mb-3&quot;&gt;
                    &lt;span class=&quot;text-xs font-semibold text-slate-500 dark:text-slate-400 flex items-center gap-1.5&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-globe text-amber-500&quot;&gt;&lt;/i&gt; เลือกสถานี / หมวดหมู่:
                    &lt;/span&gt;
                    &lt;button onclick=&quot;fetchStations()&quot; class=&quot;text-xs text-amber-600 hover:underline flex items-center gap-1&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-rotate-right text-[10px]&quot;&gt;&lt;/i&gt; รีเฟรช
                    &lt;/button&gt;
                &lt;/div&gt;

                &lt;div class=&quot;flex flex-wrap items-center gap-2 mb-4&quot;&gt;
                    &lt;button onclick=&quot;playArchivePlaylist()&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-bold bg-emerald-600 text-white shadow-sm hover:bg-emerald-700 flex items-center gap-1&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-compact-disc&quot;&gt;&lt;/i&gt; 📻 สถานีม้าเหล็กเรดิโอ  
                    &lt;/button&gt;
                    
                    &lt;button onclick=&quot;changeCountry(&#39;TH&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇹🇭 ไทย&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;US&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-amber-500 text-white shadow-sm&quot;&gt;🇺🇸 USA&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;GB&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇬🇧 UK&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;JP&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇯🇵 Japan&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;KR&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇰🇷 Korea&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;CN&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇨🇳 China&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;FR&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇫🇷 France&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;IT&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇮🇹 Italy&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;DE&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇩🇪 Germany&lt;/button&gt;
                    &lt;button onclick=&quot;changeCountry(&#39;CA&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🇨🇦 Canada&lt;/button&gt;
                    &lt;button onclick=&quot;changeTag(&#39;jazz&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🎷 Jazz&lt;/button&gt;
                    &lt;button onclick=&quot;changeTag(&#39;classical&#39;)&quot; class=&quot;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&quot;&gt;🎻 Classical&lt;/button&gt;
                &lt;/div&gt;

                &lt;!-- Station List --&gt;
                &lt;div id=&quot;stationList&quot; class=&quot;grid grid-cols-1 sm:grid-cols-2 gap-2 max-h-48 overflow-y-auto pr-1&quot;&gt;
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/main&gt;

        &lt;footer class=&quot;text-center text-xs text-slate-400 py-4&quot;&gt;
            สถานีเพลงทั่วโลก สวนราชินี โดยลุงแจ่ม อารมณ์ดี 24 ชั่วโมง © 2026
        &lt;/footer&gt;
    &lt;/div&gt;

    &lt;!-- Audio Element หลัก --&gt;
    &lt;audio id=&quot;radioAudio&quot; preload=&quot;auto&quot;&gt;&lt;/audio&gt;

    &lt;script&gt;
        const audio = document.getElementById(&#39;radioAudio&#39;);
        let currentCountry = &#39;US&#39;;
        let currentTag = &#39;&#39;;
        let stations = [];
        let isPlaying = false;
        let isPlaylistMode = false;
        let currentSongIndex = 0;
        let isShuffle = true; // เปิดโหมดสุ่มเป็นค่าเริ่มต้นทันที!
        let isLoop = true;
        let myPlaylist = [];

        const ARCHIVE_IDENTIFIER = &quot;005_20261024&quot;; 

        async function loadArchivePlaylist() {
            try {
                const res = await fetch(`https://archive.org/metadata/${ARCHIVE_IDENTIFIER}`);
                const data = await res.json();
                
                const mp3Files = data.files.filter(f =&gt; f.name.toLowerCase().endsWith(&#39;.mp3&#39;));
                
                myPlaylist = mp3Files.map(f =&gt; {
                    let cleanName = decodeURIComponent(f.name).replace(&#39;.mp3&#39;, &#39;&#39;);
                    return {
                        name: cleanName,
                        url: `https://archive.org/download/${ARCHIVE_IDENTIFIER}/${f.name}`
                    };
                });
                
                console.log(&quot;Loaded songs:&quot;, myPlaylist.length);
            } catch (err) {
                console.log(&quot;Failed to load archive playlist&quot;, err);
            }
        }

        audio.addEventListener(&#39;ended&#39;, () =&gt; {
            if (isPlaylistMode) {
                playNextSong();
            }
        });

        audio.addEventListener(&#39;error&#39;, () =&gt; {
            if (isPlaylistMode) {
                setTimeout(() =&gt; playNextSong(), 1000);
            }
        });

        audio.addEventListener(&#39;timeupdate&#39;, () =&gt; {
            if (isPlaylistMode &amp;&amp; audio.duration) {
                const progress = (audio.currentTime / audio.duration) * 100;
                document.getElementById(&#39;progressBar&#39;).style.width = `${progress}%`;
                document.getElementById(&#39;currentTime&#39;).innerText = formatTime(audio.currentTime);
                document.getElementById(&#39;durationTime&#39;).innerText = formatTime(audio.duration);
            }
        });

        function formatTime(seconds) {
            if (isNaN(seconds)) return &#39;00:00&#39;;
            const min = Math.floor(seconds / 60);
            const sec = Math.floor(seconds % 60);
            return `${min &lt; 10 ? &#39;0&#39; : &#39;&#39;}${min}:${sec &lt; 10 ? &#39;0&#39; : &#39;&#39;}${sec}`;
        }

        function seekAudio(e) {
            if (isPlaylistMode &amp;&amp; audio.duration) {
                const rect = e.currentTarget.getBoundingClientRect();
                const pos = (e.clientX - rect.left) / rect.width;
                audio.currentTime = pos * audio.duration;
            }
        }

        function toggleDarkMode() {
            document.documentElement.classList.toggle(&#39;dark&#39;);
            const icon = document.getElementById(&#39;themeIcon&#39;);
            if (document.documentElement.classList.contains(&#39;dark&#39;)) {
                icon.className = &#39;fa-solid fa-sun text-amber-400 text-lg&#39;;
            } else {
                icon.className = &#39;fa-solid fa-moon text-lg&#39;;
            }
        }

        async function fetchStations() {
            isPlaylistMode = false;
            document.getElementById(&#39;progressContainer&#39;).classList.add(&#39;hidden&#39;);

            const listContainer = document.getElementById(&#39;stationList&#39;);
            listContainer.innerHTML = &#39;&lt;div class=&quot;col-span-2 text-center text-xs text-slate-400 py-4&quot;&gt;&lt;i class=&quot;fa-solid fa-circle-notch fa-spin&quot;&gt;&lt;/i&gt; กำลังโหลดสถานีวิทยุสด...&lt;/div&gt;&#39;;

            let apiUrl = `https://de1.api.radio-browser.info/json/stations/bycountrycodeexact/${currentCountry}?limit=20&amp;order=clickcount&amp;reverse=true&amp;hidebroken=true&amp;is_https=true`;
            if (currentTag) {
                apiUrl = `https://de1.api.radio-browser.info/json/stations/bytag/${currentTag}?limit=20&amp;order=clickcount&amp;reverse=true&amp;hidebroken=true&amp;is_https=true`;
            }

            try {
                const response = await fetch(apiUrl);
                stations = await response.json();

                if (stations.length === 0) {
                    listContainer.innerHTML = &#39;&lt;div class=&quot;col-span-2 text-center text-xs text-slate-400 py-4&quot;&gt;ไม่พบสถานีออนไลน์ในขณะนี้&lt;/div&gt;&#39;;
                    return;
                }

                renderStations();
                selectStation(0);
            } catch (err) {
                listContainer.innerHTML = &#39;&lt;div class=&quot;col-span-2 text-center text-xs text-red-400 py-4&quot;&gt;เกิดข้อผิดพลาดในการดึงข้อมูลสัญญาณ&lt;/div&gt;&#39;;
            }
        }

        function renderStations() {
            const listContainer = document.getElementById(&#39;stationList&#39;);
            listContainer.innerHTML = &#39;&#39;;

            stations.forEach((st, idx) =&gt; {
                const btn = document.createElement(&#39;button&#39;);
                btn.className = &#39;flex items-center justify-between p-2.5 rounded-xl border border-slate-100 dark:border-zinc-800 bg-slate-50 dark:bg-zinc-800/50 hover:bg-amber-50 dark:hover:bg-zinc-800 text-left transition-all text-xs&#39;;
                btn.onclick = () =&gt; selectStation(idx);
                btn.innerHTML = `
                    &lt;div class=&quot;truncate pr-2&quot;&gt;
                        &lt;div class=&quot;font-bold text-slate-700 dark:text-slate-200 truncate&quot;&gt;${st.name}&lt;/div&gt;
                        &lt;div class=&quot;text-[10px] text-slate-400&quot;&gt;${st.tags ? st.tags.split(&#39;,&#39;).slice(0, 2).join(&#39;, &#39;) : &#39;Music&#39;}&lt;/div&gt;
                    &lt;/div&gt;
                    &lt;i class=&quot;fa-solid fa-circle-play text-amber-500 text-sm opacity-70&quot;&gt;&lt;/i&gt;
                `;
                listContainer.appendChild(btn);
            });
        }

        function selectStation(index) {
            isPlaylistMode = false;
            audio.pause();
            isPlaying = false;
            document.getElementById(&#39;playIcon&#39;).className = &#39;fa-solid fa-play ml-1&#39;;
            document.getElementById(&#39;progressContainer&#39;).classList.add(&#39;hidden&#39;);

            const st = stations[index];
            if (!st) return;

            document.getElementById(&#39;stationTitle&#39;).innerText = st.name;
            document.getElementById(&#39;stationSub&#39;).innerText = `${st.country || &#39;&#39;} • ${st.codec || &#39;MP3&#39;} ${st.bitrate ? st.bitrate + &#39;kbps&#39; : &#39;&#39;}`;
            
            audio.src = st.url_resolved || st.url;
        }

        async function playArchivePlaylist() {
            isPlaylistMode = true;
            document.getElementById(&#39;progressContainer&#39;).classList.remove(&#39;hidden&#39;);
            
            if(myPlaylist.length === 0) {
                const listContainer = document.getElementById(&#39;stationList&#39;);
                listContainer.innerHTML = &#39;&lt;div class=&quot;col-span-2 text-center text-xs text-slate-400 py-4&quot;&gt;&lt;i class=&quot;fa-solid fa-circle-notch fa-spin&quot;&gt;&lt;/i&gt; กำลังดึงรายชื่อเพลงอัตโนมัติ...&lt;/div&gt;&#39;;
                await loadArchivePlaylist();
            }

            renderPlaylistUI();
            if(myPlaylist.length &gt; 0) {
                // ถ้าเปิดโหมดสุ่มไว้ จะสุ่มเลือกเพลงแรกทันที ไม่ให้ซ้ำซากจำเจ!
                if (isShuffle) {
                    currentSongIndex = Math.floor(Math.random() * myPlaylist.length);
                } else {
                    currentSongIndex = 0;
                }
                playSong(currentSongIndex);
            }
        }

        function renderPlaylistUI() {
            const listContainer = document.getElementById(&#39;stationList&#39;);
            listContainer.innerHTML = &#39;&#39;;

            myPlaylist.forEach((item, idx) =&gt; {
                const isActive = (isPlaylistMode &amp;&amp; currentSongIndex === idx);
                const activeClass = isActive ? &#39;border-amber-400 bg-amber-100/60 dark:bg-amber-950/40&#39; : &#39;border-emerald-200 bg-emerald-50/50 hover:bg-emerald-100 dark:bg-emerald-950/20&#39;;

                const div = document.createElement(&#39;div&#39;);
                div.className = `flex items-center justify-between p-2.5 rounded-xl border ${activeClass} text-left transition-all text-xs`;
                div.innerHTML = `
                    &lt;div class=&quot;truncate pr-2 cursor-pointer flex-1&quot; onclick=&quot;playSong(${idx})&quot;&gt;
                        &lt;div class=&quot;font-bold text-emerald-900 dark:text-emerald-300 truncate&quot;&gt;
                            &lt;i class=&quot;${isActive ? &#39;fa-solid fa-compact-disc fa-spin text-amber-600&#39; : &#39;fa-solid fa-music&#39;} mr-1&quot;&gt;&lt;/i&gt; ${item.name}
                        &lt;/div&gt;
                        &lt;div class=&quot;text-[10px] text-emerald-600 dark:text-emerald-400&quot;&gt;สถานีสวนราชินี • Auto Sync&lt;/div&gt;
                    &lt;/div&gt;
                    &lt;i class=&quot;fa-solid fa-circle-play text-emerald-600 text-base cursor-pointer hover:scale-110&quot; onclick=&quot;playSong(${idx})&quot; title=&quot;เล่นเพลง&quot;&gt;&lt;/i&gt;
                `;
                listContainer.appendChild(div);
            });
        }

        function playSong(idx) {
            if (myPlaylist.length === 0) return;
            
            isPlaylistMode = true;
            currentSongIndex = idx;
            const song = myPlaylist[idx];
            if(!song) return;

            document.getElementById(&#39;stationTitle&#39;).innerText = song.name;
            document.getElementById(&#39;stationSub&#39;).innerText = `เพลงที่ ${idx + 1} จากทั้งหมด ${myPlaylist.length} เพลง • สวนราชินี`;

            renderPlaylistUI();

            audio.src = song.url;
            audio.play().then(() =&gt; {
                isPlaying = true;
                document.getElementById(&#39;playIcon&#39;).className = &#39;fa-solid fa-pause&#39;;
            }).catch(err =&gt; {
                console.log(&quot;Stream play error&quot;);
            });
        }

        function playNextSong() {
            if (!isPlaylistMode || myPlaylist.length === 0) return;

            if (isShuffle) {
                // สุ่มเพลงถัดไปแบบไม่ซ้ำตัวเดิม (ถ้าเป็นไปได้) หรือสุ่มจากทั้งหมด
                let nextIdx;
                do {
                    nextIdx = Math.floor(Math.random() * myPlaylist.length);
                } while (nextIdx === currentSongIndex &amp;&amp; myPlaylist.length &gt; 1);
                currentSongIndex = nextIdx;
            } else {
                currentSongIndex++;
                if (currentSongIndex &gt;= myPlaylist.length) {
                    if (isLoop) currentSongIndex = 0;
                    else return;
                }
            }
            playSong(currentSongIndex);
        }

        function playPrevSong() {
            if (!isPlaylistMode || myPlaylist.length === 0) return;

            if (isShuffle) {
                currentSongIndex = Math.floor(Math.random() * myPlaylist.length);
            } else {
                currentSongIndex--;
                if (currentSongIndex &lt; 0) {
                    currentSongIndex = myPlaylist.length - 1;
                }
            }
            playSong(currentSongIndex);
        }

        function toggleShuffle() {
            isShuffle = !isShuffle;
            const btn = document.getElementById(&#39;shuffleBtn&#39;);
            btn.className = isShuffle ? &#39;p-2.5 rounded-full text-amber-500 transition-colors text-sm font-bold&#39; : &#39;p-2.5 rounded-full text-slate-400 hover:text-amber-500 transition-colors text-sm&#39;;
        }

        function toggleLoop() {
            isLoop = !isLoop;
            const btn = document.getElementById(&#39;loopBtn&#39;);
            btn.className = isLoop ? &#39;p-2.5 rounded-full text-amber-500 transition-colors text-sm font-bold&#39; : &#39;p-2.5 rounded-full text-slate-400 hover:text-amber-500 transition-colors text-sm&#39;;
        }

        function togglePlay() {
            const playIcon = document.getElementById(&#39;playIcon&#39;);
            if (isPlaying) {
                audio.pause();
                playIcon.className = &#39;fa-solid fa-play ml-1&#39;;
                isPlaying = false;
            } else {
                audio.play().then(() =&gt; {
                    playIcon.className = &#39;fa-solid fa-pause&#39;;
                    isPlaying = true;
                }).catch(err =&gt; {
                    alert(&#39;กรุณาเลือกสถานีวิทยุหรือกดเล่นสถานีสวนราชินีครับ&#39;);
                });
            }
        }

        function setVolume(val) { audio.volume = val; }

        function updateActiveButton(target) {
            document.querySelectorAll(&#39;.country-btn&#39;).forEach(btn =&gt; {
                btn.className = &#39;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-slate-100 dark:bg-zinc-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200&#39;;
            });
            if (target) {
                target.className = &#39;country-btn px-3 py-1.5 rounded-xl text-xs font-medium bg-amber-500 text-white shadow-sm&#39;;
            }
        }

        function changeCountry(code) {
            currentCountry = code;
            currentTag = &#39;&#39;;
            updateActiveButton(event.target);
            fetchStations();
        }

        function changeTag(tag) {
            currentTag = tag;
            updateActiveButton(event.target);
            fetchStations();
        }

        function testSpeaker() {
            const ctx = new (window.AudioContext || window.webkitAudioContext)();
            const osc = ctx.createOscillator();
            const gain = ctx.createGain();
            osc.connect(gain);
            gain.connect(ctx.destination);
            osc.frequency.value = 440;
            gain.gain.value = 0.1;
            osc.start();
            setTimeout(() =&gt; osc.stop(), 500);
        }

        // โหลดลิสต์เพลงอัตโนมัติ และตั้งค่าให้สุ่มเล่นเพลงแรกทันทีเมื่อเข้าเว็บ!
        loadArchivePlaylist().then(() =&gt; {
            if (myPlaylist.length &gt; 0) {
                currentSongIndex = Math.floor(Math.random() * myPlaylist.length);
            }
        });
        fetchStations();
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/4728664105178587862/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/4728664105178587862' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/4728664105178587862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/4728664105178587862'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/blog-post_24.html' title='  วิทยุออนไลน์ ลุงแจ่ม อารมณ์ดี'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-5157581378061388803</id><published>2026-10-24T08:44:13.922+07:00</published><updated>2026-10-24T09:33:29.965+07:00</updated><title type='text'>ขั้นตอนการย้ายโฟลเดอร์ Downloads ไปไว้ไดร์อื่น คอมล่มงานไม่หาย</title><content type='html'>&lt;article style=&quot;font-family: &#39;Sarabun&#39;, sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: auto; padding: 20px;&quot;&gt;
    &lt;h2 style=&quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&quot;&gt;วิธีเปลี่ยนที่เก็บโฟลเดอร์ Downloads ไปไดรฟ์อื่น (เช่น ไดรฟ์ D) เพื่อเพิ่มพื้นที่ในไดรฟ์ C&lt;/h2&gt;
    
    &lt;p&gt;สำหรับใครที่ใช้งานคอมพิวเตอร์ Windows แล้วพบว่าไดรฟ์ C: เต็มเร็วมาก เนื่องจากชอบดาวน์โหลดไฟล์เกม หนัง หรือไฟล์ขนาดใหญ่เก็บไว้ การย้ายโฟลเดอร์ &lt;strong&gt;Downloads&lt;/strong&gt; ไปไว้ที่ไดรฟ์อื่น เช่น ไดรฟ์ D: จะช่วยเคลียร์พื้นที่ในไดรฟ์ C ให้กลับมาว่างและทำงานได้ลื่นไหลขึ้นครับ สามารถทำตามขั้นตอนง่ายๆ ด้านล่างนี้ได้เลยครับ&lt;/p&gt;

    &lt;h3 style=&quot;color: #2980b9; margin-top: 20px;&quot;&gt;ขั้นตอนการย้ายโฟลเดอร์ Downloads-ลุงแจ่ม อารมณ์ดี&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;เปิดโปรแกรม &lt;strong&gt;File Explorer(กดปุ่ม Windows + E) &lt;/strong&gt; ขึ้นมา แล้วคลิกขวาที่โฟลเดอร์ &lt;strong&gt;Downloads (มักจะอยู่ตรงเมนูด้านซ้าย หรือในหัวข้อ This PC) &lt;/strong&gt; เลือก &lt;strong&gt;Properties&lt;/strong&gt; (คุณสมบัติ)&lt;/li&gt;
        &lt;li&gt;ไปที่แท็บ &lt;strong&gt;Location&lt;/strong&gt; (ตำแหน่งที่ตั้ง)ด้านบน  จะแสดงตำแหน่งปัจจุบันของโฟลเดอร์ ดังภาพตัวอย่างด้านล่าง&lt;/li&gt;
    &lt;/ol&gt;

    &lt;!-- ภาพประกอบที่ 1: หน้าต่าง Properties แท็บ Location --&gt;
    &lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
        &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYmGfJNAUohZJ9KIeXVFQKVtb9BMJnzP55WfTFLNp1AszXsmyEP915F6teIYnrHrD-2WI1qnYk3EPdGLhNULxxB-it4FBRuzlHcGKiUYqlCBBJmnScGd9QVmQ6P7OKfAZluUG1W4uyxbJ-j0dOnVfIOMjGPOmVrNQ9gi94vWfOpjY7H9NqwFTLd1ugFU/s549/Screenshot%202026-10-24%20083254.png&quot; style=&quot;display: block; padding: 1em 0px; text-align: center;&quot;&gt;
            &lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;549&quot; data-original-width=&quot;527&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYmGfJNAUohZJ9KIeXVFQKVtb9BMJnzP55WfTFLNp1AszXsmyEP915F6teIYnrHrD-2WI1qnYk3EPdGLhNULxxB-it4FBRuzlHcGKiUYqlCBBJmnScGd9QVmQ6P7OKfAZluUG1W4uyxbJ-j0dOnVfIOMjGPOmVrNQ9gi94vWfOpjY7H9NqwFTLd1ugFU/s320/Screenshot%202026-10-24%20083254.png&quot; /&gt;
        &lt;/a&gt;
    &lt;/div&gt;

    &lt;ol start=&quot;3&quot;&gt;
        &lt;li&gt;คลิกปุ่ม &lt;strong&gt;Move...(ย้าย...)&lt;/strong&gt;หน้าต่างเลือกโฟลเดอร์จะเด้งขึ้นมา ให้คุณเข้าไปเลือกไดรฟ์ปลายทางที่ต้องการ เพื่อเลือกโฟลเดอร์ปลายทางใหม่ในไดรฟ์อื่น (แนะนำให้สร้างโฟลเดอร์ชื่อ &lt;code&gt;Downloads&lt;/code&gt; ไว้รอ in ไดรฟ์ D ก่อน) จากนั้นคลิกเลือกโฟลเดอร์นั้นแล้วกด Select Folder&lt;/li&gt;
        &lt;li&gt;เมื่อเลือกโฟลเดอร์ปลายทางเรียบร้อยแล้ว พาธจะเปลี่ยนเป็นไดรฟ์ใหม่ เช่น &lt;strong&gt;D:\Downloads&lt;/strong&gt; ดังภาพตัวอย่าง&lt;/li&gt;
    &lt;/ol&gt;

    &lt;!-- ภาพประกอบที่ 2: เปลี่ยนพาธเป็น D:\Downloads และเตรียมกด Apply --&gt;
    &lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
        &lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLC-GobZYGjqp1GEsVHEaX25jB7jkxi3g_23NfET9Wydr2kC1URRCShq00Sy75k86P2VYqOdmHROyzlNHvFjdXYbEYGf1KoWDsUJjOBrTiJsHqEw9D9Wy_cVMWbAum97uWyxr3y5ZOW7zwEAROdmkfrBnVUggS9IBfHRjI9lcJSH8wYt0lWi2Hsmwemo/s521/Screenshot%202026-10-24%20083613.png&quot; style=&quot;display: block; padding: 1em 0px; text-align: center;&quot;&gt;
            &lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;521&quot; data-original-width=&quot;407&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLC-GobZYGjqp1GEsVHEaX25jB7jkxi3g_23NfET9Wydr2kC1URRCShq00Sy75k86P2VYqOdmHROyzlNHvFjdXYbEYGf1KoWDsUJjOBrTiJsHqEw9D9Wy_cVMWbAum97uWyxr3y5ZOW7zwEAROdmkfrBnVUggS9IBfHRjI9lcJSH8wYt0lWi2Hsmwemo/s320/Screenshot%202026-10-24%20083613.png&quot; /&gt;
        &lt;/a&gt;
    &lt;/div&gt;

    &lt;ol start=&quot;5&quot;&gt;
        &lt;li&gt;คลิกปุ่ม &lt;strong&gt;Apply&lt;/strong&gt; (มุมขวาล่าง) ระบบจะถามว่าคุณต้องการย้ายไฟล์เก่าทั้งหมดไปยังตำแหน่งใหม่หรือไม่ ให้กด &lt;strong&gt;Yes&lt;/strong&gt; จากนั้นกด &lt;strong&gt;OK&lt;/strong&gt; เพียงเท่านี้ โฟลเดอร์ Downloads ของคุณก็จะถูกย้ายไปเก็บไว้ในไดรฟ์ใหม่เรียบร้อยแล้วครับ! ติดขัดขั้นตอนไหนสอบถามเพิ่มเติมได้เลย&lt;/li&gt;
    &lt;/ol&gt;
&lt;/article&gt;









&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLC-GobZYGjqp1GEsVHEaX25jB7jkxi3g_23NfET9Wydr2kC1URRCShq00Sy75k86P2VYqOdmHROyzlNHvFjdXYbEYGf1KoWDsUJjOBrTiJsHqEw9D9Wy_cVMWbAum97uWyxr3y5ZOW7zwEAROdmkfrBnVUggS9IBfHRjI9lcJSH8wYt0lWi2Hsmwemo/s521/Screenshot%202026-10-24%20083613.png&quot; style=&quot;display: block; padding: 1em 0px; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYmGfJNAUohZJ9KIeXVFQKVtb9BMJnzP55WfTFLNp1AszXsmyEP915F6teIYnrHrD-2WI1qnYk3EPdGLhNULxxB-it4FBRuzlHcGKiUYqlCBBJmnScGd9QVmQ6P7OKfAZluUG1W4uyxbJ-j0dOnVfIOMjGPOmVrNQ9gi94vWfOpjY7H9NqwFTLd1ugFU/s549/Screenshot%202026-10-24%20083254.png&quot; style=&quot;display: block; padding: 1em 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;549&quot; data-original-width=&quot;527&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYmGfJNAUohZJ9KIeXVFQKVtb9BMJnzP55WfTFLNp1AszXsmyEP915F6teIYnrHrD-2WI1qnYk3EPdGLhNULxxB-it4FBRuzlHcGKiUYqlCBBJmnScGd9QVmQ6P7OKfAZluUG1W4uyxbJ-j0dOnVfIOMjGPOmVrNQ9gi94vWfOpjY7H9NqwFTLd1ugFU/s320/Screenshot%202026-10-24%20083254.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLC-GobZYGjqp1GEsVHEaX25jB7jkxi3g_23NfET9Wydr2kC1URRCShq00Sy75k86P2VYqOdmHROyzlNHvFjdXYbEYGf1KoWDsUJjOBrTiJsHqEw9D9Wy_cVMWbAum97uWyxr3y5ZOW7zwEAROdmkfrBnVUggS9IBfHRjI9lcJSH8wYt0lWi2Hsmwemo/s521/Screenshot%202026-10-24%20083613.png&quot; style=&quot;display: block; padding: 1em 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;521&quot; data-original-width=&quot;407&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLC-GobZYGjqp1GEsVHEaX25jB7jkxi3g_23NfET9Wydr2kC1URRCShq00Sy75k86P2VYqOdmHROyzlNHvFjdXYbEYGf1KoWDsUJjOBrTiJsHqEw9D9Wy_cVMWbAum97uWyxr3y5ZOW7zwEAROdmkfrBnVUggS9IBfHRjI9lcJSH8wYt0lWi2Hsmwemo/s320/Screenshot%202026-10-24%20083613.png&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLC-GobZYGjqp1GEsVHEaX25jB7jkxi3g_23NfET9Wydr2kC1URRCShq00Sy75k86P2VYqOdmHROyzlNHvFjdXYbEYGf1KoWDsUJjOBrTiJsHqEw9D9Wy_cVMWbAum97uWyxr3y5ZOW7zwEAROdmkfrBnVUggS9IBfHRjI9lcJSH8wYt0lWi2Hsmwemo/s521/Screenshot%202026-10-24%20083613.png&quot; style=&quot;display: block; padding: 1em 0px; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWLC-GobZYGjqp1GEsVHEaX25jB7jkxi3g_23NfET9Wydr2kC1URRCShq00Sy75k86P2VYqOdmHROyzlNHvFjdXYbEYGf1KoWDsUJjOBrTiJsHqEw9D9Wy_cVMWbAum97uWyxr3y5ZOW7zwEAROdmkfrBnVUggS9IBfHRjI9lcJSH8wYt0lWi2Hsmwemo/s521/Screenshot%202026-10-24%20083613.png&quot; style=&quot;display: block; padding: 1em 0px; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/5157581378061388803/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/5157581378061388803' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5157581378061388803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5157581378061388803'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/downloads.html' title='ขั้นตอนการย้ายโฟลเดอร์ Downloads ไปไว้ไดร์อื่น คอมล่มงานไม่หาย'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYmGfJNAUohZJ9KIeXVFQKVtb9BMJnzP55WfTFLNp1AszXsmyEP915F6teIYnrHrD-2WI1qnYk3EPdGLhNULxxB-it4FBRuzlHcGKiUYqlCBBJmnScGd9QVmQ6P7OKfAZluUG1W4uyxbJ-j0dOnVfIOMjGPOmVrNQ9gi94vWfOpjY7H9NqwFTLd1ugFU/s72-c/Screenshot%202026-10-24%20083254.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-7203832255204748902</id><published>2026-10-24T08:16:59.399+07:00</published><updated>2026-10-24T08:26:10.672+07:00</updated><title type='text'>วิธีแก้ปัญหาปุ่ม Print Screen (PrtScn) กดไม่ติด หรือจับภาพหน้าจอไม่ได้ บน Windows</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHF0vduXzdPXvLsbRV72F-5_ur5L1ON3BkSp8OaP7vwZaFEBrlPZlsQFY-BWkN_V8x3j5B9nBZ0w4KaVHEQoQj3Jf7BL44Y_7s87LbRMQSWwTazY3VMI0dacNLzOzX228demsodwI57B07OYboq69_mwRC656yJ2oUswCNlLgQ2RM1PPJ6fyMtM8bPm0Q/s801/Screenshot%202026-10-24%20081246.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;637&quot; data-original-width=&quot;801&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHF0vduXzdPXvLsbRV72F-5_ur5L1ON3BkSp8OaP7vwZaFEBrlPZlsQFY-BWkN_V8x3j5B9nBZ0w4KaVHEQoQj3Jf7BL44Y_7s87LbRMQSWwTazY3VMI0dacNLzOzX228demsodwI57B07OYboq69_mwRC656yJ2oUswCNlLgQ2RM1PPJ6fyMtM8bPm0Q/s320/Screenshot%202026-10-24%20081246.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

&lt;article style=&quot;font-family: &#39;Sarabun&#39;, sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: auto; padding: 20px;&quot;&gt;
    &lt;h2 style=&quot;color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 8px;&quot;&gt;วิธีแก้ปัญหาปุ่ม Print Screen (PrtScn) กดไม่ติด หรือจับภาพหน้าจอไม่ได้ บน Windows เขียนโดย ลุงแจ่ม อารมณ์ดี&lt;/h2&gt;
    
    &lt;p&gt;หากคุณพบปัญหาว่ากดปุ่ม &lt;strong&gt;Print Screen (PrtScn)&lt;/strong&gt; บนคีย์บอร์ดแล้วไม่มีอะไรเกิดขึ้น หรือไม่ยอมเปิดเครื่องมือจับภาพหน้าจอ ไม่ต้องกังวลครับ สามารถตรวจสอบและแก้ไขได้ตามขั้นตอนง่ายๆ ด้านล่างนี้เลยครับ&lt;/p&gt;

    &lt;h3 style=&quot;color: #2980b9; margin-top: 20px;&quot;&gt;1. ตรวจสอบการตั้งค่าเปิดใช้งานปุ่ม Print Screen ใน Windows&lt;/h3&gt;
    &lt;p&gt;บางครั้งระบบอาจจะยังไม่ได้เปิดใช้งานฟังก์ชันเรียกเครื่องมือตัดต่อภาพหน้าจอ ให้เข้าไปเปิดตามนี้ครับ:&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;กดปุ่ม &lt;strong&gt;Windows + I&lt;/strong&gt; เพื่อเปิดหน้า &lt;strong&gt;Settings (การตั้งค่า)&lt;/strong&gt;&lt;/li&gt;
        &lt;li&gt;ไปที่เมนู &lt;strong&gt;Ease of Access&lt;/strong&gt; (สำหรับ Windows 10) หรือ &lt;strong&gt;Accessibility&lt;/strong&gt; (สำหรับ Windows 11) &gt; เลือก &lt;strong&gt;Keyboard&lt;/strong&gt; (แป้นพิมพ์)&lt;/li&gt;
        &lt;li&gt;มองหาหัวข้อ &lt;strong&gt;Print Screen shortcut&lt;/strong&gt; แล้วเปิดสวิตช์ตรง &lt;em&gt;&quot;Use the PrtScn button to open screen snipping&quot;&lt;/em&gt; ให้เป็น &lt;strong&gt;On&lt;/strong&gt; ดังภาพตัวอย่างด้านล่าง&lt;/li&gt;
    &lt;/ul&gt;

    &lt;!-- ภาพประกอบจากผู้ใช้งาน --&gt;
    &lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHF0vduXzdPXvLsbRV72F-5_ur5L1ON3BkSp8OaP7vwZaFEBrlPZlsQFY-BWkN_V8x3j5B9nBZ0w4KaVHEQoQj3Jf7BL44Y_7s87LbRMQSWwTazY3VMI0dacNLzOzX228demsodwI57B07OYboq69_mwRC656yJ2oUswCNlLgQ2RM1PPJ6fyMtM8bPm0Q/s801/Screenshot%202026-10-24%20081246.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;637&quot; data-original-width=&quot;801&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHF0vduXzdPXvLsbRV72F-5_ur5L1ON3BkSp8OaP7vwZaFEBrlPZlsQFY-BWkN_V8x3j5B9nBZ0w4KaVHEQoQj3Jf7BL44Y_7s87LbRMQSWwTazY3VMI0dacNLzOzX228demsodwI57B07OYboq69_mwRC656yJ2oUswCNlLgQ2RM1PPJ6fyMtM8bPm0Q/s320/Screenshot%202026-10-24%20081246.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;

    &lt;h3 style=&quot;color: #2980b9; margin-top: 20px;&quot;&gt;2. ใช้คีย์ลัดสำรองของ Windows (กรณีจำเป็น)&lt;/h3&gt;
    &lt;p&gt;หากปุ่มบนคีย์บอร์ดเสียหรือไม่ตอบสนอง สามารถใช้ชุดคีย์ลัดนี้แทนได้ทันที:&lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;กด &lt;strong&gt;Windows + Shift + S&lt;/strong&gt; พร้อมกัน หน้าจอจะมืดลงเล็กน้อยเพื่อให้คุณใช้เมาส์ลากเลือกพื้นที่ที่ต้องการแคปภาพได้ทันที ภาพจะถูกบันทึกลงคลิปบอร์ด สามารถกด &lt;strong&gt;Ctrl + V&lt;/strong&gt; เพื่อวางในแชทหรือโปรแกรมแต่งภาพได้เลย&lt;/li&gt;
    &lt;/ul&gt;

    &lt;h3 style=&quot;color: #2980b9; margin-top: 20px;&quot;&gt;3. สำหรับผู้ใช้โน้ตบุ๊ก (ลองกดคู่กับปุ่ม Fn)&lt;/h3&gt;
    &lt;p&gt;บนคีย์บอร์ดโน้ตบุ๊กหลายรุ่น ปุ่ม Print Screen อาจใช้งานร่วมกับฟังก์ชันอื่น ให้ลองกด &lt;strong&gt;Fn + PrtScn&lt;/strong&gt; หรือ &lt;strong&gt;Windows + Fn + PrtScn&lt;/strong&gt; พร้อมกันดูครับ&lt;/p&gt;

    &lt;h3 style=&quot;color: #2980b9; margin-top: 20px;&quot;&gt;4. รีสตาร์ทคอมพิวเตอร์ (Restart)&lt;/h3&gt;
    &lt;p&gt;หลังจากเปิดตั้งค่าสวิตช์ On แล้ว หากยังใช้งานไม่ได้ แนะนำให้ทำการรีสตาร์ทเครื่อง 1 รอบ เพื่อให้ระบบบันทึกและอัปเดตการตั้งค่าใหม่อย่างสมบูรณ์ครับ&lt;/p&gt;
&lt;/article&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/7203832255204748902/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/7203832255204748902' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/7203832255204748902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/7203832255204748902'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/print-screen-prtscn-windows.html' title='วิธีแก้ปัญหาปุ่ม Print Screen (PrtScn) กดไม่ติด หรือจับภาพหน้าจอไม่ได้ บน Windows'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHF0vduXzdPXvLsbRV72F-5_ur5L1ON3BkSp8OaP7vwZaFEBrlPZlsQFY-BWkN_V8x3j5B9nBZ0w4KaVHEQoQj3Jf7BL44Y_7s87LbRMQSWwTazY3VMI0dacNLzOzX228demsodwI57B07OYboq69_mwRC656yJ2oUswCNlLgQ2RM1PPJ6fyMtM8bPm0Q/s72-c/Screenshot%202026-10-24%20081246.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-1005800985903303143</id><published>2026-10-23T22:40:20.965+07:00</published><updated>2026-10-23T22:43:58.770+07:00</updated><title type='text'> ระบบพิมพ์ใบเสร็จรับเงิน / ใบกำกับภาษีอัจฉริยะ (TaxInvoice App)</title><content type='html'>&lt;div style=&quot;font-family: &#39;Sarabun&#39;, sans-serif; max-width: 800px; margin: 0 auto; background: #f8fafc; padding: 20px; border-radius: 16px; border: 1px solid #e2e8f0;&quot;&gt;
    
    &lt;!-- หัวข้อบทความ --&gt;
    &lt;h2 style=&quot;color: #1e293b; text-align: center; font-size: 22px; margin-bottom: 5px;&quot;&gt;📄 ระบบพิมพ์ใบเสร็จรับเงิน / ใบกำกับภาษีอัจฉริยะ (TaxInvoice App)&lt;/h2&gt;
    &lt;p style=&quot;text-align: center; color: #64748b; font-size: 13px; margin-bottom: 20px;&quot;&gt;โปรแกรมเดสก์ท็อปใช้งานง่าย ไม่ต้องใช้อินเทอร์เน็ต ข้อมูลปลอดภัยเก็บไว้ในเครื่องของคุณเอง&lt;/p&gt;

    &lt;!-- กล่องดาวน์โหลดและตัวนับคลิก --&gt;
    &lt;div style=&quot;background: #ffffff; padding: 20px; border-radius: 12px; text-align: center; border: 1px solid #cbd5e1; margin-bottom: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.05);&quot;&gt;
        &lt;p style=&quot;font-size: 15px; font-weight: bold; color: #334155; margin-bottom: 12px;&quot;&gt;📥 ดาวน์โหลดโปรแกรมเวอร์ชันล่าสุด&lt;/p&gt;
        
        &lt;!-- ปุ่มดาวน์โหลดพร้อมลิงก์ Google Drive ของลุง --&gt;
        &lt;a id=&quot;downloadBtn&quot; href=&quot;https://drive.google.com/file/d/1RjhjNwqScvJFuprl1zA4sypZd8Z-H2EZ/view?usp=drive_link&quot; target=&quot;_blank&quot; onclick=&quot;incrementDownloadCount()&quot; style=&quot;background: #2563eb; color: white; padding: 12px 28px; text-decoration: none; border-radius: 8px; font-weight: bold; display: inline-block; font-size: 15px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);&quot;&gt;💾 ดาวน์โหลด TaxInvoice.exe&lt;/a&gt;
        
        &lt;p style=&quot;margin-top: 12px; font-size: 13px; color: #64748b;&quot;&gt;จำนวนครั้งที่มีผู้ดาวน์โหลด: &lt;span id=&quot;downloadCount&quot; style=&quot;font-weight: bold; color: #2563eb;&quot;&gt;158&lt;/span&gt; ครั้ง&lt;/p&gt;
    &lt;/div&gt;

    &lt;!-- กล่องบอกรหัสผ่าน --&gt;
    &lt;div style=&quot;background: #eff6ff; border: 1px solid #bfdbfe; padding: 15px; border-radius: 10px; margin-bottom: 20px;&quot;&gt;
        &lt;h4 style=&quot;margin: 0 0 5px 0; color: #1e40af; font-size: 14px;&quot;&gt;🔑 รหัสผ่านเริ่มต้นสำหรับเข้าใช้งานครั้งแรก:&lt;/h4&gt;
        &lt;p style=&quot;margin: 0; font-size: 18px; font-weight: bold; color: #1d4ed8; letter-spacing: 2px;&quot;&gt;000000&lt;/p&gt;
    &lt;/div&gt;

    &lt;!-- คุณสมบัติเด่นของโปรแกรม --&gt;
    &lt;div style=&quot;background: #ffffff; padding: 20px; border-radius: 12px; border: 1px solid #cbd5e1; margin-bottom: 20px;&quot;&gt;
        &lt;h3 style=&quot;color: #1e293b; font-size: 16px; border-bottom: 2px solid #e2e8f0; padding-bottom: 8px; margin-top: 0;&quot;&gt;✨ คุณสมบัติเด่นของโปรแกรม&lt;/h3&gt;
        &lt;ul style=&quot;color: #334155; font-size: 14px; line-height: 1.6; padding-left: 20px; margin-bottom: 0;&quot;&gt;
            &lt;li&gt;&lt;strong&gt;เลือกประเภทเอกสารได้:&lt;/strong&gt; รองรับทั้ง &quot;ต้นฉบับ (ORIGINAL)&quot; และ &quot;สำเนา (COPY)&quot; พร้อมระบบเล่มที่ 1-50&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;รันเลขที่อัตโนมัติ:&lt;/strong&gt; มีปุ่มกดรันเลขที่ใบเสร็จรับเงินให้อัตโนมัติ สะดวก ไม่ต้องพิมพ์ซ้ำ&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;ระบบบันทึกข้อมูล (LocalStorage):&lt;/strong&gt; บันทึกข้อมูลผู้ขายและลูกค้าเก็บไว้ในเครื่อง เรียกใช้งานซ้ำได้ทันที&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;คำนวณเงินอัตโนมัติ:&lt;/strong&gt; คิดส่วนลด ค่าขนส่ง และ VAT 7% พร้อมแปลงยอดรวมสุทธิเป็นตัวหนังสือภาษาไทยให้อัตโนมัติ&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;รองรับการพิมพ์และออก PDF:&lt;/strong&gt; จัดรูปแบบพอดีกับกระดาษ A4 สวยงามเป็นทางการ&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;!-- คำแนะนำการติดตั้ง --&gt;
    &lt;div style=&quot;background: #ffffff; padding: 20px; border-radius: 12px; border: 1px solid #cbd5e1;&quot;&gt;
        &lt;h3 style=&quot;color: #1e293b; font-size: 16px; border-bottom: 2px solid #e2e8f0; padding-bottom: 8px; margin-top: 0;&quot;&gt;📌 คำแนะนำการติดตั้งและใช้งาน&lt;/h3&gt;
        &lt;ol style=&quot;color: #334155; font-size: 14px; line-height: 1.6; padding-left: 20px; margin-bottom: 0;&quot;&gt;
            &lt;li&gt;สามารถย้ายโฟลเดอร์โปรแกรมไปวางไว้ที่ไดรฟ์ไหนก็ได้ (เช่น ไดรฟ์ D:, E:, F:)&lt;/li&gt;
            &lt;li&gt;สร้างทางลัด (Shortcut) มาไว้ที่หน้าจอ Desktop โดยคลิกขวาที่ &lt;code&gt;TaxInvoice.exe&lt;/code&gt; เลือก &lt;em&gt;Send to &gt; Desktop (create shortcut)&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;เปิดโปรแกรมและกรอกรหัสผ่าน &lt;code&gt;000000&lt;/code&gt; เพื่อเข้าสู่ระบบ&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

&lt;/div&gt;

&lt;!-- สคริปต์ตัวนับจำนวนคลิกดาวน์โหลด --&gt;
&lt;script&gt;
    let count = localStorage.getItem(&#39;tax_invoice_downloads&#39;) || 158;
    document.getElementById(&#39;downloadCount&#39;).innerText = count;
    function incrementDownloadCount() {
        count++;
        localStorage.setItem(&#39;tax_invoice_downloads&#39;, count);
        document.getElementById(&#39;downloadCount&#39;).innerText = count;
    }
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/1005800985903303143/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/1005800985903303143' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/1005800985903303143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/1005800985903303143'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/taxinvoice-app.html' title=' ระบบพิมพ์ใบเสร็จรับเงิน / ใบกำกับภาษีอัจฉริยะ (TaxInvoice App)'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-6967747529917298825</id><published>2026-10-23T10:36:45.615+07:00</published><updated>2026-10-23T10:36:45.615+07:00</updated><title type='text'>ดาวน์โหลดโปรแกรม Word Mini v1.0</title><content type='html'>&lt;article class=&quot;blog-post&quot;&gt;
  &lt;style&gt;
    .blog-post {
      font-family: &#39;Sarabun&#39;, &#39;Prompt&#39;, sans-serif;
      line-height: 1.8;
      color: #2c3e50;
      max-width: 800px;
      margin: 0 auto;
      padding: 20px;
      background: #ffffff;
    }

    .post-header {
      text-align: center;
      padding-bottom: 20px;
      border-bottom: 2px solid #eef2f5;
      margin-bottom: 25px;
    }

    .post-title {
      font-size: 28px;
      color: #1a365d;
      margin-bottom: 10px;
      font-weight: 700;
    }

    .post-subtitle {
      font-size: 16px;
      color: #718096;
    }

    .feature-card {
      background: #f8fafc;
      border-left: 4px solid #3182ce;
      padding: 20px;
      margin: 20px 0;
      border-radius: 0 8px 8px 0;
    }

    .feature-card h3 {
      margin-top: 0;
      color: #2b6cb0;
      font-size: 20px;
    }

    .feature-list {
      padding-left: 20px;
      margin: 10px 0;
    }

    .feature-list li {
      margin-bottom: 8px;
    }

    /* กล่องดาวน์โหลด */
    .download-box {
      background: linear-gradient(135deg, #ebf8ff 0%, #cee3f8 100%);
      border: 2px dashed #3182ce;
      border-radius: 12px;
      padding: 30px;
      text-align: center;
      margin: 35px 0;
      box-shadow: 0 4px 12px rgba(49, 130, 206, 0.1);
    }

    .download-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      background: #2b6cb0;
      color: #ffffff !important;
      font-size: 18px;
      font-weight: bold;
      padding: 14px 32px;
      border-radius: 50px;
      text-decoration: none;
      box-shadow: 0 4px 10px rgba(43, 108, 176, 0.3);
      transition: all 0.2s ease;
      cursor: pointer;
      border: none;
    }

    .download-btn:hover {
      background: #2c5282;
      transform: translateY(-2px);
      box-shadow: 0 6px 15px rgba(43, 108, 176, 0.4);
    }

    .download-stats {
      margin-top: 15px;
      font-size: 14px;
      color: #4a5568;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
    }

    .counter-badge {
      background: #3182ce;
      color: #ffffff;
      padding: 2px 10px;
      border-radius: 12px;
      font-weight: bold;
    }
  &lt;/style&gt;

  &lt;header class=&quot;post-header&quot;&gt;
    &lt;h1 class=&quot;post-title&quot;&gt;แจกฟรี! โปรแกรมพิมพ์เอกสาร (Word Mini) เอนกประสงค์ ใช้งานง่าย ไม่ต้องติดตั้ง&lt;/h1&gt;
    &lt;p class=&quot;post-subtitle&quot;&gt;เปิดปุ๊บ พิมพ์ปั๊บ รองรับตาราง รูปภาพ พร้อมเซฟเป็นไฟล์ Word (.doc) ได้ทันที&lt;/p&gt;
  &lt;/header&gt;

  &lt;section&gt;
    &lt;p&gt;สวัสดีครับทุกท่าน วันนี้ขอแนะนำเว็บแอปพลิเคชันเดสก์ท็อปขนาดจิ๋วแต่แจ๋ว นั่นคือ &lt;strong&gt;&quot;โปรแกรมพิมพ์เอกสาร (Word Mini)&quot;&lt;/strong&gt; เหมาะสำหรับท่านที่ต้องการพิมพ์งานเอกสารด่วน บันทึกข้อความ หรือจัดทำตารางแบบรวดเร็ว โดยไม่ต้องเสียเวลารอโหลดโปรแกรมใหญ่ๆ ครับ&lt;/p&gt;

    &lt;div class=&quot;feature-card&quot;&gt;
      &lt;h3&gt;✨ คุณสมบัติเด่นของโปรแกรม Word Mini&lt;/h3&gt;
      &lt;ul class=&quot;feature-list&quot;&gt;
        &lt;li&gt;&lt;strong&gt;บันทึกเป็นไฟล์ Word ได้ทันที:&lt;/strong&gt; พิมพ์งานเสร็จแล้ว กดปุ่มดาวน์โหลดออกเป็นไฟล์ &lt;code&gt;.doc&lt;/code&gt; เพื่อนำไปเปิดใน Microsoft Word หรือส่งต่อให้เพื่อนร่วมงานได้ทันที&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;จัดตาราง &amp;amp; กล่องข้อความอิสระ:&lt;/strong&gt; แทรกตาราง ปรับเพิ่ม-ลบ แถว/คอลัมน์ พร้อมกล่องข้อความและรูปภาพลอยตัวที่ลากย้ายตำแหน่ง ย่อ-ขยายได้อย่างอิสระ&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;ฟอนต์ไทยมาตรฐานครบครัน:&lt;/strong&gt; เลือกรวมฟอนต์ยอดนิยมอย่าง สารบัญ (Sarabun), พรอมต์ (Prompt), คนิต (Kanit), มิตร (Mitr) และ TH Sarabun PSK ปรับขนาดและสีอักษรได้ตามใจชอบ&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;พิมพ์ &amp;amp; เซฟเป็น PDF:&lt;/strong&gt; รองรับการสั่งพิมพ์ผ่านเครื่องพิมพ์ (Printer) หรือบันทึกเป็นไฟล์ PDF ขนาด A4 ได้เป๊ะ ไม่เพี้ยน&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;บันทึกงานไว้อ่านต่อได้:&lt;/strong&gt; มีระบบ Auto-Save บันทึกงานลงในเครื่องให้อัตโนมัติ ไม่ต้องกลัวงานหายเวลาเผลอปิดหน้าจอ&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;
  &lt;/section&gt;

  &lt;!-- โซนปุ่มดาวน์โหลดพร้อมตัวนับจำนวนคลิก --&gt;
  &lt;section class=&quot;download-box&quot;&gt;
    &lt;h3 style=&quot;margin-top: 0; color: #2c5282; margin-bottom: 10px;&quot;&gt;📦 ดาวน์โหลดโปรแกรม Word Mini v1.0&lt;/h3&gt;
    &lt;p style=&quot;font-size: 14px; color: #718096; margin-bottom: 20px;&quot;&gt;(ไฟล์ Zip ขนาดประมาณ 190 MB แตกไฟล์แล้วเปิดใช้งานได้ทันที ไม่ต้องติดตั้ง)&lt;/p&gt;
    
    &lt;a href=&quot;https://drive.google.com/file/d/1A9deFljtfqcG9fWTWNPJSNtmfG28R2TZ/view?usp=drive_link&quot; 
       target=&quot;_blank&quot; 
       class=&quot;download-btn&quot; 
       id=&quot;downloadBtn&quot; 
       onclick=&quot;countDownload()&quot;&gt;
      ⬇️ คลิกดาวน์โหลดโปรแกรม (Google Drive)
    &lt;/a&gt;

    &lt;div class=&quot;download-stats&quot;&gt;
      &lt;span&gt;📊 จำนวนการดาวน์โหลดทั้งหมด:&lt;/span&gt;
      &lt;span class=&quot;counter-badge&quot; id=&quot;downloadCounter&quot;&gt;0&lt;/span&gt;
      &lt;span&gt;ครั้ง&lt;/span&gt;
    &lt;/div&gt;
  &lt;/section&gt;

  &lt;!-- Script สำหรับนับจำนวนคลิก --&gt;
  &lt;script&gt;
    // ดึงค่าจำนวนดาวน์โหลดจาก LocalStorage
    let count = localStorage.getItem(&#39;wordmini_download_count&#39;) || 0;
    document.getElementById(&#39;downloadCounter&#39;).innerText = count;

    function countDownload() {
      count++;
      localStorage.setItem(&#39;wordmini_download_count&#39;, count);
      document.getElementById(&#39;downloadCounter&#39;).innerText = count;
    }
  &lt;/script&gt;
&lt;/article&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/6967747529917298825/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/6967747529917298825' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/6967747529917298825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/6967747529917298825'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/word-mini-v10.html' title='ดาวน์โหลดโปรแกรม Word Mini v1.0'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-8675195599549801981</id><published>2026-10-23T09:32:16.940+07:00</published><updated>2026-10-23T11:49:21.914+07:00</updated><title type='text'>คัมภีร์แม่บท: วิธีแพ็กโปรแกรม WordMini ด้วย NW.js</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;คัมภีร์แม่บท: วิธีแพ็กโปรแกรม WordMini ด้วย NW.js&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Sarabun&#39;, &#39;Prompt&#39;, &#39;Segoe UI&#39;, Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.8;
            color: #1a202c !important; /* กำหนดสีข้อความหลักให้เข้มชัดเจน */
            background-color: #f4f7f6;
            margin: 0;
            padding: 20px;
        }
        .container {
            max-width: 900px;
            margin: 0 auto;
            background: #ffffff;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.08);
            color: #2d3748 !important;
        }
        h1 {
            color: #1a365d !important;
            text-align: center;
            border-bottom: 3px solid #3182ce;
            padding-bottom: 15px;
            margin-bottom: 30px;
        }
        h2 {
            color: #2b6cb0 !important;
            margin-top: 30px;
            border-left: 5px solid #3182ce;
            padding-left: 10px;
        }
        h3 {
            color: #2d3748 !important;
        }
        p, li, span, div {
            color: #2d3748 !important; /* บังคับให้ข้อความทั่วไปเป็นสีเข้มอ่านง่าย */
        }
        .card {
            background: #ffffff;
            border: 1px solid #cbd5e0;
            padding: 20px;
            margin-bottom: 20px;
            border-radius: 8px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.03);
        }
        .warning {
            background: #fffaf0;
            border-left: 5px solid #dd6b20;
            padding: 15px;
            margin: 15px 0;
            border-radius: 0 5px 5px 0;
            color: #7b341e !important;
        }
        .warning strong, .warning div {
            color: #9c4221 !important;
        }
        .tip {
            background: #f0fff4;
            border-left: 5px solid #38a169;
            padding: 15px;
            margin: 15px 0;
            border-radius: 0 5px 5px 0;
            color: #22543d !important;
        }
        code {
            background: #edf2f7;
            padding: 3px 8px;
            border-radius: 4px;
            font-family: Consolas, monospace;
            color: #c53030 !important; /* สีโค้ดตัวอักษรเน้นย้ำ */
            font-weight: bold;
            font-size: 0.95em;
            border: 1px solid #e2e8f0;
        }
        pre {
            background: #1a202c;
            color: #f7fafc !important;
            padding: 15px;
            border-radius: 6px;
            overflow-x: auto;
            font-family: Consolas, monospace;
        }
        pre code {
            background: none;
            color: #63b3ed !important;
            border: none;
        }
        ol, ul {
            padding-left: 20px;
        }
        li {
            margin-bottom: 8px;
            color: #2d3748 !important;
        }
        .rule-box {
            background: #fff5f5;
            border: 2px dashed #e53e3e;
            padding: 20px;
            border-radius: 8px;
            margin-top: 30px;
        }
        .rule-box h3 {
            color: #9b2c2c !important;
            margin-top: 0;
        }
        .sub-text {
            color: #4a5568 !important;
            font-size: 0.6em;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div class=&quot;container&quot;&gt;
    &lt;h1&gt;📖 คัมภีร์แม่บท: วิธีแพ็กโปรแกรม WordMini ด้วย NW.js&lt;br&gt;&lt;span class=&quot;sub-text&quot;&gt;(ฉบับสมบูรณ์ เก็บทุกเม็ด ดักทุกปัญหา ห้ามข้าม)&lt;/span&gt;&lt;/h1&gt;

    &lt;div class=&quot;card&quot;&gt;
        &lt;h2&gt;🛠️ สิ่งที่ต้องเตรียมไว้ก่อนเริ่ม&lt;/h2&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;strong&gt;โฟลเดอร์งานเว็บของเรา:&lt;/strong&gt; ที่มีไฟล์หน้าเว็บหลัก (เช่น &lt;code&gt;index.html&lt;/code&gt;)&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;ไฟล์ NW.js (เวอร์ชัน Normal):&lt;/strong&gt; ไฟล์ ZIP เช่น &lt;code&gt;nwjs-v0.119.2-win-x64.zip&lt;/code&gt; (ต้องเลือกตัว &lt;strong&gt;Normal&lt;/strong&gt; ห้ามเลือกตัว SDK)&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;card&quot;&gt;
        &lt;h2&gt;📋 ขั้นตอนที่ 1: การสร้างไฟล์ &lt;code&gt;package.json&lt;/code&gt; (ถ้าในเครื่องยังไม่มี)&lt;/h2&gt;
        &lt;p&gt;&lt;em&gt;ไฟล์นี้เปรียบเสมือนป้ายบอกทางให้โปรแกรมรู้ว่าต้องเปิดไฟล์ &lt;code&gt;index.html&lt;/code&gt; เป็นหน้าแรก ห้ามข้ามเด็ดขาด!&lt;/em&gt;&lt;/p&gt;
        &lt;ol&gt;
            &lt;li&gt;เปิดโปรแกรม &lt;strong&gt;Notepad&lt;/strong&gt; ขึ้นมาในคอมพิวเตอร์&lt;/li&gt;
            &lt;li&gt;ก๊อปปี้ข้อความชุดนี้ไปวางไว้ใน Notepad:
                &lt;pre&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;WordMini&quot;,
  &quot;main&quot;: &quot;index.html&quot;,
  &quot;window&quot;: {
    &quot;title&quot;: &quot;WordMini - โปรแกรมพิมพ์เอกสาร&quot;,
    &quot;width&quot;: 1024,
    &quot;height&quot;: 768,
    &quot;toolbar&quot;: true
  }
}&lt;/code&gt;&lt;/pre&gt;
            &lt;/li&gt;
            &lt;li&gt;กดที่เมนูด้านบนซ้าย &lt;strong&gt;File &gt; Save As...&lt;/strong&gt;&lt;/li&gt;
            &lt;li&gt;ช่อง &lt;strong&gt;Save as type&lt;/strong&gt; ให้คลิกเปลี่ยนเป็น &lt;strong&gt;All Files (*.*)&lt;/strong&gt; &lt;em&gt;(📍 สำคัญมาก เพื่อไม่ให้แถม .txt)&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;ช่อง &lt;strong&gt;File name&lt;/strong&gt; ให้พิมพ์ชื่อว่า: &lt;code&gt;package.json&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;กดปุ่ม &lt;strong&gt;Save&lt;/strong&gt; บันทึกเก็บไว้ในโฟลเดอร์เดียวกับไฟล์ &lt;code&gt;index.html&lt;/code&gt;&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;div class=&quot;card&quot;&gt;
        &lt;h2&gt;📦 ขั้นตอนที่ 2: การห่อโค้ดเว็บเราให้เป็นไฟล์ &lt;code&gt;package.nw&lt;/code&gt;&lt;/h2&gt;
        &lt;ol&gt;
            &lt;li&gt;เข้าไปในโฟลเดอร์งานที่มี &lt;code&gt;index.html&lt;/code&gt; และ &lt;code&gt;package.json&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;กด &lt;code&gt;Ctrl + A&lt;/code&gt; เพื่อเลือกไฟล์ทั้งหมด&lt;/li&gt;
            &lt;li&gt;คลิกขวา &gt; เลือก &lt;strong&gt;Send to &gt; Compressed (zipped) folder&lt;/strong&gt;&lt;/li&gt;
            &lt;li&gt;เปลี่ยนชื่อไฟล์ ZIP ที่ได้ ให้กลายเป็น &lt;code&gt;package.nw&lt;/code&gt;&lt;/li&gt;
        &lt;/ol&gt;
        &lt;div class=&quot;warning&quot;&gt;
            &lt;strong&gt;🚨 ปัญหาที่พบบ่อย:&lt;/strong&gt; เปลี่ยนชื่อแล้วกลายเป็น &lt;code&gt;package.nw.zip&lt;/code&gt; (มองไม่เห็นนามสกุลจริง)&lt;br&gt;
            &lt;strong&gt;วิธีแก้:&lt;/strong&gt; ไปที่เมนูด้านบนโฟลเดอร์ &lt;strong&gt;View &gt; ติ๊กถูกที่ File name extensions (นามสกุลชื่อไฟล์)&lt;/strong&gt; แล้วค่อยกลับมาลบ &lt;code&gt;.zip&lt;/code&gt; ทิ้ง
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;div class=&quot;card&quot;&gt;
        &lt;h2&gt;⚡ ขั้นตอนที่ 3: การรวมร่างไฟล์รัน .exe (จุดสำคัญ ห้ามพลาด!)&lt;/h2&gt;
        &lt;ol&gt;
            &lt;li&gt;แตกไฟล์ ZIP ของ NW.js ตัว Normal ออกมาเป็นโฟลเดอร์&lt;/li&gt;
            &lt;li&gt;ก๊อปปี้ไฟล์ &lt;code&gt;package.nw&lt;/code&gt; จากขั้นตอนที่ 2 มาวางไว้&lt;strong&gt;ข้างในโฟลเดอร์ NW.js&lt;/strong&gt;&lt;/li&gt;
        &lt;/ol&gt;
        &lt;div class=&quot;warning&quot;&gt;
            &lt;strong&gt;🚨 ปัญหาที่พบบ่อย: พิมพ์คำสั่งแล้วฟ้องว่า &lt;em&gt;The system cannot find the file specified&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
            &lt;strong&gt;วิธีแก้ที่ชัวร์ 100% (เทคนิค Address Bar):&lt;/strong&gt;&lt;br&gt;
            1. เปิดเข้าไปในโฟลเดอร์ NW.js ที่วางไฟล์ &lt;code&gt;package.nw&lt;/code&gt; ไว้&lt;br&gt;
            2. คลิกซ้ายที่พื้นที่ว่างใน&lt;strong&gt;แถบ Address Bar (แถบที่อยู่ด้านบนสุด)&lt;/strong&gt; ให้คลุมดำทั้งหมด&lt;br&gt;
            3. ลบข้อความเดิมออก แล้วพิมพ์คำว่า &lt;code&gt;cmd&lt;/code&gt; แล้วกด &lt;strong&gt;Enter&lt;/strong&gt; (หน้าต่างดำจะเด้งขึ้นมาในโฟลเดอร์นั้นทันที)
        &lt;/div&gt;
        &lt;ol start=&quot;3&quot;&gt;
            &lt;li&gt;ที่หน้าต่างดำ CMD ให้พิมพ์คำสั่งนี้ลงไปตรงๆ แล้วกด &lt;strong&gt;Enter&lt;/strong&gt;:
                &lt;pre&gt;&lt;code&gt;copy /b nw.exe+package.nw WordMini.exe&lt;/code&gt;&lt;/pre&gt;
            &lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;วิธีเช็ก:&lt;/strong&gt; หน้าต่างดำต้องขึ้นว่า &lt;code&gt;1 file(s) copied.&lt;/code&gt; และในโฟลเดอร์จะมีไฟล์ &lt;code&gt;WordMini.exe&lt;/code&gt; โผล่ขึ้นมา&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;div class=&quot;card&quot;&gt;
        &lt;h2&gt;🗂️ ขั้นตอนที่ 4: เคลียร์ไฟล์ภาษาในโฟลเดอร์ locales (เพื่อลดขนาด)&lt;/h2&gt;
        &lt;ol&gt;
            &lt;li&gt;ดับเบิลคลิกเข้าไปในโฟลเดอร์ &lt;strong&gt;locales&lt;/strong&gt;&lt;/li&gt;
            &lt;li&gt;กด &lt;code&gt;Ctrl + A&lt;/code&gt; แล้วกด &lt;strong&gt;Delete&lt;/strong&gt; ลบทิ้งทั้งหมด&lt;/li&gt;
            &lt;li&gt;นำไฟล์ภาษาเก็บไว้แค่ 2 ไฟล์นี้เท่านั้น:
                &lt;ul&gt;
                    &lt;li&gt;&lt;code&gt;th.pak&lt;/code&gt; (ภาษาไทย)&lt;/li&gt;
                    &lt;li&gt;&lt;code&gt;en-US.pak&lt;/code&gt; (ภาษาอังกฤษ)&lt;/li&gt;
                &lt;/ul&gt;
            &lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;div class=&quot;card&quot;&gt;
        &lt;h2&gt;🗑️ ขั้นตอนที่ 5: การลบไฟล์ขยะส่วนเกิน&lt;/h2&gt;
        &lt;p&gt;ถอยกลับมาหน้าโฟลเดอร์หลัก แล้วคลิกขวา &lt;strong&gt;Delete&lt;/strong&gt; ลบไฟล์เหล่านี้ทิ้ง:&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;code&gt;credits.html&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;notification_helper.exe&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;nw.exe&lt;/code&gt; ตัวเดิม (เพราะเรามี &lt;code&gt;WordMini.exe&lt;/code&gt; แล้ว)&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;package.nw&lt;/code&gt; ตัวสำเนา (เพราะมันรวมร่างไปอยู่ใน &lt;code&gt;WordMini.exe&lt;/code&gt; แล้ว)&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;div class=&quot;card&quot;&gt;
        &lt;h2&gt;👁️ ขั้นตอนที่ 6: การซ่อนไฟล์ระบบ&lt;/h2&gt;
        &lt;ol&gt;
            &lt;li&gt;สร้างไฟล์ข้อความ ตั้งชื่อว่า &lt;code&gt;คู่มือการใช้งานโปรแกรม WordMini.txt&lt;/code&gt; วางไว้ข้างๆ &lt;code&gt;WordMini.exe&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;ลากคลุมเลือก&lt;strong&gt;ไฟล์ระบบเบื้องหลังทั้งหมด&lt;/strong&gt; &lt;em&gt;(ยกเว้น &lt;code&gt;WordMini.exe&lt;/code&gt; และไฟล์คู่มือ)&lt;/em&gt;&lt;/li&gt;
            &lt;li&gt;คลิกขวา &gt; &lt;strong&gt;Properties&lt;/strong&gt; &gt; ติ๊กถูกที่ &lt;strong&gt;Hidden (ซ่อน)&lt;/strong&gt; และ &lt;strong&gt;Read-only (อ่านอย่างเดียว)&lt;/strong&gt; &gt; กด OK&lt;/li&gt;
            &lt;li&gt;ไปที่เมนู &lt;strong&gt;View &gt; เอาติ๊กถูกออกจาก Hidden items (รายการที่ซ่อนอยู่)&lt;/strong&gt; หน้าจอจะสะอาดเหลือแค่ไฟล์โปรแกรมกับคู่มือเท่านั้น&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;div class=&quot;card&quot;&gt;
        &lt;h2&gt;📤 ขั้นตอนที่ 7: บีบอัดเป็น ZIP พร้อมแจกจ่าย&lt;/h2&gt;
        &lt;ol&gt;
            &lt;li&gt;ถอยออกไปที่โฟลเดอร์ใหญ่นอกสุด ตั้งชื่อโฟลเดอร์เช่น &lt;code&gt;WordMini_v1.0&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;คลิกขวาโฟลเดอร์ &gt; &lt;strong&gt;Send to &gt; Compressed (zipped) folder&lt;/strong&gt;&lt;/li&gt;
            &lt;li&gt;จะได้ไฟล์ &lt;code&gt;.zip&lt;/code&gt; ขนาดประมาณ 190 MB พร้อมอัปขึ้น Google Drive หรือส่งไลน์แจกจ่ายได้ทันที&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;div class=&quot;rule-box&quot;&gt;
        &lt;h3&gt;⛔ กฎเหล็ก 3 ข้อที่ต้องจำไว้ตลอดกาล&lt;/h3&gt;
        &lt;ol&gt;
            &lt;li&gt;&lt;strong&gt;ห้ามเปลี่ยนชื่อไฟล์ &lt;code&gt;WordMini.exe&lt;/code&gt; เด็ดขาด&lt;/strong&gt; เพราะคำสั่งรวมร่างผูกชื่อนี้ไว้แล้ว&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;ห้ามดึงไฟล์ &lt;code&gt;WordMini.exe&lt;/code&gt; ออกมาเดี่ยวๆ&lt;/strong&gt; ต้องส่งไปทั้งโฟลเดอร์หรือไฟล์ ZIP เท่านั้น&lt;/li&gt;
            &lt;li&gt;&lt;strong&gt;ถ้าวันหลังอยากเปิดดูไฟล์ซ่อน:&lt;/strong&gt; ไปที่เมนู &lt;strong&gt;View &gt; ติ๊กถูกที่ Hidden items&lt;/strong&gt; ไฟล์ระบบจะโผล่กลับมาให้แก้ไขได้ทันที&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/8675195599549801981/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/8675195599549801981' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/8675195599549801981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/8675195599549801981'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/wordmini-nwjs.html' title='คัมภีร์แม่บท: วิธีแพ็กโปรแกรม WordMini ด้วย NW.js'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-1555526922918673443</id><published>2026-10-22T16:30:48.371+07:00</published><updated>2026-10-22T16:30:48.372+07:00</updated><title type='text'>Microsoft ยอมถอย! ถอด 8 เมนู AI Copilot ออกจากคลิกขวาใน Windows 11 หลังโดนวิจารณ์เมนูรก</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;Microsoft ยอมถอย! ถอด 8 เมนู AI Copilot ออกจากคลิกขวาใน Windows 11&lt;/title&gt;
  
  &lt;!-- Tailwind CSS CDN --&gt;
  &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
  
  &lt;!-- Google Fonts: Kanit &amp; Inter --&gt;
  &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.googleapis.com&quot;&gt;
  &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot; crossorigin&gt;
  &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&amp;family=Kanit:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
  
  &lt;!-- FontAwesome Icons --&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&gt;

  &lt;script&gt;
    tailwind.config = {
      theme: {
        extend: {
          fontFamily: {
            sans: [&#39;Kanit&#39;, &#39;Inter&#39;, &#39;sans-serif&#39;],
          },
          colors: {
            winblue: {
              50: &#39;#f0f6ff&#39;,
              100: &#39;#e0edff&#39;,
              500: &#39;#0078d4&#39;,
              600: &#39;#0063b1&#39;,
              700: &#39;#004e8c&#39;,
            }
          }
        }
      }
    }
  &lt;/script&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-slate-100 text-slate-800 antialiased font-sans min-h-screen py-8 px-4 sm:px-6 lg:px-8&quot;&gt;

  &lt;main class=&quot;max-w-4xl mx-auto&quot;&gt;
    &lt;!-- Main Article Card --&gt;
    &lt;article class=&quot;bg-white rounded-3xl shadow-sm border border-slate-200/80 overflow-hidden&quot;&gt;
      
      &lt;!-- 1. Header / Hero Section --&gt;
      &lt;header class=&quot;bg-gradient-to-r from-slate-900 via-slate-800 to-winblue-700 p-6 sm:p-10 text-white relative&quot;&gt;
        &lt;div class=&quot;flex flex-wrap items-center gap-3 mb-4&quot;&gt;
          &lt;span class=&quot;inline-flex items-center gap-1.5 bg-winblue-500/30 backdrop-blur-md text-winblue-100 text-xs font-medium px-3 py-1 rounded-full border border-winblue-400/30&quot;&gt;
            &lt;i class=&quot;fa-brands fa-windows&quot;&gt;&lt;/i&gt; Windows 11 News
          &lt;/span&gt;
          &lt;span class=&quot;text-xs text-slate-300 flex items-center gap-1&quot;&gt;
            &lt;i class=&quot;fa-regular fa-calendar&quot;&gt;&lt;/i&gt; 22 ตุลาคม 2026
          &lt;/span&gt;
        &lt;/div&gt;

        &lt;h1 class=&quot;text-2xl sm:text-4xl font-bold leading-tight tracking-tight text-white mb-4&quot;&gt;
          Microsoft ยอมถอย! ถอด 8 เมนู AI Copilot ออกจากคลิกขวาใน Windows 11 หลังโดนวิจารณ์เมนูรก
        &lt;/h1&gt;

        &lt;p class=&quot;text-slate-300 text-sm sm:text-base font-light max-w-2xl&quot;&gt;
          เตรียมปรับปรุงเมนู Context Menu ใน File Explorer ให้กลับมาคลีน สะอาดตา และตอบสนองไวขึ้น หลังเจอเสียงสะท้อนว่ายัดเยียด AI มากเกินจำเป็น
        &lt;/p&gt;
      &lt;/header&gt;

      &lt;div class=&quot;p-6 sm:p-10 space-y-8&quot;&gt;
        
        &lt;!-- 2. Executive Summary / Highlights Callout Box --&gt;
        &lt;section class=&quot;bg-winblue-50/70 border border-winblue-100 rounded-2xl p-5 sm:p-6 space-y-3&quot;&gt;
          &lt;h2 class=&quot;text-base font-bold text-winblue-700 flex items-center gap-2&quot;&gt;
            &lt;i class=&quot;fa-solid fa-lightbulb&quot;&gt;&lt;/i&gt; สรุปประเด็นสำคัญ (Key Takeaways)
          &lt;/h2&gt;
          &lt;ul class=&quot;grid grid-cols-1 sm:grid-cols-3 gap-3 text-sm text-slate-700&quot;&gt;
            &lt;li class=&quot;bg-white p-3 rounded-xl border border-winblue-100 flex items-start gap-2 shadow-sm&quot;&gt;
              &lt;i class=&quot;fa-solid fa-circle-minus text-rose-500 mt-1 shrink-0&quot;&gt;&lt;/i&gt;
              &lt;span&gt;&lt;strong&gt;ถอด 8 คำสั่งย่อย:&lt;/strong&gt; ยกเลิกปุ่มทางลัด AI บนเมนูคลิกขวาใน File Explorer&lt;/span&gt;
            &lt;/li&gt;
            &lt;li class=&quot;bg-white p-3 rounded-xl border border-winblue-100 flex items-start gap-2 shadow-sm&quot;&gt;
              &lt;i class=&quot;fa-solid fa-compress text-winblue-600 mt-1 shrink-0&quot;&gt;&lt;/i&gt;
              &lt;span&gt;&lt;strong&gt;ยุบรวมปุ่มหลัก:&lt;/strong&gt; รวมทุกฟังก์ชันไว้ใต้เมนู Ask Copilot เพียงปุ่มเดียว&lt;/span&gt;
            &lt;/li&gt;
            &lt;li class=&quot;bg-white p-3 rounded-xl border border-winblue-100 flex items-start gap-2 shadow-sm&quot;&gt;
              &lt;i class=&quot;fa-solid fa-clock text-emerald-600 mt-1 shrink-0&quot;&gt;&lt;/i&gt;
              &lt;span&gt;&lt;strong&gt;กำหนดการ:&lt;/strong&gt; เริ่มทยอยถอด พ.ย. - ธ.ค. 2026 นี้&lt;/span&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;/section&gt;

        &lt;!-- 3. Main Article Body --&gt;
        
        &lt;!-- Context / Background --&gt;
        &lt;section class=&quot;space-y-4&quot;&gt;
          &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-slate-900 border-b border-slate-100 pb-2&quot;&gt;
            เบื้องหลังการปรับเปลี่ยน: เมื่อ AI มีมากเกินความจำเป็น
          &lt;/h2&gt;
          &lt;p class=&quot;text-slate-600 leading-relaxed text-sm sm:text-base&quot;&gt;
            ก่อนหน้านี้ Microsoft พยายามผลักดันระบบปัญญาประดิษฐ์ (AI) อย่าง Copilot เข้าสู่ทุกส่วนของระบบปฏิบัติการ Windows 11 โดยหนึ่งในนั้นคือการเพิ่มคำสั่งทางลัดสำหรับจัดการไฟล์ลงในเมนูคลิกขวา (Context Menu) ของ File Explorer เพื่อให้ผู้ใช้งานสามารถสั่ง AI ทำงานกับไฟล์เอกสารหรือรูปภาพได้ทันทีโดยไม่ต้องเปิดแอปพลิเคชันอื่น
          &lt;/p&gt;
          &lt;p class=&quot;text-slate-600 leading-relaxed text-sm sm:text-base&quot;&gt;
            อย่างไรก็ตาม การเพิ่มทางลัด AI เข้าไปหลายรายการพร้อมกันกลับสร้างความหงุดหงิดให้กับผู้ใช้งานจำนวนมาก เนื่องจากทำให้เมนูคลิกขวายาวเกินไป รกสายตา และตอบสนองช้าลง จนเกิดกระแสต่อต้านและเสียงวิจารณ์อย่างหนัก
          &lt;/p&gt;
        &lt;/section&gt;

        &lt;!-- The 8 Removed Commands Grid --&gt;
        &lt;section class=&quot;space-y-4 pt-2&quot;&gt;
          &lt;div class=&quot;flex items-center justify-between&quot;&gt;
            &lt;h2 class=&quot;text-lg sm:text-xl font-bold text-slate-900&quot;&gt;
              รายชื่อ 8 คำสั่ง AI ที่ถูกถอดออกจากเมนูคลิกขวา
            &lt;/h2&gt;
            &lt;span class=&quot;text-xs bg-rose-100 text-rose-700 px-2.5 py-1 rounded-full font-medium&quot;&gt;Removed List&lt;/span&gt;
          &lt;/div&gt;

          &lt;div class=&quot;grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3&quot;&gt;
            &lt;!-- Item 1 --&gt;
            &lt;div class=&quot;p-4 bg-slate-50 rounded-xl border border-slate-200/60 hover:border-slate-300 transition-colors&quot;&gt;
              &lt;div class=&quot;w-8 h-8 rounded-lg bg-rose-100 text-rose-600 flex items-center justify-center text-sm mb-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-file-contract&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;font-bold text-slate-800 text-sm&quot;&gt;Summarize&lt;/h3&gt;
              &lt;p class=&quot;text-xs text-slate-500 mt-1&quot;&gt;สรุปเนื้อหาในเอกสาร&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Item 2 --&gt;
            &lt;div class=&quot;p-4 bg-slate-50 rounded-xl border border-slate-200/60 hover:border-slate-300 transition-colors&quot;&gt;
              &lt;div class=&quot;w-8 h-8 rounded-lg bg-rose-100 text-rose-600 flex items-center justify-center text-sm mb-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-clipboard-question&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;font-bold text-slate-800 text-sm&quot;&gt;Create FAQ&lt;/h3&gt;
              &lt;p class=&quot;text-xs text-slate-500 mt-1&quot;&gt;สร้างชุดคำถาม-คำตอบจากเอกสาร&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Item 3 --&gt;
            &lt;div class=&quot;p-4 bg-slate-50 rounded-xl border border-slate-200/60 hover:border-slate-300 transition-colors&quot;&gt;
              &lt;div class=&quot;w-8 h-8 rounded-lg bg-rose-100 text-rose-600 flex items-center justify-center text-sm mb-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-code-compare&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;font-bold text-slate-800 text-sm&quot;&gt;Compare Files&lt;/h3&gt;
              &lt;p class=&quot;text-xs text-slate-500 mt-1&quot;&gt;เปรียบเทียบความแตกต่างระหว่างไฟล์&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Item 4 --&gt;
            &lt;div class=&quot;p-4 bg-slate-50 rounded-xl border border-slate-200/60 hover:border-slate-300 transition-colors&quot;&gt;
              &lt;div class=&quot;w-8 h-8 rounded-lg bg-rose-100 text-rose-600 flex items-center justify-center text-sm mb-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-circle-question&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;font-bold text-slate-800 text-sm&quot;&gt;Ask a Question&lt;/h3&gt;
              &lt;p class=&quot;text-xs text-slate-500 mt-1&quot;&gt;ถาม AI เกี่ยวกับข้อมูลในไฟล์&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Item 5 --&gt;
            &lt;div class=&quot;p-4 bg-slate-50 rounded-xl border border-slate-200/60 hover:border-slate-300 transition-colors&quot;&gt;
              &lt;div class=&quot;w-8 h-8 rounded-lg bg-rose-100 text-rose-600 flex items-center justify-center text-sm mb-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-image&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;font-bold text-slate-800 text-sm&quot;&gt;Explain Image&lt;/h3&gt;
              &lt;p class=&quot;text-xs text-slate-500 mt-1&quot;&gt;อธิบายรายละเอียดในรูปภาพ&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Item 6 --&gt;
            &lt;div class=&quot;p-4 bg-slate-50 rounded-xl border border-slate-200/60 hover:border-slate-300 transition-colors&quot;&gt;
              &lt;div class=&quot;w-8 h-8 rounded-lg bg-rose-100 text-rose-600 flex items-center justify-center text-sm mb-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-images&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;font-bold text-slate-800 text-sm&quot;&gt;Explain Images&lt;/h3&gt;
              &lt;p class=&quot;text-xs text-slate-500 mt-1&quot;&gt;วิเคราะห์รูปภาพหลายภาพพร้อมกัน&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Item 7 --&gt;
            &lt;div class=&quot;p-4 bg-slate-50 rounded-xl border border-slate-200/60 hover:border-slate-300 transition-colors&quot;&gt;
              &lt;div class=&quot;w-8 h-8 rounded-lg bg-rose-100 text-rose-600 flex items-center justify-center text-sm mb-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-clone&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;font-bold text-slate-800 text-sm&quot;&gt;Compare Images&lt;/h3&gt;
              &lt;p class=&quot;text-xs text-slate-500 mt-1&quot;&gt;เปรียบเทียบความแตกต่างของภาพ&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Item 8 --&gt;
            &lt;div class=&quot;p-4 bg-slate-50 rounded-xl border border-slate-200/60 hover:border-slate-300 transition-colors&quot;&gt;
              &lt;div class=&quot;w-8 h-8 rounded-lg bg-rose-100 text-rose-600 flex items-center justify-center text-sm mb-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-font&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;font-bold text-slate-800 text-sm&quot;&gt;Extract Text&lt;/h3&gt;
              &lt;p class=&quot;text-xs text-slate-500 mt-1&quot;&gt;ดึงข้อความออกจากรูปภาพ&lt;/p&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- Feedback &amp; Reaction Section --&gt;
        &lt;section class=&quot;space-y-4 pt-2&quot;&gt;
          &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-slate-900 border-b border-slate-100 pb-2&quot;&gt;
            เสียงสะท้อนจากผู้ใช้ และศัพท์ล้อเลียน &quot;Microslop&quot;
          &lt;/h2&gt;
          &lt;p class=&quot;text-slate-600 leading-relaxed text-sm sm:text-base&quot;&gt;
            การเปลี่ยนแปลงครั้งนี้เกิดขึ้นท่ามกลางกระแสความไม่พอใจของผู้ใช้งาน Windows 11 ที่มองว่า Microsoft พยายามใส่ฟีเจอร์ AI เข้าไปในจุดต่างๆ มากเกินไปจนส่งผลเสียต่อประสบการณ์การใช้งานจริง (User Experience)
          &lt;/p&gt;
          &lt;div class=&quot;p-4 bg-amber-50 border-l-4 border-amber-400 rounded-r-xl text-slate-700 text-sm sm:text-base space-y-1&quot;&gt;
            &lt;div class=&quot;font-bold text-amber-900 flex items-center gap-2&quot;&gt;
              &lt;i class=&quot;fa-solid fa-quote-left text-amber-500&quot;&gt;&lt;/i&gt; คำล้อเลียน &quot;Microslop&quot;
            &lt;/div&gt;
            &lt;p class=&quot;text-slate-600&quot;&gt;
              เกิดจากการผสมคำว่า &lt;strong&gt;Microsoft&lt;/strong&gt; กับคำว่า &lt;strong&gt;AI Slop&lt;/strong&gt; (ที่ใช้เรียกเนื้อหาหรือฟีเจอร์ AI คุณภาพต่ำที่ถูกผลิตหรือยัดเยียดออกมามากเกินไป) ซึ่งเป็นสัญลักษณ์สะท้อนความกลัวว่าระบบปฏิบัติการจะถูกบดบังด้วยฟีเจอร์ที่ไม่จำเป็น
            &lt;/p&gt;
          &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- Technical Details &amp; Timeline --&gt;
        &lt;section class=&quot;space-y-4 pt-2&quot;&gt;
          &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-slate-900 border-b border-slate-100 pb-2&quot;&gt;
            รายละเอียดทางเทคนิคและกรอบเวลาการอัปเดต
          &lt;/h2&gt;
          &lt;p class=&quot;text-slate-600 leading-relaxed text-sm sm:text-base&quot;&gt;
            ตามประกาศอย่างเป็นทางการใน &lt;strong&gt;Microsoft 365 Message Center (รหัส MC1515940)&lt;/strong&gt; ระบุว่าคำสั่งทั้ง 8 รายการเป็นฟีเจอร์ที่ทำงานเชื่อมต่อกับบริการ &lt;strong class=&quot;text-slate-800&quot;&gt;OneDrive&lt;/strong&gt; เป็นหลัก 
          &lt;/p&gt;
          
          &lt;div class=&quot;bg-slate-50 border border-slate-200 rounded-2xl p-5 space-y-3&quot;&gt;
            &lt;h3 class=&quot;font-bold text-slate-900 text-sm sm:text-base flex items-center gap-2&quot;&gt;
              &lt;i class=&quot;fa-solid fa-calendar-check text-winblue-600&quot;&gt;&lt;/i&gt; ลำดับเวลาการทยอยปรับปรุง (Timeline)
            &lt;/h3&gt;
            &lt;div class=&quot;relative border-l-2 border-winblue-200 ml-3 pl-4 space-y-4 text-sm text-slate-600&quot;&gt;
              &lt;div&gt;
                &lt;div class=&quot;font-bold text-slate-800&quot;&gt;กลางเดือนพฤศจิกายน 2026&lt;/div&gt;
                &lt;div&gt;เริ่มทยอยปิดและถอดเมนูทางลัด 8 รายการออกจากระบบกลุ่มผู้ใช้ระลอกแรก&lt;/div&gt;
              &lt;/div&gt;
              &lt;div&gt;
                &lt;div class=&quot;font-bold text-slate-800&quot;&gt;ต้นเดือนธันวาคม 2026&lt;/div&gt;
                &lt;div&gt;คาดว่ากระบวนการถอดคำสั่งทั้งหมดจะเสร็จสิ้นทั่วโลก&lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- 4. Interactive / Callout Box: Copilot Still Exists? --&gt;
        &lt;section class=&quot;bg-gradient-to-br from-slate-900 to-slate-800 text-white p-6 sm:p-8 rounded-2xl shadow-md space-y-3&quot;&gt;
          &lt;div class=&quot;flex items-center gap-2 text-amber-400 font-bold text-lg&quot;&gt;
            &lt;i class=&quot;fa-solid fa-circle-question&quot;&gt;&lt;/i&gt; Copilot จะหายไปจาก Windows 11 เลยหรือไม่?
          &lt;/div&gt;
          &lt;p class=&quot;text-slate-300 text-sm sm:text-base leading-relaxed&quot;&gt;
            &lt;strong&gt;คำตอบคือ ไม่ได้หายไปครับ&lt;/strong&gt; การถอดเมนูรอบนี้เป็นเพียงการจัดการทำความสะอาดเมนู (Decluttering) เพื่อความสบายตา ผู้ใช้ยังสามารถเรียกใช้งานฟีเจอร์ AI เหล่านี้ได้ตามปกติผ่านเมนูหลักเพียงปุ่มเดียวคือ &lt;span class=&quot;bg-white/20 text-white px-2 py-0.5 rounded text-xs font-mono&quot;&gt;Ask Copilot&lt;/span&gt; หรือใช้ผ่านหน้า File Explorer Home
          &lt;/p&gt;
          &lt;div class=&quot;pt-2 text-xs text-slate-400 flex items-center gap-2 border-t border-slate-700/60&quot;&gt;
            &lt;i class=&quot;fa-solid fa-circle-info&quot;&gt;&lt;/i&gt; สัญญาณดีที่ Microsoft เริ่มหันมารับฟังเสียงตอบรับ และเน้นประสิทธิภาพการทำงานที่แท้จริง
          &lt;/div&gt;
        &lt;/section&gt;

      &lt;/div&gt;

      &lt;!-- 5. Footer Section --&gt;
      &lt;footer class=&quot;bg-slate-50 border-t border-slate-100 p-6 text-center text-xs text-slate-500 space-y-2&quot;&gt;
        &lt;p&gt;อ้างอิงข้อมูล: Microsoft 365 Message Center (MC1515940) &amp; Windows Technical Updates&lt;/p&gt;
        &lt;p&gt;© 2026 Tech News Digest. All rights reserved.&lt;/p&gt;
      &lt;/footer&gt;

    &lt;/article&gt;
  &lt;/main&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/1555526922918673443/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/1555526922918673443' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/1555526922918673443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/1555526922918673443'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/microsoft-8-ai-copilot-windows-11.html' title='Microsoft ยอมถอย! ถอด 8 เมนู AI Copilot ออกจากคลิกขวาใน Windows 11 หลังโดนวิจารณ์เมนูรก'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-4408717180271333876</id><published>2026-10-22T15:33:49.012+07:00</published><updated>2026-10-22T15:33:49.013+07:00</updated><title type='text'>Microsoft! อัปเดต Windows 11 ใหม่ ตอบสนองไวขึ้น 20% คอม RAM 8GB บอกลาความหน่วง</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
  &lt;meta charset=&quot;UTF-8&quot;&gt;
  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
  &lt;title&gt;ข่าวดี Windows 11 อัปเดตใหม่ ปรับปรุง RAM 8GB ลื่นขึ้นสูงสุด 20%&lt;/title&gt;
  
  &lt;!-- Tailwind CSS CDN --&gt;
  &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
  
  &lt;!-- Google Fonts: Sarabun &amp; Inter --&gt;
  &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.googleapis.com&quot;&gt;
  &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot; crossorigin&gt;
  &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&amp;family=Sarabun:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
  
  &lt;!-- FontAwesome Icons --&gt;
  &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&gt;

  &lt;script&gt;
    tailwind.config = {
      theme: {
        extend: {
          fontFamily: {
            sans: [&#39;Sarabun&#39;, &#39;Inter&#39;, &#39;sans-serif&#39;],
          },
          colors: {
            winblue: {
              50: &#39;#f0f6ff&#39;,
              100: &#39;#e0edff&#39;,
              500: &#39;#0078d4&#39;,
              600: &#39;#0063b1&#39;,
              700: &#39;#004e8c&#39;,
            }
          }
        }
      }
    }
  &lt;/script&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-slate-50 text-slate-800 antialiased font-sans min-h-screen py-8 px-4 sm:px-6 lg:px-8&quot;&gt;

  &lt;main class=&quot;max-w-3xl mx-auto&quot;&gt;
    &lt;!-- Header Card --&gt;
    &lt;article class=&quot;bg-white rounded-3xl shadow-sm border border-slate-100 overflow-hidden&quot;&gt;
      &lt;!-- Top Accent Bar / Category Badge --&gt;
      &lt;div class=&quot;bg-gradient-to-r from-winblue-600 to-blue-500 p-8 text-white relative&quot;&gt;
        &lt;div class=&quot;inline-flex items-center gap-2 bg-white/20 backdrop-blur-md px-3 py-1 rounded-full text-xs font-medium tracking-wide text-white mb-4&quot;&gt;
          &lt;i class=&quot;fa-brands fa-windows text-sm&quot;&gt;&lt;/i&gt; Windows 11 Update
        &lt;/div&gt;
        &lt;h1 class=&quot;text-2xl sm:text-3xl font-bold leading-tight tracking-tight&quot;&gt;
          ข่าวดีจาก Microsoft! อัปเดต Windows 11 ใหม่ ตอบสนองไวขึ้น 20% คอม RAM 8GB บอกลาความหน่วง
        &lt;/h1&gt;
        &lt;div class=&quot;mt-4 flex items-center gap-4 text-xs text-blue-100 font-light&quot;&gt;
          &lt;span&gt;&lt;i class=&quot;fa-regular fa-clock mr-1&quot;&gt;&lt;/i&gt; Build 26300.9550&lt;/span&gt;
          &lt;span&gt;&lt;i class=&quot;fa-solid fa-bolt mr-1&quot;&gt;&lt;/i&gt; Performance Update&lt;/span&gt;
        &lt;/div&gt;
      &lt;/div&gt;

      &lt;!-- Main Body Content --&gt;
      &lt;div class=&quot;p-6 sm:p-10 space-y-8&quot;&gt;
        
        &lt;!-- Intro Paragraph --&gt;
        &lt;p class=&quot;text-base sm:text-lg text-slate-600 leading-relaxed font-normal&quot;&gt;
          การอัปเดตระบบปฏิบัติการ Windows 11 รุ่นใหม่ล่าสุด มุ่งเป้าจัดการกับอาการหน่วงเล็กๆ น้อยๆ ที่คอยกวนใจผู้ใช้งานมาโดยตลอด ช่วยให้ระบบตอบสนองได้รวดเร็วขึ้นสูงสุดถึง &lt;strong class=&quot;text-slate-900 font-semibold&quot;&gt;20%&lt;/strong&gt; ในคำสั่งพื้นฐาน และที่สำคัญคือผู้ที่ใช้งานคอมพิวเตอร์ &lt;strong class=&quot;text-winblue-600 font-semibold&quot;&gt;RAM 8GB&lt;/strong&gt; จะรู้สึกได้ชัดเจนว่าเครื่องลื่นขึ้นอย่างมาก
        &lt;/p&gt;

        &lt;!-- High Impact Metrics Grid --&gt;
        &lt;div class=&quot;grid grid-cols-1 sm:grid-cols-3 gap-4 pt-2&quot;&gt;
          &lt;div class=&quot;bg-slate-50 border border-slate-100 p-5 rounded-2xl text-center&quot;&gt;
            &lt;div class=&quot;text-3xl font-bold text-winblue-600 mb-1&quot;&gt;+20%&lt;/div&gt;
            &lt;div class=&quot;text-xs font-medium text-slate-500&quot;&gt;ตอบสนองไวขึ้นสูงสุด&lt;/div&gt;
          &lt;/div&gt;
          &lt;div class=&quot;bg-slate-50 border border-slate-100 p-5 rounded-2xl text-center&quot;&gt;
            &lt;div class=&quot;text-3xl font-bold text-emerald-600 mb-1&quot;&gt;2GB&lt;/div&gt;
            &lt;div class=&quot;text-xs font-medium text-slate-500&quot;&gt;เก็บข้อมูลบน RAM เพิ่มขึ้น&lt;/div&gt;
          &lt;/div&gt;
          &lt;div class=&quot;bg-slate-50 border border-slate-100 p-5 rounded-2xl text-center&quot;&gt;
            &lt;div class=&quot;text-3xl font-bold text-indigo-600 mb-1&quot;&gt;+200MB&lt;/div&gt;
            &lt;div class=&quot;text-xs font-medium text-slate-500&quot;&gt;คืนพื้นที่ RAM จาก Widget&lt;/div&gt;
          &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- Section: Memory Management Concept --&gt;
        &lt;div class=&quot;space-y-4 pt-4 border-t border-slate-100&quot;&gt;
          &lt;h2 class=&quot;text-xl font-bold text-slate-900 flex items-center gap-2&quot;&gt;
            &lt;i class=&quot;fa-solid fa-microchip text-winblue-600&quot;&gt;&lt;/i&gt; แนวคิดใหม่: ปรับซอฟต์แวร์ ไม่ต้องง้อฮาร์ดแวร์
          &lt;/h2&gt;
          &lt;p class=&quot;text-slate-600 text-sm sm:text-base leading-relaxed&quot;&gt;
            รอบนี้ Microsoft ไม่ได้เรียกร้องให้ผู้ใช้ซื้อสเปกหรืออัปเกรดชิ้นส่วน Hardware เพิ่มเติม แต่ใช้วิธีปรับโครงสร้างระบบจัดการหน่วยความจำ RAM ภายในตัวซอฟต์แวร์โดยตรง:
          &lt;/p&gt;

          &lt;div class=&quot;space-y-3 mt-3&quot;&gt;
            &lt;!-- Item 1 --&gt;
            &lt;div class=&quot;p-4 bg-winblue-50/50 border border-winblue-100/60 rounded-xl flex items-start gap-3&quot;&gt;
              &lt;div class=&quot;p-2 bg-winblue-500 text-white rounded-lg text-sm shrink-0 mt-0.5&quot;&gt;
                &lt;i class=&quot;fa-solid fa-memory&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;div class=&quot;text-sm sm:text-base text-slate-700&quot;&gt;
                &lt;strong class=&quot;font-semibold text-slate-900&quot;&gt;เก็บข้อมูลที่ใช้งานบน RAM เพิ่มขึ้นสูงสุด 2GB:&lt;/strong&gt; 
                จากเดิมที่ระบบมักจะผลักข้อมูลไปพักไว้ใน Disk สำรองซึ่งความเร็วต่ำกว่า ทำให้เวลาสลับหน้าต่างเกิดอาการกระตุก โครงสร้างใหม่นี้จะช่วยคงข้อมูลสำคัญบน RAM ได้นานขึ้น สลับแอปและเบราว์เซอร์ได้อย่างต่อเนื่องลื่นไหล
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Item 2 --&gt;
            &lt;div class=&quot;p-4 bg-winblue-50/50 border border-winblue-100/60 rounded-xl flex items-start gap-3&quot;&gt;
              &lt;div class=&quot;p-2 bg-winblue-500 text-white rounded-lg text-sm shrink-0 mt-0.5&quot;&gt;
                &lt;i class=&quot;fa-solid fa-border-all&quot;&gt;&lt;/i&gt;
              &lt;/div&gt;
              &lt;div class=&quot;text-sm sm:text-base text-slate-700&quot;&gt;
                &lt;strong class=&quot;font-semibold text-slate-900&quot;&gt;ลดการโหลด Widget ในเบื้องหลัง:&lt;/strong&gt; 
                สำหรับเครื่องที่มี RAM 8GB หรือต่ำกว่า ระบบจะไม่โหลดหน้าต่าง Widget ล่วงหน้าอีกต่อไป จนกว่าผู้ใช้จะคลิกเปิดด้วยตนเอง คืนพื้นที่ RAM ว่างให้โปรแกรมอื่นใช้งานได้ทันทีกว่า 200MB
              &lt;/div&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- Section: Speed Improvements --&gt;
        &lt;div class=&quot;space-y-4 pt-4 border-t border-slate-100&quot;&gt;
          &lt;h2 class=&quot;text-xl font-bold text-slate-900 flex items-center gap-2&quot;&gt;
            &lt;i class=&quot;fa-solid fa-gauge-high text-winblue-600&quot;&gt;&lt;/i&gt; ทำงานไวขึ้นในคำสั่งพื้นฐาน
          &lt;/h2&gt;
          &lt;p class=&quot;text-slate-600 text-sm sm:text-base leading-relaxed&quot;&gt;
            ตัวเลขความเร็วที่ตอบสนองไวขึ้นสูงสุด 20% มาจากการทดสอบเปรียบเทียบภายในระหว่าง Build 26300.9550 กับ Build เดิม (26200.7628) ซึ่งครอบคลุมการใช้งานจริงในชีวิตประจำวัน:
          &lt;/p&gt;

          &lt;div class=&quot;grid grid-cols-1 sm:grid-cols-2 gap-3 text-sm font-medium text-slate-700&quot;&gt;
            &lt;div class=&quot;flex items-center gap-3 p-3 bg-slate-50 rounded-xl border border-slate-100&quot;&gt;
              &lt;i class=&quot;fa-solid fa-bars text-winblue-500&quot;&gt;&lt;/i&gt; Start Menu &amp; คลิกขวา
            &lt;/div&gt;
            &lt;div class=&quot;flex items-center gap-3 p-3 bg-slate-50 rounded-xl border border-slate-100&quot;&gt;
              &lt;i class=&quot;fa-solid fa-magnifying-glass text-winblue-500&quot;&gt;&lt;/i&gt; แถบ Search &amp; File Explorer
            &lt;/div&gt;
            &lt;div class=&quot;flex items-center gap-3 p-3 bg-slate-50 rounded-xl border border-slate-100&quot;&gt;
              &lt;i class=&quot;fa-solid fa-gear text-winblue-500&quot;&gt;&lt;/i&gt; หน้าต่าง Settings
            &lt;/div&gt;
            &lt;div class=&quot;flex items-center gap-3 p-3 bg-slate-50 rounded-xl border border-slate-100&quot;&gt;
              &lt;i class=&quot;fa-solid fa-scissors text-winblue-500&quot;&gt;&lt;/i&gt; Snipping Tool
            &lt;/div&gt;
            &lt;div class=&quot;flex items-center gap-3 p-3 bg-slate-50 rounded-xl border border-slate-100 sm:col-span-2&quot;&gt;
              &lt;i class=&quot;fa-solid fa-briefcase text-winblue-500&quot;&gt;&lt;/i&gt; ชุดโปรแกรม Microsoft 365
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- Section: Extra Improvements --&gt;
        &lt;div class=&quot;space-y-4 pt-4 border-t border-slate-100&quot;&gt;
          &lt;h2 class=&quot;text-xl font-bold text-slate-900 flex items-center gap-2&quot;&gt;
            &lt;i class=&quot;fa-solid fa-wand-magic-sparkles text-winblue-600&quot;&gt;&lt;/i&gt; ฟังก์ชันเสริมใหม่ๆ ที่สะดวกยิ่งขึ้น
          &lt;/h2&gt;

          &lt;ul class=&quot;space-y-3 text-sm sm:text-base text-slate-600&quot;&gt;
            &lt;li class=&quot;flex items-start gap-3&quot;&gt;
              &lt;i class=&quot;fa-solid fa-bluetooth text-blue-500 mt-1&quot;&gt;&lt;/i&gt;
              &lt;span&gt;&lt;strong class=&quot;text-slate-900 font-semibold&quot;&gt;Bluetooth มั่นคงขึ้น:&lt;/strong&gt; จับคู่อุปกรณ์ไร้สายอย่าง AirPods ได้ไวขึ้นสูงสุดถึง 15 วินาที&lt;/span&gt;
            &lt;/li&gt;
            &lt;li class=&quot;flex items-start gap-3&quot;&gt;
              &lt;i class=&quot;fa-solid fa-face-smile text-emerald-500 mt-1&quot;&gt;&lt;/i&gt;
              &lt;span&gt;&lt;strong class=&quot;text-slate-900 font-semibold&quot;&gt;Windows Hello ปลดล็อกไวขึ้น:&lt;/strong&gt; ตรวจจับใบหน้าและสแกนเข้าสู่ระบบได้กระชับฉับไว&lt;/span&gt;
            &lt;/li&gt;
            &lt;li class=&quot;flex items-start gap-3&quot;&gt;
              &lt;i class=&quot;fa-solid fa-grip text-amber-500 mt-1&quot;&gt;&lt;/i&gt;
              &lt;span&gt;&lt;strong class=&quot;text-slate-900 font-semibold&quot;&gt;ย้าย Taskbar ได้แล้ว:&lt;/strong&gt; ฟีเจอร์ที่เรียกร้องมานานถูกนำกลับมา สามารถย้าย Taskbar ไปไว้ด้านบนหรือด้านข้างจอได้&lt;/span&gt;
            &lt;/li&gt;
            &lt;li class=&quot;flex items-start gap-3&quot;&gt;
              &lt;i class=&quot;fa-solid fa-arrows-rotate text-purple-500 mt-1&quot;&gt;&lt;/i&gt;
              &lt;span&gt;&lt;strong class=&quot;text-slate-900 font-semibold&quot;&gt;Windows Update กวนใจน้อยลง:&lt;/strong&gt; ปรับกระบวนการทำงานให้เงียบขึ้น ไม่ขัดจังหวะการทำงาน&lt;/span&gt;
            &lt;/li&gt;
          &lt;/ul&gt;
        &lt;/div&gt;

        &lt;!-- Closing / Call to Action Box --&gt;
        &lt;div class=&quot;bg-gradient-to-br from-slate-900 to-slate-800 text-white p-6 sm:p-8 rounded-2xl space-y-3 mt-8&quot;&gt;
          &lt;h3 class=&quot;text-lg font-bold flex items-center gap-2&quot;&gt;
            &lt;i class=&quot;fa-solid fa-comments text-amber-400&quot;&gt;&lt;/i&gt; อัปเดตกันแล้วหรือยัง?
          &lt;/h3&gt;
          &lt;p class=&quot;text-sm sm:text-base text-slate-300 leading-relaxed&quot;&gt;
            การปรับปรุงนี้กำลังทยอยปล่อยให้ใช้งานแบบเป็นขั้นตอน ผู้ใช้แต่ละเครื่องจึงอาจจะได้รับฟีเจอร์ต่างๆ ไม่พร้อมกันครับ สำหรับใครที่ลองกดอัปเดตแล้ว ได้ฟีเจอร์ใหม่หรือคอมลื่นขึ้นจริงไหม มาขิงกันหน่อยครับ!
          &lt;/p&gt;
        &lt;/div&gt;

      &lt;/div&gt;
    &lt;/article&gt;
  &lt;/main&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/4408717180271333876/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/4408717180271333876' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/4408717180271333876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/4408717180271333876'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/microsoft-windows-11-20-ram-8gb.html' title='Microsoft! อัปเดต Windows 11 ใหม่ ตอบสนองไวขึ้น 20% คอม RAM 8GB บอกลาความหน่วง'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-1784684247442066673</id><published>2026-10-22T13:50:49.358+07:00</published><updated>2026-10-22T14:11:11.989+07:00</updated><title type='text'>แอปสำหรับ ย่อขยายภาพหลายภาพ เพื่อการขายสินค้า</title><content type='html'>&lt;!-- กรอบโปรแกรมย่อรูปขนาดพอดีสำหรับ Blogger --&gt;
&lt;div style=&quot;background:#121212; color:#ffffff; border-radius:10px; padding:15px; font-family:&#39;Segoe UI&#39;, Tahoma, sans-serif; max-width:900px; margin:0 auto; box-shadow:0 4px 20px rgba(0,0,0,0.8); border:1px solid #333;&quot;&gt;

  &lt;!-- ส่วนหัวแสดงชื่อ --&gt;
  &lt;div style=&quot;font-size:16px; font-weight:bold; color:#00a8ff; border-bottom:1px solid #333; padding-bottom:8px; margin-bottom:12px; display:flex; align-items:center; gap:8px;&quot;&gt;
    ⚙️ เมนูคำสั่งย่อ/บังคับขนาดรูปภาพสำหรับ Shopee
  &lt;/div&gt;

  &lt;div style=&quot;display:flex; flex-wrap:wrap; gap:15px;&quot;&gt;
    
    &lt;!-- แถบเมนูคำสั่งฝั่งซ้าย ( Left Control Panel ) --&gt;
    &lt;div style=&quot;flex:1; min-width:280px; display:flex; flex-direction:column; gap:10px;&quot;&gt;
      
      &lt;!-- 1. นำเข้ารูป --&gt;
      &lt;div style=&quot;background:#222; padding:10px; border-radius:6px; border:1px solid #333;&quot;&gt;
        &lt;div style=&quot;font-size:12px; font-weight:bold; color:#ff9800; margin-bottom:6px;&quot;&gt;1. นำเข้ารูปภาพ&lt;/div&gt;
        &lt;button type=&quot;button&quot; onclick=&quot;document.getElementById(&#39;blgFileInput&#39;).click()&quot; style=&quot;width:100%; background:#0078d4; color:#fff; border:none; padding:8px; border-radius:4px; font-weight:bold; cursor:pointer;&quot;&gt;
          📂 เลือกรูปภาพ (หลายรูปพร้อมกัน)
        &lt;/button&gt;
        &lt;input type=&quot;file&quot; id=&quot;blgFileInput&quot; accept=&quot;image/*&quot; multiple style=&quot;display:none;&quot; onchange=&quot;blgHandleFiles(event)&quot;&gt;
        
        &lt;div id=&quot;blgCounter&quot; style=&quot;font-size:11px; color:#aaa; margin-top:5px; text-align:center;&quot;&gt;ยังไม่ได้เลือกรูปภาพ&lt;/div&gt;
        
        &lt;!-- รายชื่อรูปภาพ พร้อมปุ่มลบทีละรูป --&gt;
        &lt;div id=&quot;blgFileListBox&quot; style=&quot;display:none; max-height:120px; overflow-y:auto; background:#181818; border:1px solid #333; border-radius:4px; margin-top:6px;&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;

      &lt;!-- 2. ตั้งค่าขนาดภาพ --&gt;
      &lt;div style=&quot;background:#222; padding:10px; border-radius:6px; border:1px solid #333;&quot;&gt;
        &lt;div style=&quot;font-size:12px; font-weight:bold; color:#ff9800; margin-bottom:6px;&quot;&gt;2. บังคับขนาดภาพเท่ากันทุกรูป&lt;/div&gt;
        
        &lt;div style=&quot;margin-bottom:6px;&quot;&gt;
          &lt;label style=&quot;font-size:11px; color:#ccc; display:block; margin-bottom:2px;&quot;&gt;รูปแบบขนาดสำเร็จรูป:&lt;/label&gt;
          &lt;select id=&quot;blgPreset&quot; onchange=&quot;blgApplyPreset()&quot; style=&quot;width:100%; background:#181818; color:#fff; border:1px solid #444; padding:5px; border-radius:4px; font-size:12px;&quot;&gt;
            &lt;option value=&quot;w800&quot;&gt;กว้าง 800 px (ความสูงปรับสมดุล)&lt;/option&gt;
            &lt;option value=&quot;shopee&quot; selected&gt;Shopee จัตุรัส (1024 x 1024 px)&lt;/option&gt;
            &lt;option value=&quot;hd&quot;&gt;HD (1280 x 720 px)&lt;/option&gt;
            &lt;option value=&quot;fhd&quot;&gt;Full HD (1920 x 1080 px)&lt;/option&gt;
            &lt;option value=&quot;custom&quot;&gt;กำหนดมิติเอง (Custom)&lt;/option&gt;
          &lt;/select&gt;
        &lt;/div&gt;

        &lt;div style=&quot;display:flex; gap:8px; margin-bottom:6px;&quot;&gt;
          &lt;div style=&quot;flex:1;&quot;&gt;
            &lt;label style=&quot;font-size:11px; color:#ccc; display:block; margin-bottom:2px;&quot;&gt;กว้าง (px):&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;blgWidth&quot; value=&quot;1024&quot; onchange=&quot;blgProcessAll()&quot; style=&quot;width:100%; background:#181818; color:#fff; border:1px solid #444; padding:5px; border-radius:4px; font-size:12px;&quot;&gt;
          &lt;/div&gt;
          &lt;div style=&quot;flex:1;&quot;&gt;
            &lt;label style=&quot;font-size:11px; color:#ccc; display:block; margin-bottom:2px;&quot;&gt;สูง (px):&lt;/label&gt;
            &lt;input type=&quot;number&quot; id=&quot;blgHeight&quot; value=&quot;1024&quot; onchange=&quot;blgProcessAll()&quot; style=&quot;width:100%; background:#181818; color:#fff; border:1px solid #444; padding:5px; border-radius:4px; font-size:12px;&quot;&gt;
          &lt;/div&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin-bottom:6px;&quot;&gt;
          &lt;label style=&quot;font-size:11px; color:#ccc; display:block; margin-bottom:2px;&quot;&gt;โหมดจัดสัดส่วนภาพ:&lt;/label&gt;
          &lt;select id=&quot;blgFitMode&quot; onchange=&quot;blgProcessAll()&quot; style=&quot;width:100%; background:#181818; color:#fff; border:1px solid #444; padding:5px; border-radius:4px; font-size:12px;&quot;&gt;
            &lt;option value=&quot;cover&quot; selected&gt;ครอบตัดให้เต็มช่อง (Crop to Fill)&lt;/option&gt;
            &lt;option value=&quot;contain&quot;&gt;สเกลพอดีช่องมีขอบสีดำ (Contain)&lt;/option&gt;
            &lt;option value=&quot;stretch&quot;&gt;ดึงยืดภาพให้ตรงขนาดเป๊ะ (Stretch)&lt;/option&gt;
          &lt;/select&gt;
        &lt;/div&gt;

        &lt;div style=&quot;border-top:1px solid #333; margin-top:6px; padding-top:6px;&quot;&gt;
          &lt;label style=&quot;font-size:11px; color:#ccc; display:block; margin-bottom:2px;&quot;&gt;บังคับขนาดไฟล์เป้าหมายสูงสุด (MB):&lt;/label&gt;
          &lt;select id=&quot;blgMaxMb&quot; onchange=&quot;blgProcessAll()&quot; style=&quot;width:100%; background:#181818; color:#fff; border:1px solid #444; padding:5px; border-radius:4px; font-size:12px;&quot;&gt;
            &lt;option value=&quot;1.5&quot;&gt;ไม่เกิน 1.5 MB&lt;/option&gt;
            &lt;option value=&quot;1.6&quot;&gt;ไม่เกิน 1.6 MB&lt;/option&gt;
            &lt;option value=&quot;1.8&quot;&gt;ไม่เกิน 1.8 MB&lt;/option&gt;
            &lt;option value=&quot;2.0&quot; selected&gt;ไม่เกิน 2.0 MB (มาตรฐาน Shopee)&lt;/option&gt;
            &lt;option value=&quot;unlimited&quot;&gt;ไม่จำกัดขนาด MB&lt;/option&gt;
          &lt;/select&gt;
        &lt;/div&gt;
      &lt;/div&gt;

      &lt;!-- 3. ปุ่มบันทึก --&gt;
      &lt;div style=&quot;background:#222; padding:10px; border-radius:6px; border:1px solid #333;&quot;&gt;
        &lt;div style=&quot;font-size:12px; font-weight:bold; color:#ff9800; margin-bottom:6px;&quot;&gt;3. บันทึกรูปภาพ&lt;/div&gt;
        &lt;button type=&quot;button&quot; onclick=&quot;blgDownloadAll()&quot; style=&quot;width:100%; background:#28a745; color:#fff; border:none; padding:8px; border-radius:4px; font-weight:bold; cursor:pointer; margin-bottom:5px;&quot;&gt;
          💾 บันทึกรูปภาพทั้งหมดลงเครื่อง
        &lt;/button&gt;
        &lt;button type=&quot;button&quot; onclick=&quot;blgDownloadSingle()&quot; style=&quot;width:100%; background:#444; color:#fff; border:none; padding:8px; border-radius:4px; font-weight:bold; cursor:pointer;&quot;&gt;
          💾 บันทึกเฉพาะรูปที่ดูอยู่นี้
        &lt;/button&gt;
      &lt;/div&gt;

      &lt;button type=&quot;button&quot; onclick=&quot;blgClearAll()&quot; id=&quot;blgBtnClear&quot; style=&quot;display:none; width:100%; background:#dc3545; color:#fff; border:none; padding:6px; border-radius:4px; font-size:12px; cursor:pointer;&quot;&gt;
        🗑️ ล้างรูปภาพทั้งหมด
      &lt;/button&gt;
    &lt;/div&gt;

    &lt;!-- ช่องพรีวิวรูปฝั่งขวา ( Right Preview Area ) --&gt;
    &lt;div style=&quot;flex:1.5; min-width:300px; background:#0a0a0a; border:1px solid #333; border-radius:6px; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden;&quot;&gt;
      
      &lt;div style=&quot;flex:1; display:flex; align-items:center; justify-content:center; padding:10px; min-height:300px; position:relative;&quot;&gt;
        &lt;img id=&quot;blgMainPreview&quot; src=&quot;&quot; style=&quot;max-width:100%; max-height:380px; display:none; border-radius:4px; box-shadow:0 0 15px rgba(0,0,0,0.9); border:1px solid #444;&quot;&gt;
        
        &lt;div id=&quot;blgPlaceholder&quot; style=&quot;text-align:center; color:#555;&quot;&gt;
          &lt;p style=&quot;font-size:48px; margin:0;&quot;&gt;🖼️&lt;/p&gt;
          &lt;p style=&quot;font-size:14px; margin-top:8px; color:#888;&quot;&gt;
            กดปุ่ม &lt;b&gt;&quot;เลือกรูปภาพ&quot;&lt;/b&gt; ทางด้านซ้าย&lt;br&gt;รูปภาพจะแสดงพรีวิวขนาดใหญ่ที่นี่
          &lt;/p&gt;
        &lt;/div&gt;
      &lt;/div&gt;

      &lt;!-- แถบปุ่มกดก่อนหน้า/ถัดไป --&gt;
      &lt;div id=&quot;blgNavBar&quot; style=&quot;display:none; background:#181818; padding:8px 12px; border-top:1px solid #2a2a2a; align-items:center; justify-content:space-between;&quot;&gt;
        &lt;button type=&quot;button&quot; onclick=&quot;blgPrevImg()&quot; style=&quot;background:#333; color:#fff; border:1px solid #555; padding:5px 10px; border-radius:4px; cursor:pointer; font-size:12px;&quot;&gt;◀ รูปก่อนหน้า&lt;/button&gt;
        
        &lt;div id=&quot;blgSizeInfoTag&quot; style=&quot;font-size:11px; color:#5cdb6d; background:rgba(92,219,109,0.1); padding:4px 8px; border-radius:4px; border:1px solid #28a745;&quot;&gt;
          ขนาดเดิม: - | ขนาดใหม่: -
        &lt;/div&gt;

        &lt;button type=&quot;button&quot; onclick=&quot;blgNextImg()&quot; style=&quot;background:#333; color:#fff; border:1px solid #555; padding:5px 10px; border-radius:4px; cursor:pointer; font-size:12px;&quot;&gt;รูปถัดไป ▶&lt;/button&gt;
      &lt;/div&gt;

    &lt;/div&gt;

  &lt;/div&gt;

  &lt;canvas id=&quot;blgCanvas&quot; style=&quot;display:none;&quot;&gt;&lt;/canvas&gt;
&lt;/div&gt;

&lt;script&gt;
(function() {
  let blgList = [];
  let blgIdx = 0;
  let blgWorking = false;

  window.blgHandleFiles = function(e) {
    const files = Array.from(e.target.files);
    if (!files.length) return;

    files.forEach(f =&gt; {
      if (f.type.startsWith(&#39;image/&#39;)) {
        blgList.push({
          file: f,
          name: f.name,
          origSize: f.size,
          url: URL.createObjectURL(f),
          blob: null,
          newSize: 0,
          w: 0,
          h: 0
        });
      }
    });

    if (blgList.length &gt; 0) {
      document.getElementById(&#39;blgBtnClear&#39;).style.display = &#39;block&#39;;
      document.getElementById(&#39;blgFileListBox&#39;).style.display = &#39;block&#39;;
      blgRenderList();
      blgProcessAll();
      blgShowImg(blgList.length - files.length); // แสดงภาพแรกของชุดที่เพิ่งดึงเข้ามา
    }
    e.target.value = &#39;&#39;;
  };

  window.blgApplyPreset = function() {
    const p = document.getElementById(&#39;blgPreset&#39;).value;
    const w = document.getElementById(&#39;blgWidth&#39;);
    const h = document.getElementById(&#39;blgHeight&#39;);

    if (p === &#39;w800&#39;) { w.value = 800; h.value = 800; }
    else if (p === &#39;shopee&#39;) { w.value = 1024; h.value = 1024; }
    else if (p === &#39;hd&#39;) { w.value = 1280; h.value = 720; }
    else if (p === &#39;fhd&#39;) { w.value = 1920; h.value = 1080; }

    blgProcessAll();
  };

  function blgLoadImg(url) {
    return new Promise((res, rej) =&gt; {
      const img = new Image();
      img.onload = () =&gt; res(img);
      img.onerror = rej;
      img.src = url;
    });
  }

  function blgCanvasToBlob(canvas, q) {
    return new Promise(res =&gt; canvas.toBlob(blob =&gt; res(blob), &#39;image/jpeg&#39;, q));
  }

  function blgSleep(ms) {
    return new Promise(res =&gt; setTimeout(res, ms));
  }

  window.blgProcessAll = async function() {
    if (!blgList.length || blgWorking) return;
    blgWorking = true;

    const targetW = parseInt(document.getElementById(&#39;blgWidth&#39;).value) || 1024;
    const targetH = parseInt(document.getElementById(&#39;blgHeight&#39;).value) || 1024;
    const fitMode = document.getElementById(&#39;blgFitMode&#39;).value;
    const maxMbVal = document.getElementById(&#39;blgMaxMb&#39;).value;
    const maxSizeBytes = (maxMbVal !== &#39;unlimited&#39;) ? parseFloat(maxMbVal) * 1024 * 1024 : null;

    const canvas = document.getElementById(&#39;blgCanvas&#39;);
    const ctx = canvas.getContext(&#39;2d&#39;);

    canvas.width = targetW;
    canvas.height = targetH;

    for (let i = 0; i &lt; blgList.length; i++) {
      const item = blgList[i];
      try {
        const img = await blgLoadImg(item.url);

        ctx.fillStyle = &#39;#000000&#39;;
        ctx.fillRect(0, 0, targetW, targetH);

        if (fitMode === &#39;stretch&#39;) {
          ctx.drawImage(img, 0, 0, targetW, targetH);
        } else if (fitMode === &#39;contain&#39;) {
          const scale = Math.min(targetW / img.width, targetH / img.height);
          const nw = img.width * scale, nh = img.height * scale;
          ctx.drawImage(img, (targetW - nw) / 2, (targetH - nh) / 2, nw, nh);
        } else if (fitMode === &#39;cover&#39;) {
          const scale = Math.max(targetW / img.width, targetH / img.height);
          const nw = img.width * scale, nh = img.height * scale;
          ctx.drawImage(img, (targetW - nw) / 2, (targetH - nh) / 2, nw, nh);
        }

        item.w = targetW;
        item.h = targetH;

        let q = 0.90;
        let blob = await blgCanvasToBlob(canvas, q);

        while (maxSizeBytes &amp;&amp; blob.size &gt; maxSizeBytes &amp;&amp; q &gt; 0.20) {
          q -= 0.10;
          blob = await blgCanvasToBlob(canvas, q);
          await blgSleep(10);
        }

        item.blob = blob;
        item.newSize = blob.size;

        if (i === blgIdx) blgUpdateTag();
        await blgSleep(15);
      } catch (err) {
        console.error(err);
      }
    }

    blgWorking = false;
  };

  window.blgShowImg = function(i) {
    if (i &lt; 0 || i &gt;= blgList.length) return;
    blgIdx = i;
    const item = blgList[blgIdx];

    const prev = document.getElementById(&#39;blgMainPreview&#39;);
    prev.src = item.url;
    prev.style.display = &#39;block&#39;;

    document.getElementById(&#39;blgPlaceholder&#39;).style.display = &#39;none&#39;;
    document.getElementById(&#39;blgNavBar&#39;).style.display = &#39;flex&#39;;

    document.getElementById(&#39;blgCounter&#39;).textContent = `นำเข้าแล้ว ${blgList.length} รูปภาพ`;
    blgHighlightList();
    blgUpdateTag();
  };

  window.blgPrevImg = function() { if (blgIdx &gt; 0) blgShowImg(blgIdx - 1); };
  window.blgNextImg = function() { if (blgIdx &lt; blgList.length - 1) blgShowImg(blgIdx + 1); };

  function blgUpdateTag() {
    if (!blgList.length) return;
    const item = blgList[blgIdx];
    const tag = document.getElementById(&#39;blgSizeInfoTag&#39;);
    const szText = item.newSize ? blgFmt(item.newSize) : &#39;กำลังคำนวณ...&#39;;
    tag.innerHTML = `รูปที่ ${blgIdx + 1}/${blgList.length}: &lt;b&gt;${item.name}&lt;/b&gt; | มิติ: &lt;b style=&quot;color:#00a8ff&quot;&gt;${item.w}x${item.h}&lt;/b&gt; | เดิม: ${blgFmt(item.origSize)} ➔ &lt;b style=&quot;color:#5cdb6d&quot;&gt;ใหม่: ${szText}&lt;/b&gt;`;
  }

  // ฟังก์ชันสร้างรายการรูปภาพ พร้อมปุ่มลบแยกเฉพาะรูป
  function blgRenderList() {
    const box = document.getElementById(&#39;blgFileListBox&#39;);
    box.innerHTML = &#39;&#39;;
    blgList.forEach((item, index) =&gt; {
      const div = document.createElement(&#39;div&#39;);
      div.className = &#39;blg-item&#39;;
      div.style.cssText = `padding:4px 8px; font-size:11px; border-bottom:1px solid #222; cursor:pointer; display:flex; justify-content:space-between; align-items:center; ${index === blgIdx ? &#39;background:#004578; color:#fff; font-weight:bold;&#39; : &#39;color:#ccc;&#39;}`;
      
      div.innerHTML = `
        &lt;span style=&quot;overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:200px;&quot; onclick=&quot;blgShowImg(${index})&quot;&gt;${index + 1}. ${item.name}&lt;/span&gt;
        &lt;button type=&quot;button&quot; onclick=&quot;blgRemoveSingle(${index}, event)&quot; title=&quot;ลบรูปนี้&quot; style=&quot;background:#dc3545; color:#fff; border:none; border-radius:3px; padding:1px 5px; font-size:10px; cursor:pointer; margin-left:5px;&quot;&gt;🗑️&lt;/button&gt;
      `;
      box.appendChild(div);
    });
  }

  // ฟังก์ชันลบรูปภาพทีละใบ
  window.blgRemoveSingle = function(index, event) {
    if (event) event.stopPropagation(); // ป้องกันไม่ให้คลิกซ้อน
    
    // คืนค่าหน่วยความจำ RAM ของรูปที่ลบ
    if (blgList[index] &amp;&amp; blgList[index].url) {
      URL.revokeObjectURL(blgList[index].url);
    }

    blgList.splice(index, 1); // ลบรูปออกจากรายการ

    if (blgList.length === 0) {
      blgClearAll();
    } else {
      if (blgIdx &gt;= blgList.length) {
        blgIdx = blgList.length - 1;
      }
      blgRenderList();
      blgShowImg(blgIdx);
    }
  };

  function blgHighlightList() {
    const items = document.querySelectorAll(&#39;.blg-item&#39;);
    items.forEach((el, idx) =&gt; {
      if (idx === blgIdx) {
        el.style.background = &#39;#004578&#39;;
        el.style.color = &#39;#fff&#39;;
        el.style.fontWeight = &#39;bold&#39;;
      } else {
        el.style.background = &#39;transparent&#39;;
        el.style.color = &#39;#ccc&#39;;
        el.style.fontWeight = &#39;normal&#39;;
      }
    });
  }

  window.blgDownloadAll = function() {
    if (!blgList.length) { alert(&#39;กรุณาเลือกรูปภาพก่อนครับ&#39;); return; }
    let delay = 0;
    blgList.forEach(item =&gt; {
      if (item.blob) {
        setTimeout(() =&gt; {
          const a = document.createElement(&#39;a&#39;);
          a.href = URL.createObjectURL(item.blob);
          let clean = item.name.replace(/\.[^/.]+$/, &quot;&quot;);
          a.download = `${clean}_shopee.jpg`;
          document.body.appendChild(a);
          a.click();
          document.body.removeChild(a);
        }, delay);
        delay += 300;
      }
    });
  };

  window.blgDownloadSingle = function() {
    if (!blgList.length) return;
    const item = blgList[blgIdx];
    if (item.blob) {
      const a = document.createElement(&#39;a&#39;);
      a.href = URL.createObjectURL(item.blob);
      let clean = item.name.replace(/\.[^/.]+$/, &quot;&quot;);
      a.download = `${clean}_shopee.jpg`;
      document.body.appendChild(a);
      a.click();
      document.body.removeChild(a);
    }
  };

  window.blgClearAll = function() {
    blgList.forEach(item =&gt; { if (item.url) URL.revokeObjectURL(item.url); });
    blgList = [];
    blgIdx = 0;
    blgWorking = false;
    document.getElementById(&#39;blgMainPreview&#39;).style.display = &#39;none&#39;;
    document.getElementById(&#39;blgPlaceholder&#39;).style.display = &#39;block&#39;;
    document.getElementById(&#39;blgNavBar&#39;).style.display = &#39;none&#39;;
    document.getElementById(&#39;blgFileListBox&#39;).style.display = &#39;none&#39;;
    document.getElementById(&#39;blgBtnClear&#39;).style.display = &#39;none&#39;;
    document.getElementById(&#39;blgCounter&#39;).textContent = &#39;ยังไม่ได้เลือกรูปภาพ&#39;;
  };

  function blgFmt(b) {
    if (!b) return &#39;0 Bytes&#39;;
    const k = 1024, s = [&#39;Bytes&#39;, &#39;KB&#39;, &#39;MB&#39;, &#39;GB&#39;], i = Math.floor(Math.log(b) / Math.log(k));
    return parseFloat((b / Math.pow(k, i)).toFixed(2)) + &#39; &#39; + s[i];
  }
})();
&lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/1784684247442066673/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/1784684247442066673' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/1784684247442066673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/1784684247442066673'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/shopee-box-sizing-border-box-margin-0_0621083615.html' title='แอปสำหรับ ย่อขยายภาพหลายภาพ เพื่อการขายสินค้า'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-426368624391210205</id><published>2026-10-22T11:21:34.580+07:00</published><updated>2026-10-22T11:21:34.580+07:00</updated><title type='text'>วิธีแก้----ทำไมลง Windows ใหม่ ต้องบังคับ Login</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;ไขข้อข้องใจ: ทำไมลง Windows ใหม่ ต้องบังคับ Login ทั้งที่ไม่มี Driver เน็ต?&lt;/title&gt;
    &lt;!-- Tailwind CSS CDN --&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;!-- Google Fonts: Sarabun &amp; Inter --&gt;
    &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.googleapis.com&quot;&gt;
    &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot; crossorigin&gt;
    &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&amp;family=Sarabun:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;!-- FontAwesome for Icons --&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&gt;
    &lt;script&gt;
        tailwind.config = {
            theme: {
                extend: {
                    fontFamily: {
                        sans: [&#39;Sarabun&#39;, &#39;Inter&#39;, &#39;sans-serif&#39;],
                    },
                    colors: {
                        pastel: {
                            blue: &#39;#e0f2fe&#39;,
                            blueHover: &#39;#bae6fd&#39;,
                            brand: &#39;#0284c7&#39;,
                            darkBlue: &#39;#0369a1&#39;,
                            cardBg: &#39;#f8fafc&#39;,
                        }
                    }
                }
            }
        }
    &lt;/script&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Sarabun&#39;, &#39;Inter&#39;, sans-serif;
            color: #1e293b;
            background-color: #ffffff;
            line-height: 1.7;
        }
        .code-block {
            font-family: &#39;Courier New&#39;, Courier, monospace;
        }
        /* Custom Smooth Transitions */
        .tab-btn {
            transition: all 0.2s ease-in-out;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-white text-slate-800 min-h-screen flex flex-col&quot;&gt;

    &lt;!-- Toast Notification --&gt;
    &lt;div id=&quot;toast&quot; class=&quot;fixed bottom-5 right-5 transform translate-y-20 opacity-0 transition-all duration-300 ease-in-out bg-slate-900 text-white px-5 py-3 rounded-xl shadow-2xl flex items-center gap-3 z-50&quot;&gt;
        &lt;i class=&quot;fa-solid fa-circle-check text-emerald-400 text-lg&quot;&gt;&lt;/i&gt;
        &lt;span class=&quot;font-medium text-sm&quot;&gt;คัดลอกคำสั่งเรียบร้อยแล้ว!&lt;/span&gt;
    &lt;/div&gt;

    &lt;!-- Header Section --&gt;
    &lt;header class=&quot;bg-gradient-to-b from-sky-100 to-sky-50/50 border-b border-sky-100 py-10 px-4 sm:px-6 text-center&quot;&gt;
        &lt;div class=&quot;max-w-4xl mx-auto&quot;&gt;
            &lt;span class=&quot;inline-block bg-sky-200/70 text-sky-800 text-xs sm:text-sm font-semibold px-3 py-1 rounded-full mb-3&quot;&gt;
                &lt;i class=&quot;fa-brands fa-windows mr-1&quot;&gt;&lt;/i&gt; Windows 11 OOBE Guide
            &lt;/span&gt;
            &lt;h1 class=&quot;text-2xl sm:text-3xl md:text-4xl font-bold text-slate-900 tracking-tight leading-tight mb-4&quot;&gt;
                ทำไมลง Windows ใหม่ ต้องบังคับ Login ทั้งที่ยังไม่มี Driver Net?
            &lt;/h1&gt;
            &lt;p class=&quot;text-slate-600 text-base sm:text-lg max-w-2xl mx-auto leading-relaxed&quot;&gt;
                ทำความเข้าใจเหตุผลการออกแบบหน้า OOBE (Out-of-Box Experience) และทางรอดในการปลดล็อกเข้าใช้งานระบบเมื่อติดอยู่ในวงจรไร้อินเทอร์เน็ต
            &lt;/p&gt;
        &lt;/div&gt;
    &lt;/header&gt;

    &lt;!-- Navigation Tabs / Mode Selector --&gt;
    &lt;div class=&quot;sticky top-0 bg-white/90 backdrop-blur-md border-b border-slate-100 z-40 shadow-sm&quot;&gt;
        &lt;div class=&quot;max-w-4xl mx-auto px-4 flex justify-center gap-2 sm:gap-4 py-3&quot;&gt;
            &lt;button id=&quot;tab-overview&quot; onclick=&quot;switchTab(&#39;overview&#39;)&quot; class=&quot;tab-btn px-4 py-2 sm:px-6 sm:py-2.5 rounded-full text-sm font-medium bg-sky-600 text-white shadow-sm flex items-center gap-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-circle-info&quot;&gt;&lt;/i&gt; ภาพรวม &amp; สาเหตุ
            &lt;/button&gt;
            &lt;button id=&quot;tab-solution&quot; onclick=&quot;switchTab(&#39;solution&#39;)&quot; class=&quot;tab-btn px-4 py-2 sm:px-6 sm:py-2.5 rounded-full text-sm font-medium text-slate-600 hover:bg-sky-50 flex items-center gap-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-bolt text-amber-500&quot;&gt;&lt;/i&gt; วิธีแก้ไขทันที (Bypass)
            &lt;/button&gt;
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;!-- Main Content Container --&gt;
    &lt;main class=&quot;max-w-4xl mx-auto px-4 sm:px-6 py-8 sm:py-12 flex-grow w-full&quot;&gt;

        &lt;!-- SECTION: Overview &amp; Deadlock (Tab 1 Content) --&gt;
        &lt;div id=&quot;content-overview&quot; class=&quot;space-y-12&quot;&gt;
            
            &lt;!-- Section 1: Deadlock Diagram --&gt;
            &lt;section class=&quot;bg-slate-50 border border-slate-200/80 rounded-2xl p-6 sm:p-8 shadow-sm&quot;&gt;
                &lt;div class=&quot;text-center mb-8&quot;&gt;
                    &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-slate-900 mb-2 flex items-center justify-center gap-2&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-rotate text-rose-500&quot;&gt;&lt;/i&gt; วงจรปัญหา Deadlock ที่ผู้ใช้ต้องเจอ
                    &lt;/h2&gt;
                    &lt;p class=&quot;text-slate-600 text-sm sm:text-base&quot;&gt;เมื่อระบบและฮาร์ดแวร์ทำงานไม่ประสานกันในขั้นตอนติดตั้งใหม่ (Clean Install)&lt;/p&gt;
                &lt;/div&gt;

                &lt;!-- Step Visual Flow --&gt;
                &lt;div class=&quot;grid grid-cols-1 md:grid-cols-5 gap-3 items-center relative&quot;&gt;
                    &lt;!-- Step 1 --&gt;
                    &lt;div class=&quot;bg-white p-4 rounded-xl border border-slate-200 text-center shadow-xs flex flex-col items-center&quot;&gt;
                        &lt;div class=&quot;w-10 h-10 rounded-full bg-rose-100 text-rose-600 flex items-center justify-center font-bold mb-2&quot;&gt;1&lt;/div&gt;
                        &lt;span class=&quot;text-xs font-semibold text-slate-500 uppercase&quot;&gt;ปัญหาแรก&lt;/span&gt;
                        &lt;p class=&quot;text-sm font-medium text-slate-800 mt-1&quot;&gt;ไม่มี Driver LAN / Wi-Fi&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;hidden md:flex justify-center text-slate-300&quot;&gt;&lt;i class=&quot;fa-solid fa-chevron-right text-lg&quot;&gt;&lt;/i&gt;&lt;/div&gt;

                    &lt;!-- Step 2 --&gt;
                    &lt;div class=&quot;bg-white p-4 rounded-xl border border-slate-200 text-center shadow-xs flex flex-col items-center&quot;&gt;
                        &lt;div class=&quot;w-10 h-10 rounded-full bg-amber-100 text-amber-600 flex items-center justify-center font-bold mb-2&quot;&gt;2&lt;/div&gt;
                        &lt;span class=&quot;text-xs font-semibold text-slate-500 uppercase&quot;&gt;ผลลัพธ์&lt;/span&gt;
                        &lt;p class=&quot;text-sm font-medium text-slate-800 mt-1&quot;&gt;ต่ออินเทอร์เน็ตไม่ได้&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;hidden md:flex justify-center text-slate-300&quot;&gt;&lt;i class=&quot;fa-solid fa-chevron-right text-lg&quot;&gt;&lt;/i&gt;&lt;/div&gt;

                    &lt;!-- Step 3 --&gt;
                    &lt;div class=&quot;bg-white p-4 rounded-xl border border-rose-300 bg-rose-50/30 text-center shadow-xs flex flex-col items-center col-span-1 md:col-span-1&quot;&gt;
                        &lt;div class=&quot;w-10 h-10 rounded-full bg-rose-600 text-white flex items-center justify-center font-bold mb-2&quot;&gt;3&lt;/div&gt;
                        &lt;span class=&quot;text-xs font-semibold text-rose-600 uppercase&quot;&gt;จุดติดขัด (Deadlock)&lt;/span&gt;
                        &lt;p class=&quot;text-sm font-bold text-rose-900 mt-1&quot;&gt;หน้า OOBE บังคับ Login Microsoft&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;!-- Explanation Box --&gt;
                &lt;div class=&quot;mt-6 bg-white p-4 rounded-xl border border-slate-200 text-sm text-slate-600 flex items-start gap-3&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-circle-exclamation text-amber-500 text-lg mt-0.5 shrink-0&quot;&gt;&lt;/i&gt;
                    &lt;div&gt;
                        &lt;strong&gt;ทำไมถึงยุ่งยาก?&lt;/strong&gt; หน้าจอตั้งค่าเริ่มต้น (OOBE) ตัดปุ่ม &quot;Skip&quot; หรือ &quot;I don&#39;t have internet&quot; ออกไปใน Windows 11 รุ่นใหม่ๆ ทำให้ผู้ใช้ที่ไม่ติด Driver LAN ไม่สามารถดำเนินการต่อได้เลย เพราะไม่มีเน็ตสำหรับล็อกอิน และเข้าเดสก์ท็อปไปลงไดรเวอร์ไม่ได้
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/section&gt;

            &lt;!-- Section 2: Why Microsoft Did This --&gt;
            &lt;section class=&quot;space-y-6&quot;&gt;
                &lt;div class=&quot;border-l-4 border-sky-500 pl-4&quot;&gt;
                    &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-slate-900&quot;&gt;เหตุผลเบื้องหลังการออกแบบ&lt;/h2&gt;
                    &lt;p class=&quot;text-slate-600 text-sm sm:text-base&quot;&gt;ทำไมวิศวกร Microsoft ถึงออกแบบระบบให้ออกมาเป็นแบบนี้?&lt;/p&gt;
                &lt;/div&gt;

                &lt;div class=&quot;grid grid-cols-1 md:grid-cols-3 gap-6&quot;&gt;
                    &lt;!-- Card 1 --&gt;
                    &lt;div class=&quot;bg-sky-50/50 border border-sky-100 rounded-2xl p-6 transition-transform hover:-translate-y-1&quot;&gt;
                        &lt;div class=&quot;w-12 h-12 rounded-xl bg-sky-100 text-sky-700 flex items-center justify-center text-xl font-bold mb-4&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-cloud-arrow-up&quot;&gt;&lt;/i&gt;
                        &lt;/div&gt;
                        &lt;h3 class=&quot;font-bold text-lg text-slate-900 mb-2&quot;&gt;Ecosystem &amp; Cloud Sync&lt;/h3&gt;
                        &lt;p class=&quot;text-slate-600 text-sm leading-relaxed&quot;&gt;
                            ต้องการผูกผู้ใช้เข้ากับ Microsoft Account ตั้งแต่ก้าวแรก เพื่อซิงค์รหัสผ่าน, BitLocker Key, การตั้งค่าระบบ, OneDrive และ License อัตโนมัติโดยไม่ต้องตั้งค่าใหม่ทีหลัง
                        &lt;/p&gt;
                    &lt;/div&gt;

                    &lt;!-- Card 2 --&gt;
                    &lt;div class=&quot;bg-sky-50/50 border border-sky-100 rounded-2xl p-6 transition-transform hover:-translate-y-1&quot;&gt;
                        &lt;div class=&quot;w-12 h-12 rounded-xl bg-sky-100 text-sky-700 flex items-center justify-center text-xl font-bold mb-4&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-shield-halved&quot;&gt;&lt;/i&gt;
                        &lt;/div&gt;
                        &lt;h3 class=&quot;font-bold text-lg text-slate-900 mb-2&quot;&gt;มาตรฐานความปลอดภัย&lt;/h3&gt;
                        &lt;p class=&quot;text-slate-600 text-sm leading-relaxed&quot;&gt;
                            บัญชี Microsoft รองรับ 2FA (Two-Factor Authentication) และการกู้คืนบัญชี ซึ่งปลอดภัยกว่าบัญชีออฟไลน์ (Local Account) ที่ผู้ใช้อาจตั้งรหัสผ่านง่ายๆ หรือลืมรหัสผ่าน
                        &lt;/p&gt;
                    &lt;/div&gt;

                    &lt;!-- Card 3 --&gt;
                    &lt;div class=&quot;bg-sky-50/50 border border-sky-100 rounded-2xl p-6 transition-transform hover:-translate-y-1&quot;&gt;
                        &lt;div class=&quot;w-12 h-12 rounded-xl bg-sky-100 text-sky-700 flex items-center justify-center text-xl font-bold mb-4&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-microchip&quot;&gt;&lt;/i&gt;
                        &lt;/div&gt;
                        &lt;h3 class=&quot;font-bold text-lg text-slate-900 mb-2&quot;&gt;สมมติฐานฮาร์ดแวร์&lt;/h3&gt;
                        &lt;p class=&quot;text-slate-600 text-sm leading-relaxed&quot;&gt;
                            ทีมพัฒนานึกว่า Generic Driver ใน Windows ISO ครอบคลุมการใช้งานทั่วไปแล้ว แต่ในความจริง ชิปเซ็ต LAN/Wi-Fi รุ่นใหม่ๆ มักต้องใช้ Driver เฉพาะตัวที่ไม่มีในตัวติดตั้งเดิม
                        &lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/section&gt;

            &lt;!-- Call to action for Bypass --&gt;
            &lt;div class=&quot;bg-gradient-to-r from-sky-500 to-sky-600 rounded-2xl p-6 sm:p-8 text-white text-center shadow-lg shadow-sky-500/10&quot;&gt;
                &lt;h3 class=&quot;text-xl font-bold mb-2&quot;&gt;ต้องการข้ามหน้านี้ทันทีหรือไม่?&lt;/h3&gt;
                &lt;p class=&quot;text-sky-100 text-sm sm:text-base mb-6 max-w-xl mx-auto&quot;&gt;ใช้คำสั่งเพียงบรรทัดเดียวผ่าน Command Prompt เพื่อเปิดตัวเลือกการสร้าง Local Account&lt;/p&gt;
                &lt;button onclick=&quot;switchTab(&#39;solution&#39;)&quot; class=&quot;bg-white text-sky-700 font-bold px-6 py-3 rounded-full hover:bg-sky-50 transition-colors shadow-md text-sm&quot;&gt;
                    ดูวิธีบายพาสอย่างละเอียด &lt;i class=&quot;fa-solid fa-arrow-right ml-1&quot;&gt;&lt;/i&gt;
                &lt;/button&gt;
            &lt;/div&gt;

        &lt;/div&gt;

        &lt;!-- SECTION: Bypass Solution (Tab 2 Content) --&gt;
        &lt;div id=&quot;content-solution&quot; class=&quot;hidden space-y-8&quot;&gt;
            
            &lt;div class=&quot;border-l-4 border-sky-500 pl-4&quot;&gt;
                &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-slate-900&quot;&gt;วิธีปลดล็อกข้ามหน้าบังคับ Login (Bypass Guide)&lt;/h2&gt;
                &lt;p class=&quot;text-slate-600 text-sm sm:text-base&quot;&gt;ทำตามขั้นตอนง่ายๆ 4 ขั้นตอนด้านล่าง เพื่อเข้าใช้งานแบบ Local Account&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Command Copy Highlight Box --&gt;
            &lt;div class=&quot;bg-slate-900 text-slate-100 rounded-2xl p-6 shadow-xl border border-slate-800&quot;&gt;
                &lt;div class=&quot;flex justify-between items-center mb-3&quot;&gt;
                    &lt;span class=&quot;text-xs uppercase font-semibold text-sky-400 tracking-wider flex items-center gap-2&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-terminal&quot;&gt;&lt;/i&gt; Command Prompt Instruction
                    &lt;/span&gt;
                    &lt;span class=&quot;text-xs text-slate-400&quot;&gt;พิมพ์คำสั่งนี้แล้วกด Enter&lt;/span&gt;
                &lt;/div&gt;
                
                &lt;div class=&quot;bg-slate-950 p-4 rounded-xl border border-slate-800 flex items-center justify-between gap-4&quot;&gt;
                    &lt;code class=&quot;code-block text-sky-300 font-bold text-lg sm:text-xl tracking-wider select-all&quot;&gt;oobe\BypassNRO&lt;/code&gt;
                    &lt;button onclick=&quot;copyCommand()&quot; class=&quot;bg-sky-600 hover:bg-sky-500 text-white px-4 py-2 rounded-lg text-sm font-medium transition-all flex items-center gap-2 shrink-0 active:scale-95&quot;&gt;
                        &lt;i class=&quot;fa-regular fa-copy&quot;&gt;&lt;/i&gt;
                        &lt;span&gt;คัดลอก&lt;/span&gt;
                    &lt;/button&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step by Step Instructions --&gt;
            &lt;div class=&quot;space-y-4&quot;&gt;
                
                &lt;!-- Step 1 --&gt;
                &lt;div class=&quot;flex gap-4 p-5 rounded-2xl bg-slate-50 border border-slate-200/80 items-start&quot;&gt;
                    &lt;div class=&quot;w-8 h-8 rounded-full bg-sky-600 text-white font-bold flex items-center justify-center shrink-0 text-sm&quot;&gt;
                        1
                    &lt;/div&gt;
                    &lt;div&gt;
                        &lt;h4 class=&quot;font-bold text-slate-900 text-base mb-1&quot;&gt;เปิดหน้าต่าง Command Prompt (CMD)&lt;/h4&gt;
                        &lt;p class=&quot;text-slate-600 text-sm&quot;&gt;
                            เมื่อติดอยู่ที่หน้าเลือกเครือข่าย ให้กดปุ่มบนคีย์บอร์ดพร้อมกัน: &lt;kbd class=&quot;px-2.5 py-1 bg-white border border-slate-300 rounded-md text-xs font-semibold shadow-xs&quot;&gt;Shift&lt;/kbd&gt; + &lt;kbd class=&quot;px-2.5 py-1 bg-white border border-slate-300 rounded-md text-xs font-semibold shadow-xs&quot;&gt;F10&lt;/kbd&gt;
                            &lt;br&gt;&lt;span class=&quot;text-xs text-slate-500&quot;&gt;(สำหรับโน้ตบุ๊กบางรุ่น อาจต้องกด &lt;kbd class=&quot;px-2.5 py-1 bg-white border border-slate-300 rounded-md text-xs font-semibold shadow-xs&quot;&gt;Fn&lt;/kbd&gt; + &lt;kbd class=&quot;px-2.5 py-1 bg-white border border-slate-300 rounded-md text-xs font-semibold shadow-xs&quot;&gt;Shift&lt;/kbd&gt; + &lt;kbd class=&quot;px-2.5 py-1 bg-white border border-slate-300 rounded-md text-xs font-semibold shadow-xs&quot;&gt;F10&lt;/kbd&gt;)&lt;/span&gt;
                        &lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;!-- Step 2 --&gt;
                &lt;div class=&quot;flex gap-4 p-5 rounded-2xl bg-slate-50 border border-slate-200/80 items-start&quot;&gt;
                    &lt;div class=&quot;w-8 h-8 rounded-full bg-sky-600 text-white font-bold flex items-center justify-center shrink-0 text-sm&quot;&gt;
                        2
                    &lt;/div&gt;
                    &lt;div&gt;
                        &lt;h4 class=&quot;font-bold text-slate-900 text-base mb-1&quot;&gt;พิมพ์คำสั่ง Bypass&lt;/h4&gt;
                        &lt;p class=&quot;text-slate-600 text-sm&quot;&gt;
                            พิมพ์คำสั่ง &lt;code class=&quot;bg-slate-200 text-slate-800 px-2 py-0.5 rounded text-xs font-bold&quot;&gt;oobe\BypassNRO&lt;/code&gt; ลงในหน้าต่างสีดำ แล้วกด &lt;kbd class=&quot;px-2.5 py-1 bg-white border border-slate-300 rounded-md text-xs font-semibold shadow-xs&quot;&gt;Enter&lt;/kbd&gt;
                        &lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;!-- Step 3 --&gt;
                &lt;div class=&quot;flex gap-4 p-5 rounded-2xl bg-slate-50 border border-slate-200/80 items-start&quot;&gt;
                    &lt;div class=&quot;w-8 h-8 rounded-full bg-sky-600 text-white font-bold flex items-center justify-center shrink-0 text-sm&quot;&gt;
                        3
                    &lt;/div&gt;
                    &lt;div&gt;
                        &lt;h4 class=&quot;font-bold text-slate-900 text-base mb-1&quot;&gt;รอระบบ Reboot ตัวเอง&lt;/h4&gt;
                        &lt;p class=&quot;text-slate-600 text-sm&quot;&gt;
                            คอมพิวเตอร์จะรีสตาร์ท 1 ครั้ง และกลับมาที่หน้าเริ่มตั้งค่าภาษาและภูมิภาคใหม่อีกครั้ง
                        &lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;!-- Step 4 --&gt;
                &lt;div class=&quot;flex gap-4 p-5 rounded-2xl bg-emerald-50 border border-emerald-200 items-start&quot;&gt;
                    &lt;div class=&quot;w-8 h-8 rounded-full bg-emerald-600 text-white font-bold flex items-center justify-center shrink-0 text-sm&quot;&gt;
                        4
                    &lt;/div&gt;
                    &lt;div&gt;
                        &lt;h4 class=&quot;font-bold text-emerald-900 text-base mb-1&quot;&gt;เลือก &quot;I don&#39;t have internet&quot;&lt;/h4&gt;
                        &lt;p class=&quot;text-emerald-800 text-sm&quot;&gt;
                            เมื่อกลับมาถึงหน้าเชื่อมต่ออินเทอร์เน็ต คุณจะพบปุ่มใหม่เพิ่มขึ้นมาว่า &lt;strong&gt;&quot;I don&#39;t have internet&quot; (ฉันไม่มีอินเทอร์เน็ต)&lt;/strong&gt; ให้กดปุ่มนี้เพื่อดำเนินการสร้างชื่อผู้ใช้แบบ Local Account และเข้าสู่เดสก์ท็อปได้ทันที!
                        &lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

            &lt;/div&gt;

            &lt;!-- Pro Tip --&gt;
            &lt;div class=&quot;bg-amber-50 border border-amber-200 rounded-2xl p-5 flex items-start gap-4&quot;&gt;
                &lt;i class=&quot;fa-solid fa-lightbulb text-amber-500 text-xl mt-1 shrink-0&quot;&gt;&lt;/i&gt;
                &lt;div class=&quot;text-sm text-amber-900&quot;&gt;
                    &lt;strong class=&quot;font-bold block mb-1&quot;&gt;คำแนะนำหลังเข้าสู่ Desktop ได้แล้ว:&lt;/strong&gt;
                    ควรนำ Flash Drive ไปดาวน์โหลด Driver Network (LAN/Wi-Fi) จากเครื่องอื่นมาติดตั้ง หรือใช้วิธีต่อสาย USB Tethering จากโทรศัพท์มือถือเข้ากับคอมพิวเตอร์เพื่อใช้อินเทอร์เน็ตชั่วคราวในการอัปเดตระบบครับ
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/div&gt;

    &lt;/main&gt;

    &lt;!-- Simple Minimal Footer --&gt;
    &lt;footer class=&quot;bg-slate-50 border-t border-slate-100 py-6 text-center text-xs text-slate-500&quot;&gt;
        &lt;div class=&quot;max-w-4xl mx-auto px-4&quot;&gt;
            &lt;p&gt;Windows 11 OOBE Network Bypass Cheat Sheet &amp;bull; ออกแบบเพื่อความอ่านง่าย สบายตา&lt;/p&gt;
        &lt;/div&gt;
    &lt;/footer&gt;

    &lt;!-- Interactive JavaScript --&gt;
    &lt;script&gt;
        // Tab Switcher Logic
        function switchTab(tabName) {
            const overviewTab = document.getElementById(&#39;tab-overview&#39;);
            const solutionTab = document.getElementById(&#39;tab-solution&#39;);
            const overviewContent = document.getElementById(&#39;content-overview&#39;);
            const solutionContent = document.getElementById(&#39;content-solution&#39;);

            if (tabName === &#39;overview&#39;) {
                // Style Active Tab
                overviewTab.className = &#39;tab-btn px-4 py-2 sm:px-6 sm:py-2.5 rounded-full text-sm font-medium bg-sky-600 text-white shadow-sm flex items-center gap-2&#39;;
                solutionTab.className = &#39;tab-btn px-4 py-2 sm:px-6 sm:py-2.5 rounded-full text-sm font-medium text-slate-600 hover:bg-sky-50 flex items-center gap-2&#39;;
                
                // Show Content
                overviewContent.classList.remove(&#39;hidden&#39;);
                solutionContent.classList.add(&#39;hidden&#39;);
            } else {
                // Style Active Tab
                solutionTab.className = &#39;tab-btn px-4 py-2 sm:px-6 sm:py-2.5 rounded-full text-sm font-medium bg-sky-600 text-white shadow-sm flex items-center gap-2&#39;;
                overviewTab.className = &#39;tab-btn px-4 py-2 sm:px-6 sm:py-2.5 rounded-full text-sm font-medium text-slate-600 hover:bg-sky-50 flex items-center gap-2&#39;;
                
                // Show Content
                solutionContent.classList.remove(&#39;hidden&#39;);
                overviewContent.classList.add(&#39;hidden&#39;);
            }
        }

        // Copy Command to Clipboard
        function copyCommand() {
            const commandText = &quot;oobe\\BypassNRO&quot;;
            
            // Using textarea fallback for reliable copy in iframe/web environments
            const tempInput = document.createElement(&quot;textarea&quot;);
            tempInput.value = commandText;
            document.body.appendChild(tempInput);
            tempInput.select();
            document.execCommand(&quot;copy&quot;);
            document.body.removeChild(tempInput);

            // Show Toast Notification
            showToast();
        }

        // Toast Notification Handler
        function showToast() {
            const toast = document.getElementById(&#39;toast&#39;);
            toast.classList.remove(&#39;translate-y-20&#39;, &#39;opacity-0&#39;);
            toast.classList.add(&#39;translate-y-0&#39;, &#39;opacity-100&#39;);

            setTimeout(() =&gt; {
                toast.classList.remove(&#39;translate-y-0&#39;, &#39;opacity-100&#39;);
                toast.classList.add(&#39;translate-y-20&#39;, &#39;opacity-0&#39;);
            }, 3000);
        }
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/426368624391210205/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/426368624391210205' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/426368624391210205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/426368624391210205'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/windows-login.html' title='วิธีแก้----ทำไมลง Windows ใหม่ ต้องบังคับ Login'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-3510366637362976364</id><published>2026-10-22T10:55:06.532+07:00</published><updated>2026-10-23T13:51:26.826+07:00</updated><title type='text'>พบช่องโหว่ความรุนแรงสูงสุ่มเสี่ยง RCE บนระบบ PHP- วิธีแก้ไข</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot; class=&quot;scroll-smooth&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;PHP Critical Security Alert &amp; Unauthenticated RCE Guide&lt;/title&gt;
    &lt;!-- Tailwind CSS CDN --&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;!-- Google Fonts: Kanit &amp; JetBrains Mono --&gt;
    &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.googleapis.com&quot;&gt;
    &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot; crossorigin&gt;
    &lt;link href=&quot;https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&amp;family=Kanit:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;!-- FontAwesome Icons --&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&gt;
    
    &lt;script&gt;
        tailwind.config = {
            darkMode: &#39;class&#39;,
            theme: {
                extend: {
                    fontFamily: {
                        sans: [&#39;Kanit&#39;, &#39;sans-serif&#39;],
                        mono: [&#39;JetBrains Mono&#39;, &#39;monospace&#39;],
                    },
                    colors: {
                        brand: {
                            red: &#39;#EF4444&#39;,
                            orange: &#39;#F97316&#39;,
                            dark: &#39;#0B0F17&#39;,
                            card: &#39;#161F30&#39;,
                            border: &#39;#2A364F&#39;
                        }
                    }
                }
            }
        }
    &lt;/script&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Kanit&#39;, sans-serif;
            background-color: #0B0F17;
            color: #F8FAFC;
        }
        .glow-red {
            box-shadow: 0 0 25px rgba(239, 68, 68, 0.25);
        }
        .glow-blue {
            box-shadow: 0 0 20px rgba(59, 130, 246, 0.15);
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;min-h-screen pb-16&quot;&gt;

    &lt;!-- Top Alert Banner --&gt;
    &lt;div class=&quot;bg-gradient-to-r from-red-800 via-red-700 to-amber-700 text-white text-sm font-medium py-2.5 px-4 text-center sticky top-0 z-50 shadow-md&quot;&gt;
        &lt;div class=&quot;max-w-7xl mx-auto flex items-center justify-center gap-2 flex-wrap&quot;&gt;
            &lt;span class=&quot;bg-black/50 text-white text-xs px-2.5 py-1 rounded-full uppercase tracking-wider font-bold animate-pulse border border-white/20&quot;&gt;Critical Alert&lt;/span&gt;
            &lt;span class=&quot;font-semibold text-white&quot;&gt;พบช่องโหว่ความรุนแรงสูงสุ่มเสี่ยง RCE บนระบบ PHP (CVE-2026-109618 / CVE-2026-109619)&lt;/span&gt;
            &lt;a href=&quot;#patch-section&quot; class=&quot;underline hover:text-amber-200 transition font-bold ml-1&quot;&gt;ดูวิธีแก้ไขทันที &amp;rarr;&lt;/a&gt;
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;!-- Navigation Header --&gt;
    &lt;header class=&quot;border-b border-brand-border bg-brand-dark/95 backdrop-blur-md sticky top-[37px] z-40&quot;&gt;
        &lt;div class=&quot;max-w-6xl mx-auto px-4 py-4 flex items-center justify-between&quot;&gt;
            &lt;div class=&quot;flex items-center gap-3&quot;&gt;
                &lt;div class=&quot;bg-red-500/20 border border-red-500/40 text-red-400 p-2.5 rounded-xl&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-shield-virus text-xl&quot;&gt;&lt;/i&gt;
                &lt;/div&gt;
                &lt;div&gt;
                    &lt;h1 class=&quot;font-bold text-lg text-white leading-none&quot;&gt;PHP Security Intelligence&lt;/h1&gt;
                    &lt;p class=&quot;text-xs text-slate-300 mt-1&quot;&gt;คู่มือเจาะลึกช่องโหว่ Unauthenticated RCE และวิธีป้องกัน&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
            &lt;div class=&quot;hidden md:flex items-center gap-6 text-sm font-medium text-slate-200&quot;&gt;
                &lt;a href=&quot;#definition&quot; class=&quot;hover:text-red-400 transition&quot;&gt;RCE คืออะไร?&lt;/a&gt;
                &lt;a href=&quot;#dangers&quot; class=&quot;hover:text-red-400 transition&quot;&gt;ระดับความอันตราย&lt;/a&gt;
                &lt;a href=&quot;#checker&quot; class=&quot;hover:text-red-400 transition&quot;&gt;เครื่องมือตรวจสอบ&lt;/a&gt;
                &lt;a href=&quot;#patch-section&quot; class=&quot;bg-red-600 hover:bg-red-500 text-white px-4 py-2 rounded-lg transition font-semibold shadow-md&quot;&gt;วิธีป้องกัน&lt;/a&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/header&gt;

    &lt;main class=&quot;max-w-6xl mx-auto px-4 pt-8 space-y-12&quot;&gt;

        &lt;!-- Hero Warning Card --&gt;
        &lt;section class=&quot;bg-gradient-to-br from-slate-900 via-brand-card to-slate-950 border-2 border-red-500/50 rounded-2xl p-6 md:p-8 glow-red relative overflow-hidden&quot;&gt;
            &lt;div class=&quot;absolute -right-10 -bottom-10 w-64 h-64 bg-red-600/10 rounded-full blur-3xl pointer-events-none&quot;&gt;&lt;/div&gt;
            
            &lt;div class=&quot;flex flex-col md:flex-row items-start md:items-center justify-between gap-6 relative z-10&quot;&gt;
                &lt;div class=&quot;space-y-3 max-w-3xl&quot;&gt;
                    &lt;div class=&quot;inline-flex items-center gap-2 px-3 py-1 bg-red-950 border border-red-500/60 text-red-300 rounded-full text-xs font-bold&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-triangle-exclamation&quot;&gt;&lt;/i&gt;
                        CVSS SCORE: 9.2 (CRITICAL)
                    &lt;/div&gt;
                    &lt;h2 class=&quot;text-2xl md:text-3xl font-extrabold text-white&quot;&gt;
                        เตือนภัยวิกฤต: ช่องโหว่สั่งรันโค้ดระยะไกลโดยไม่ต้องยืนยันตัวตน (PHP2Shell)
                    &lt;/h2&gt;
                    &lt;p class=&quot;text-slate-200 text-base leading-relaxed font-normal&quot;&gt;
                        ช่องโหว่รุนแรงระดับสูงที่เปิดโอกาสให้ผู้ไม่หวังดีส่งคำขอ (Request) พิเศษเข้ามายังเซิร์ฟเวอร์ และสั่งรันคำสั่งภาษาคอมพิวเตอร์ได้ทันทีโดย &lt;strong class=&quot;text-amber-300 underline underline-offset-4&quot;&gt;ไม่ต้องมีรหัสผ่าน&lt;/strong&gt; หรือสิทธิ์แอดมิน กระทบต่อระบบที่ใช้ PHP-FPM, Apache mod_php, FrankenPHP และ LiteSpeed
                    &lt;/p&gt;
                &lt;/div&gt;
                &lt;div class=&quot;bg-red-950 border-2 border-red-500/60 rounded-xl p-4 text-center min-w-[200px] w-full md:w-auto shadow-xl&quot;&gt;
                    &lt;span class=&quot;text-xs text-red-200 uppercase tracking-widest font-bold block mb-1&quot;&gt;ความเสี่ยงสูงสุด&lt;/span&gt;
                    &lt;span class=&quot;text-3xl font-black text-red-400&quot;&gt;Unauth RCE&lt;/span&gt;
                    &lt;span class=&quot;text-xs text-slate-200 font-medium block mt-2&quot;&gt;ไม่ต้องใช้ Login / รหัสผ่าน&lt;/span&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- Section 1: Breakdown / What is Unauthenticated RCE --&gt;
        &lt;section id=&quot;definition&quot; class=&quot;space-y-6&quot;&gt;
            &lt;div class=&quot;border-l-4 border-red-500 pl-4&quot;&gt;
                &lt;h2 class=&quot;text-2xl font-bold text-white&quot;&gt;1. ขยายความ: Unauthenticated RCE คืออะไร?&lt;/h2&gt;
                &lt;p class=&quot;text-slate-300 text-sm&quot;&gt;เจาะลึกคำศัพท์ทางเทคนิคด้วยการเปรียบเทียบเชิงอุปมาให้เข้าใจง่าย&lt;/p&gt;
            &lt;/div&gt;

            &lt;div class=&quot;grid grid-cols-1 md:grid-cols-3 gap-6&quot;&gt;
                &lt;!-- Term 1 --&gt;
                &lt;div class=&quot;bg-brand-card border-2 border-brand-border rounded-xl p-6 hover:border-blue-400 transition&quot;&gt;
                    &lt;div class=&quot;w-12 h-12 bg-blue-500/20 border border-blue-400/40 text-blue-300 rounded-lg flex items-center justify-center text-xl mb-4&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-globe&quot;&gt;&lt;/i&gt;
                    &lt;/div&gt;
                    &lt;h3 class=&quot;text-lg font-bold text-white mb-2&quot;&gt;Remote (ระยะไกล)&lt;/h3&gt;
                    &lt;p class=&quot;text-sm text-slate-200 leading-relaxed&quot;&gt;
                        แฮกเกอร์ไม่จำเป็นต้องนั่งอยู่หน้าเครื่องเซิร์ฟเวอร์ หรืออยู่ในเครือข่ายเดียวกับเรา แต่อยู่ที่ไหนก็ได้บนโลกใบนี้ที่เชื่อมต่ออินเทอร์เน็ต
                    &lt;/p&gt;
                &lt;/div&gt;

                &lt;!-- Term 2 --&gt;
                &lt;div class=&quot;bg-brand-card border-2 border-brand-border rounded-xl p-6 hover:border-amber-400 transition&quot;&gt;
                    &lt;div class=&quot;w-12 h-12 bg-amber-500/20 border border-amber-400/40 text-amber-300 rounded-lg flex items-center justify-center text-xl mb-4&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-code&quot;&gt;&lt;/i&gt;
                    &lt;/div&gt;
                    &lt;h3 class=&quot;text-lg font-bold text-white mb-2&quot;&gt;Code Execution (สั่งรันโค้ด)&lt;/h3&gt;
                    &lt;p class=&quot;text-sm text-slate-200 leading-relaxed&quot;&gt;
                        สามารถส่งสคริปต์หรือคำสั่งระบบ (System Command) ให้เซิร์ฟเวอร์ประมวลผลได้ เหมือนมีคนแอบแฮกแป้นพิมพ์สั่งการเครื่องของเรา
                    &lt;/p&gt;
                &lt;/div&gt;

                &lt;!-- Term 3 --&gt;
                &lt;div class=&quot;bg-brand-card border-2 border-brand-border rounded-xl p-6 hover:border-red-400 transition&quot;&gt;
                    &lt;div class=&quot;w-12 h-12 bg-red-500/20 border border-red-400/40 text-red-300 rounded-lg flex items-center justify-center text-xl mb-4&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-lock-open&quot;&gt;&lt;/i&gt;
                    &lt;/div&gt;
                    &lt;h3 class=&quot;text-lg font-bold text-white mb-2&quot;&gt;Unauthenticated (ไม่ต้องล็อกอิน)&lt;/h3&gt;
                    &lt;p class=&quot;text-sm text-slate-200 leading-relaxed&quot;&gt;
                        ไม่ต้องใช้ Username, Password หรือ Token ใดๆ เพียงแค่ยิง HTTP Request แบบพิเศษเข้ามาที่พอร์ตเว็บ ก็สามารถส่งคำสั่งเข้าเครื่องได้ทันที
                    &lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Everyday Analogy Box --&gt;
            &lt;div class=&quot;bg-slate-900 border-2 border-amber-500/40 rounded-xl p-6 flex flex-col md:flex-row items-start gap-5&quot;&gt;
                &lt;div class=&quot;p-3 bg-amber-500/20 border border-amber-400/40 text-amber-300 rounded-lg shrink-0&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-lightbulb text-2xl&quot;&gt;&lt;/i&gt;
                &lt;/div&gt;
                &lt;div class=&quot;space-y-2&quot;&gt;
                    &lt;h4 class=&quot;font-bold text-amber-300 text-lg&quot;&gt;เปรียบเทียบให้เห็นภาพง่ายๆ (Everyday Analogy)&lt;/h4&gt;
                    &lt;p class=&quot;text-sm text-slate-100 leading-relaxed&quot;&gt;
                        ลองนึกภาพบ้านหลังหนึ่งที่มี &lt;strong class=&quot;text-white&quot;&gt;ระบบกุญแจดิจิทัลอย่างดี&lt;/strong&gt; ปกติถ้าคนนอกจะเข้าบ้าน ต้องมีกุญแจ รหัสผ่าน หรือสแกนลายนิ้วมือ 
                        แต่ช่องโหว่ &lt;strong class=&quot;text-red-400&quot;&gt;Unauthenticated RCE&lt;/strong&gt; เปรียบเสมือนมี &lt;span class=&quot;text-amber-300 font-bold bg-amber-950 px-2 py-0.5 rounded border border-amber-500/50&quot;&gt;&quot;ช่องเปิดปริศนาข้างบ้าน&quot;&lt;/span&gt; ที่ใครก็ตามที่เดินผ่าน สามารถถือรีโมตคอนโทรลมายิงสั่งกดเปิดประตูบ้าน ลบข้อมูลในคอมพิวเตอร์ หรือสั่งหยิบของในบ้านไปได้ทันที โดยไม่เคยต้องเคาะประตูหรือโชว์บัตรประชาชนเลยแม้แต่ครั้งเดียว
                    &lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- Section 2: Why it is extremely dangerous --&gt;
        &lt;section id=&quot;dangers&quot; class=&quot;space-y-6&quot;&gt;
            &lt;div class=&quot;border-l-4 border-red-500 pl-4&quot;&gt;
                &lt;h2 class=&quot;text-2xl font-bold text-white&quot;&gt;2. ทำไมถึงอันตรายร้ายแรงที่สุด? (Impact Analysis)&lt;/h2&gt;
                &lt;p class=&quot;text-slate-300 text-sm&quot;&gt;ผลกระทบวิกฤตที่อาจเกิดขึ้นหากเซิร์ฟเวอร์ของคุณถูกโจมตีผ่านช่องโหว่นี้&lt;/p&gt;
            &lt;/div&gt;

            &lt;div class=&quot;grid grid-cols-1 md:grid-cols-3 gap-6&quot;&gt;
                &lt;!-- Threat 1 --&gt;
                &lt;div class=&quot;bg-brand-card border-2 border-red-500/30 rounded-xl p-6 space-y-3&quot;&gt;
                    &lt;div class=&quot;text-red-400 text-2xl&quot;&gt;&lt;i class=&quot;fa-solid fa-server&quot;&gt;&lt;/i&gt;&lt;/div&gt;
                    &lt;h3 class=&quot;text-lg font-bold text-white&quot;&gt;1. โดนยึดเครื่องเบ็ดเสร็จ (Full Server Takeover)&lt;/h3&gt;
                    &lt;p class=&quot;text-sm text-slate-200 leading-relaxed&quot;&gt;
                        แฮกเกอร์สามารถสั่งดาวน์โหลดมัลแวร์ มัลแวร์เรียกค่าไถ่ (Ransomware) หรือติดตั้งโปรแกรมฝังตัว เพื่อควบคุมเซิร์ฟเวอร์ได้อย่างสมบูรณ์แบบ
                    &lt;/p&gt;
                &lt;/div&gt;

                &lt;!-- Threat 2 --&gt;
                &lt;div class=&quot;bg-brand-card border-2 border-red-500/30 rounded-xl p-6 space-y-3&quot;&gt;
                    &lt;div class=&quot;text-red-400 text-2xl&quot;&gt;&lt;i class=&quot;fa-solid fa-database&quot;&gt;&lt;/i&gt;&lt;/div&gt;
                    &lt;h3 class=&quot;text-lg font-bold text-white&quot;&gt;2. ขโมยและลบข้อมูลสำคัญ (Data Leakage)&lt;/h3&gt;
                    &lt;p class=&quot;text-sm text-slate-200 leading-relaxed&quot;&gt;
                        สามารถเข้าถึงไฟล์คอนฟิก (`.env`), รหัสผ่านฐานข้อมูล, ข้อมูลส่วนบุคคลของลูกค้า (PDPA Risk) หรือสั่งสั่งลบ Database ทิ้งได้ทั้งหมด
                    &lt;/p&gt;
                &lt;/div&gt;

                &lt;!-- Threat 3 --&gt;
                &lt;div class=&quot;bg-brand-card border-2 border-red-500/30 rounded-xl p-6 space-y-3&quot;&gt;
                    &lt;div class=&quot;text-red-400 text-2xl&quot;&gt;&lt;i class=&quot;fa-solid fa-network-wired&quot;&gt;&lt;/i&gt;&lt;/div&gt;
                    &lt;h3 class=&quot;text-lg font-bold text-white&quot;&gt;3. ถูกใช้เป็นฐานแฮกเว็บอื่น (Botnet)&lt;/h3&gt;
                    &lt;p class=&quot;text-sm text-slate-200 leading-relaxed&quot;&gt;
                        เครื่องของคุณจะกลายเป็น &quot;Zombie Node&quot; ถูกใช้เป็นเครื่องมือขุดคริปโต หรือใช้เป็นฐานส่ง Spam / โจมตีเว็บไซต์อื่น ทำให้ IP ถูก Blacklist
                    &lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- Section 3: Interactive Version Checker Tool --&gt;
        &lt;section id=&quot;checker&quot; class=&quot;bg-brand-card border-2 border-blue-500/40 rounded-2xl p-6 md:p-8 space-y-6 glow-blue&quot;&gt;
            &lt;div class=&quot;flex flex-col md:flex-row items-start md:items-center justify-between gap-4&quot;&gt;
                &lt;div&gt;
                    &lt;h2 class=&quot;text-xl font-bold text-white flex items-center gap-2&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-microchip text-blue-400&quot;&gt;&lt;/i&gt;
                        เครื่องมือตรวจสอบเวอร์ชัน PHP (Version Safety Checker)
                    &lt;/h2&gt;
                    &lt;p class=&quot;text-slate-300 text-sm mt-1&quot;&gt;พิมพ์เลขเวอร์ชัน PHP ที่ใช้อยู่บนเซิร์ฟเวอร์ของคุณเพื่อตรวจสอบความปลอดภัย&lt;/p&gt;
                &lt;/div&gt;
                &lt;span class=&quot;text-xs font-bold bg-blue-950 text-blue-300 border border-blue-400/50 px-3 py-1 rounded-full&quot;&gt;Interactive Tool&lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&quot;bg-slate-900 p-4 rounded-xl border border-slate-700 space-y-4&quot;&gt;
                &lt;div class=&quot;flex flex-col sm:flex-row gap-3&quot;&gt;
                    &lt;div class=&quot;relative flex-1&quot;&gt;
                        &lt;input type=&quot;text&quot; id=&quot;phpVersionInput&quot; placeholder=&quot;ตัวอย่าง: 8.3.10 หรือ 8.2.1&quot; 
                            class=&quot;w-full bg-slate-950 border-2 border-slate-600 rounded-lg px-4 py-3 text-white placeholder-slate-400 focus:outline-none focus:border-blue-400 font-mono text-base font-semibold&quot;&gt;
                    &lt;/div&gt;
                    &lt;button onclick=&quot;checkPhpVersion()&quot; 
                        class=&quot;bg-blue-600 hover:bg-blue-500 text-white font-bold px-6 py-3 rounded-lg transition flex items-center justify-center gap-2 shadow-md&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-magnifying-glass&quot;&gt;&lt;/i&gt; ตรวจสอบ
                    &lt;/button&gt;
                &lt;/div&gt;

                &lt;!-- Results Output Display --&gt;
                &lt;div id=&quot;checkResult&quot; class=&quot;hidden p-4 rounded-lg border-2 text-base font-bold&quot;&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- Section 4: Immediate Action &amp; Patching Guide --&gt;
        &lt;section id=&quot;patch-section&quot; class=&quot;space-y-6&quot;&gt;
            &lt;div class=&quot;border-l-4 border-emerald-500 pl-4&quot;&gt;
                &lt;h2 class=&quot;text-2xl font-bold text-white&quot;&gt;4. แนวทางแก้ไขและอัปเดตแพตช์ด่วน (Patching Guide)&lt;/h2&gt;
                &lt;p class=&quot;text-slate-300 text-sm&quot;&gt;รายชื่อเวอร์ชันปลอดภัยและคำสั่งในการอัปเดตระบบ&lt;/p&gt;
            &lt;/div&gt;

            &lt;!-- Safe Version Table --&gt;
            &lt;div class=&quot;bg-brand-card border-2 border-brand-border rounded-xl overflow-hidden&quot;&gt;
                &lt;div class=&quot;p-4 bg-slate-900 border-b border-brand-border font-bold text-white flex items-center justify-between&quot;&gt;
                    &lt;span class=&quot;text-base&quot;&gt;ตารางเปรียบเทียบเวอร์ชัน PHP&lt;/span&gt;
                    &lt;span class=&quot;text-xs font-bold text-emerald-400 bg-emerald-950 border border-emerald-500/40 px-2.5 py-1 rounded-full&quot;&gt;&lt;i class=&quot;fa-solid fa-circle text-[10px] mr-1&quot;&gt;&lt;/i&gt; อัปเดตล่าสุดแล้ว&lt;/span&gt;
                &lt;/div&gt;
                &lt;div class=&quot;overflow-x-auto&quot;&gt;
                    &lt;table class=&quot;w-full text-left text-sm&quot;&gt;
                        &lt;thead class=&quot;bg-slate-950 text-slate-200 border-b border-brand-border&quot;&gt;
                            &lt;tr&gt;
                                &lt;th class=&quot;p-4 font-bold text-white&quot;&gt;PHP Branch&lt;/th&gt;
                                &lt;th class=&quot;p-4 font-bold text-white&quot;&gt;เวอร์ชันที่มีช่องโหว่ (Vulnerable)&lt;/th&gt;
                                &lt;th class=&quot;p-4 font-bold text-white&quot;&gt;เวอร์ชันปลอดภัย (Safe Patch)&lt;/th&gt;
                                &lt;th class=&quot;p-4 font-bold text-white&quot;&gt;สถานะ&lt;/th&gt;
                            &lt;/tr&gt;
                        &lt;/thead&gt;
                        &lt;tbody class=&quot;divide-y divide-brand-border text-slate-100 font-medium&quot;&gt;
                            &lt;tr class=&quot;hover:bg-slate-900/50&quot;&gt;
                                &lt;td class=&quot;p-4 font-bold text-white&quot;&gt;PHP 8.5&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-red-400 font-semibold&quot;&gt;8.5.0 - 8.5.11&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-emerald-400 font-bold&quot;&gt;8.5.12 ขึ้นไป&lt;/td&gt;
                                &lt;td class=&quot;p-4&quot;&gt;&lt;span class=&quot;bg-emerald-950 text-emerald-300 px-3 py-1 rounded-full text-xs font-bold border border-emerald-500/40&quot;&gt;ต้องอัปเดต&lt;/span&gt;&lt;/td&gt;
                            &lt;/tr&gt;
                            &lt;tr class=&quot;hover:bg-slate-900/50&quot;&gt;
                                &lt;td class=&quot;p-4 font-bold text-white&quot;&gt;PHP 8.4&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-red-400 font-semibold&quot;&gt;8.4.0 - 8.4.26&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-emerald-400 font-bold&quot;&gt;8.4.27 ขึ้นไป&lt;/td&gt;
                                &lt;td class=&quot;p-4&quot;&gt;&lt;span class=&quot;bg-emerald-950 text-emerald-300 px-3 py-1 rounded-full text-xs font-bold border border-emerald-500/40&quot;&gt;ต้องอัปเดต&lt;/span&gt;&lt;/td&gt;
                            &lt;/tr&gt;
                            &lt;tr class=&quot;hover:bg-slate-900/50&quot;&gt;
                                &lt;td class=&quot;p-4 font-bold text-white&quot;&gt;PHP 8.3&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-red-400 font-semibold&quot;&gt;8.3.0 - 8.3.35&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-emerald-400 font-bold&quot;&gt;8.3.36 ขึ้นไป&lt;/td&gt;
                                &lt;td class=&quot;p-4&quot;&gt;&lt;span class=&quot;bg-emerald-950 text-emerald-300 px-3 py-1 rounded-full text-xs font-bold border border-emerald-500/40&quot;&gt;ต้องอัปเดต&lt;/span&gt;&lt;/td&gt;
                            &lt;/tr&gt;
                            &lt;tr class=&quot;hover:bg-slate-900/50&quot;&gt;
                                &lt;td class=&quot;p-4 font-bold text-white&quot;&gt;PHP 8.2&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-red-400 font-semibold&quot;&gt;8.2.0 - 8.2.34&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-emerald-400 font-bold&quot;&gt;8.2.35 ขึ้นไป&lt;/td&gt;
                                &lt;td class=&quot;p-4&quot;&gt;&lt;span class=&quot;bg-emerald-950 text-emerald-300 px-3 py-1 rounded-full text-xs font-bold border border-emerald-500/40&quot;&gt;ต้องอัปเดต&lt;/span&gt;&lt;/td&gt;
                            &lt;/tr&gt;
                            &lt;tr class=&quot;bg-red-950/40&quot;&gt;
                                &lt;td class=&quot;p-4 font-bold text-red-300&quot;&gt;PHP 8.1 หรือเก่ากว่า&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-red-400 font-semibold&quot;&gt;ทุกเวอร์ชันต่ำกว่า 8.2&lt;/td&gt;
                                &lt;td class=&quot;p-4 font-mono text-amber-300 font-bold&quot;&gt;ไม่มีแพตช์ (EOL)&lt;/td&gt;
                                &lt;td class=&quot;p-4&quot;&gt;&lt;span class=&quot;bg-red-950 text-red-300 px-3 py-1 rounded-full text-xs font-bold border border-red-500/50&quot;&gt;อันตรายสูง ต้องย้ายเวอร์ชัน&lt;/span&gt;&lt;/td&gt;
                            &lt;/tr&gt;
                        &lt;/tbody&gt;
                    &lt;/table&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Command Snippets --&gt;
            &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-6&quot;&gt;
                &lt;!-- Ubuntu / Debian --&gt;
                &lt;div class=&quot;bg-brand-card border-2 border-brand-border rounded-xl p-5 space-y-3&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-between&quot;&gt;
                        &lt;span class=&quot;text-base font-bold text-white flex items-center gap-2&quot;&gt;
                            &lt;i class=&quot;fa-brands fa-ubuntu text-orange-500 text-lg&quot;&gt;&lt;/i&gt; Ubuntu / Debian
                        &lt;/span&gt;
                        &lt;button onclick=&quot;copyToClipboard(&#39;cmd-ubuntu&#39;)&quot; class=&quot;text-xs font-bold text-slate-200 hover:text-white bg-slate-800 hover:bg-slate-700 px-3 py-1.5 rounded border border-slate-600 transition&quot;&gt;
                            &lt;i class=&quot;fa-regular fa-copy mr-1&quot;&gt;&lt;/i&gt; ก๊อปปี้
                        &lt;/button&gt;
                    &lt;/div&gt;
                    &lt;pre class=&quot;bg-slate-950 p-3.5 rounded-lg text-xs font-mono text-emerald-400 overflow-x-auto border border-slate-800 font-semibold leading-relaxed&quot; id=&quot;cmd-ubuntu&quot;&gt;
sudo apt update &amp;&amp; sudo apt upgrade php -y
sudo systemctl restart php8.3-fpm # หรือเวอร์ชันที่ใช้อยู่
sudo systemctl restart nginx # หรือ apache2&lt;/pre&gt;
                &lt;/div&gt;

                &lt;!-- RHEL / CentOS / AlmaLinux --&gt;
                &lt;div class=&quot;bg-brand-card border-2 border-brand-border rounded-xl p-5 space-y-3&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-between&quot;&gt;
                        &lt;span class=&quot;text-base font-bold text-white flex items-center gap-2&quot;&gt;
                            &lt;i class=&quot;fa-brands fa-redhat text-red-500 text-lg&quot;&gt;&lt;/i&gt; RHEL / AlmaLinux / Rocky
                        &lt;/span&gt;
                        &lt;button onclick=&quot;copyToClipboard(&#39;cmd-rhel&#39;)&quot; class=&quot;text-xs font-bold text-slate-200 hover:text-white bg-slate-800 hover:bg-slate-700 px-3 py-1.5 rounded border border-slate-600 transition&quot;&gt;
                            &lt;i class=&quot;fa-regular fa-copy mr-1&quot;&gt;&lt;/i&gt; ก๊อปปี้
                        &lt;/button&gt;
                    &lt;/div&gt;
                    &lt;pre class=&quot;bg-slate-950 p-3.5 rounded-lg text-xs font-mono text-emerald-400 overflow-x-auto border border-slate-800 font-semibold leading-relaxed&quot; id=&quot;cmd-rhel&quot;&gt;
sudo dnf update php\* -y
sudo systemctl restart php-fpm
sudo systemctl restart nginx # หรือ httpd&lt;/pre&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Temporary Mitigation Box (Ultra High-Contrast FIX) --&gt;
            &lt;div class=&quot;bg-slate-900 border-2 border-amber-400 rounded-xl p-6 md:p-7 space-y-4 shadow-2xl&quot;&gt;
                &lt;div class=&quot;flex items-center gap-3&quot;&gt;
                    &lt;div class=&quot;p-2.5 bg-amber-500/20 text-amber-300 rounded-lg border border-amber-400/40&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-shield-halved text-2xl&quot;&gt;&lt;/i&gt;
                    &lt;/div&gt;
                    &lt;h3 class=&quot;text-xl font-extrabold text-amber-300&quot;&gt;
                        มาตรการชะลอความเสี่ยงชั่วคราว (หากยังอัปเดต PHP ทันทีไม่ได้)
                    &lt;/h3&gt;
                &lt;/div&gt;
                
                &lt;ul class=&quot;text-base text-white space-y-3 list-none leading-relaxed font-normal pt-1&quot;&gt;
                    &lt;li class=&quot;flex items-start gap-3&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-check text-amber-400 mt-1 shrink-0&quot;&gt;&lt;/i&gt;
                        &lt;span&gt;ปิดการตั้งค่า Session Upload Progress ในไฟล์ &lt;code class=&quot;font-mono bg-black text-amber-300 font-bold px-2 py-1 rounded border border-amber-400/50&quot;&gt;php.ini&lt;/code&gt; โดยตั้งค่า &lt;code class=&quot;font-mono bg-black text-amber-300 font-bold px-2 py-1 rounded border border-amber-400/50&quot;&gt;session.upload_progress.enabled = Off&lt;/code&gt;&lt;/span&gt;
                    &lt;/li&gt;
                    &lt;li class=&quot;flex items-start gap-3&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-check text-amber-400 mt-1 shrink-0&quot;&gt;&lt;/i&gt;
                        &lt;span&gt;จำกัดขนาดไฟล์ที่อัปโหลด &lt;code class=&quot;font-mono bg-black text-amber-300 font-bold px-2 py-1 rounded border border-amber-400/50&quot;&gt;upload_max_filesize&lt;/code&gt; และ &lt;code class=&quot;font-mono bg-black text-amber-300 font-bold px-2 py-1 rounded border border-amber-400/50&quot;&gt;post_max_size&lt;/code&gt; ให้รัดกุมที่สุดเท่าที่จำเป็น&lt;/span&gt;
                    &lt;/li&gt;
                    &lt;li class=&quot;flex items-start gap-3&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-check text-amber-400 mt-1 shrink-0&quot;&gt;&lt;/i&gt;
                        &lt;span&gt;วาง Web Application Firewall (WAF) เช่น Cloudflare หรือ ModSecurity เพื่อช่วยสแกนดักจับ HTTP Payload ที่ประสงค์ร้าย&lt;/span&gt;
                    &lt;/li&gt;
                &lt;/ul&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- Section 5: Sysadmin Action Checklist --&gt;
        &lt;section class=&quot;bg-brand-card border-2 border-brand-border rounded-2xl p-6 md:p-8 space-y-6&quot;&gt;
            &lt;h2 class=&quot;text-xl font-bold text-white flex items-center gap-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-list-check text-emerald-400&quot;&gt;&lt;/i&gt;
                รายการตรวจสอบความพร้อมของผู้ดูแลระบบ (Sysadmin Checklist)
            &lt;/h2&gt;
            &lt;div class=&quot;space-y-3&quot; id=&quot;checklist&quot;&gt;
                &lt;label class=&quot;flex items-center gap-3.5 p-4 bg-slate-900 rounded-xl cursor-pointer hover:bg-slate-800/80 border-2 border-slate-800 transition&quot;&gt;
                    &lt;input type=&quot;checkbox&quot; class=&quot;w-5 h-5 accent-emerald-500 rounded shrink-0&quot;&gt;
                    &lt;span class=&quot;text-sm font-medium text-slate-100&quot;&gt;ตรวจสอบเวอร์ชัน PHP ปัจจุบันบน Production Server ทั้งหมด&lt;/span&gt;
                &lt;/label&gt;
                &lt;label class=&quot;flex items-center gap-3.5 p-4 bg-slate-900 rounded-xl cursor-pointer hover:bg-slate-800/80 border-2 border-slate-800 transition&quot;&gt;
                    &lt;input type=&quot;checkbox&quot; class=&quot;w-5 h-5 accent-emerald-500 rounded shrink-0&quot;&gt;
                    &lt;span class=&quot;text-sm font-medium text-slate-100&quot;&gt;ทำ Full Backup ฐานข้อมูลและไฟล์ระบบก่อนเริ่มดำเนินการอัปเกรด&lt;/span&gt;
                &lt;/label&gt;
                &lt;label class=&quot;flex items-center gap-3.5 p-4 bg-slate-900 rounded-xl cursor-pointer hover:bg-slate-800/80 border-2 border-slate-800 transition&quot;&gt;
                    &lt;input type=&quot;checkbox&quot; class=&quot;w-5 h-5 accent-emerald-500 rounded shrink-0&quot;&gt;
                    &lt;span class=&quot;text-sm font-medium text-slate-100&quot;&gt;ดำเนินการอัปเดต PHP เป็นเวอร์ชันแพตช์ล่าสุด (8.5.12+, 8.4.27+, 8.3.36+, 8.2.35+)&lt;/span&gt;
                &lt;/label&gt;
                &lt;label class=&quot;flex items-center gap-3.5 p-4 bg-slate-900 rounded-xl cursor-pointer hover:bg-slate-800/80 border-2 border-slate-800 transition&quot;&gt;
                    &lt;input type=&quot;checkbox&quot; class=&quot;w-5 h-5 accent-emerald-500 rounded shrink-0&quot;&gt;
                    &lt;span class=&quot;text-sm font-medium text-slate-100&quot;&gt;ทำการ Restart บริการ PHP-FPM และ Web Server (Nginx / Apache)&lt;/span&gt;
                &lt;/label&gt;
                &lt;label class=&quot;flex items-center gap-3.5 p-4 bg-slate-900 rounded-xl cursor-pointer hover:bg-slate-800/80 border-2 border-slate-800 transition&quot;&gt;
                    &lt;input type=&quot;checkbox&quot; class=&quot;w-5 h-5 accent-emerald-500 rounded shrink-0&quot;&gt;
                    &lt;span class=&quot;text-sm font-medium text-slate-100&quot;&gt;ตรวจสอบ Log ของ Web Server ว่ามีพฤติกรรมการยิง Request ที่ผิดปกติหรือไม่&lt;/span&gt;
                &lt;/label&gt;
            &lt;/div&gt;
        &lt;/section&gt;

    &lt;/main&gt;

    &lt;!-- Footer --&gt;
    &lt;footer class=&quot;mt-16 border-t border-brand-border text-center text-xs text-slate-400 py-8&quot;&gt;
        &lt;div class=&quot;max-w-6xl mx-auto px-4 space-y-2&quot;&gt;
            &lt;p class=&quot;font-medium text-slate-300&quot;&gt;PHP Security Bulletin &amp; Unauthenticated RCE Education Dashboard&lt;/p&gt;
            &lt;p class=&quot;text-slate-400&quot;&gt;ข้อควรระวัง: โปรดทดสอบการอัปเดตในระบบ Staging/Test ก่อนดำเนินการบน Production จริงเสมอ&lt;/p&gt;
        &lt;/div&gt;
    &lt;/footer&gt;

    &lt;!-- Interactive Logic Script --&gt;
    &lt;script&gt;
        // Check PHP Version Logic
        function checkPhpVersion() {
            const input = document.getElementById(&#39;phpVersionInput&#39;).value.trim();
            const resultDiv = document.getElementById(&#39;checkResult&#39;);
            
            if (!input) {
                resultDiv.classList.remove(&#39;hidden&#39;);
                resultDiv.className = &#39;p-4 rounded-lg border-2 text-base font-bold bg-amber-950 text-amber-300 border-amber-500&#39;;
                resultDiv.innerHTML = &#39;&lt;i class=&quot;fa-solid fa-triangle-exclamation mr-2&quot;&gt;&lt;/i&gt; กรุณากรอกเลขเวอร์ชัน PHP เช่น 8.3.10&#39;;
                return;
            }

            // Simple SemVer parser helper
            const parts = input.split(&#39;.&#39;).map(num =&gt; parseInt(num, 10));
            
            if (parts.length &lt; 2 || isNaN(parts[0]) || isNaN(parts[1])) {
                resultDiv.classList.remove(&#39;hidden&#39;);
                resultDiv.className = &#39;p-4 rounded-lg border-2 text-base font-bold bg-amber-950 text-amber-300 border-amber-500&#39;;
                resultDiv.innerHTML = &#39;&lt;i class=&quot;fa-solid fa-circle-xmark mr-2&quot;&gt;&lt;/i&gt; รูปแบบเวอร์ชันไม่ถูกต้อง กรุณาระบุ เช่น 8.3.10 หรือ 8.2.5&#39;;
                return;
            }

            const major = parts[0];
            const minor = parts[1];
            const patch = parts[2] !== undefined ? parts[2] : 0;

            let isSafe = false;
            let targetPatch = &quot;&quot;;

            if (major === 8) {
                if (minor === 5 &amp;&amp; patch &gt;= 12) isSafe = true;
                else if (minor === 5) targetPatch = &quot;8.5.12&quot;;

                if (minor === 4 &amp;&amp; patch &gt;= 27) isSafe = true;
                else if (minor === 4) targetPatch = &quot;8.4.27&quot;;

                if (minor === 3 &amp;&amp; patch &gt;= 36) isSafe = true;
                else if (minor === 3) targetPatch = &quot;8.3.36&quot;;

                if (minor === 2 &amp;&amp; patch &gt;= 35) isSafe = true;
                else if (minor === 2) targetPatch = &quot;8.2.35&quot;;

                if (minor &lt; 2) {
                    resultDiv.classList.remove(&#39;hidden&#39;);
                    resultDiv.className = &#39;p-4 rounded-lg border-2 text-base font-bold bg-red-950 text-white border-red-500&#39;;
                    resultDiv.innerHTML = `&lt;i class=&quot;fa-solid fa-skull-crossbones text-red-400 mr-2&quot;&gt;&lt;/i&gt; &lt;strong&gt;อันตรายระดับสูงสุด:&lt;/strong&gt; PHP ${input} หมดอายุการซัพพอร์ต (EOL) แล้ว และไม่มีแพตช์ความปลอดภัยรองรับ ควรวางแผนย้ายขึ้นไปใช้ PHP 8.2+ ด่วนที่สุด!`;
                    return;
                }
            } else if (major &lt; 8) {
                resultDiv.classList.remove(&#39;hidden&#39;);
                resultDiv.className = &#39;p-4 rounded-lg border-2 text-base font-bold bg-red-950 text-white border-red-500&#39;;
                resultDiv.innerHTML = `&lt;i class=&quot;fa-solid fa-skull-crossbones text-red-400 mr-2&quot;&gt;&lt;/i&gt; &lt;strong&gt;อันตรายระดับสูงสุด:&lt;/strong&gt; PHP ${input} เก่าเกินไปและหมดระยะซัพพอร์ต (EOL) แล้ว เสี่ยงต่อการโดนแฮกสูงมาก!`;
                return;
            } else if (major &gt; 8) {
                isSafe = true;
            }

            resultDiv.classList.remove(&#39;hidden&#39;);
            if (isSafe) {
                resultDiv.className = &#39;p-4 rounded-lg border-2 text-base font-bold bg-emerald-950 text-emerald-300 border-emerald-500&#39;;
                resultDiv.innerHTML = `&lt;i class=&quot;fa-solid fa-circle-check text-emerald-400 mr-2&quot;&gt;&lt;/i&gt; &lt;strong&gt;ปลอดภัย:&lt;/strong&gt; PHP เวอร์ชัน ${input} ของคุณได้รับการอัปเดตแพตช์ความปลอดภัยเรียบร้อยแล้ว`;
            } else {
                resultDiv.className = &#39;p-4 rounded-lg border-2 text-base font-bold bg-red-950 text-white border-red-500&#39;;
                resultDiv.innerHTML = `&lt;i class=&quot;fa-solid fa-triangle-exclamation text-amber-400 mr-2&quot;&gt;&lt;/i&gt; &lt;strong&gt;สุ่มเสี่ยงต่อช่องโหว่:&lt;/strong&gt; PHP เวอร์ชัน ${input} มีความเสี่ยง RCE แนะนำให้อัปเกรดเป็นเวอร์ชัน &lt;strong class=&quot;text-amber-300 underline font-mono&quot;&gt;${targetPatch}&lt;/strong&gt; หรือใหม่กว่าทันที!`;
            }
        }

        // Copy Code Functionality
        function copyToClipboard(elementId) {
            const text = document.getElementById(elementId).innerText;
            const textarea = document.createElement(&#39;textarea&#39;);
            textarea.value = text;
            document.body.appendChild(textarea);
            textarea.select();
            document.execCommand(&#39;copy&#39;);
            document.body.removeChild(textarea);

            // Simple User Feedback Alert Replacement
            const toast = document.createElement(&#39;div&#39;);
            toast.className = &#39;fixed bottom-5 right-5 bg-emerald-600 text-white font-bold px-4 py-3 rounded-lg text-sm shadow-2xl z-50 transition opacity-100 border border-emerald-400&#39;;
            toast.innerHTML = &#39;&lt;i class=&quot;fa-solid fa-check mr-2&quot;&gt;&lt;/i&gt; คัดลอกคำสั่งเรียบร้อยแล้ว&#39;;
            document.body.appendChild(toast);
            
            setTimeout(() =&gt; {
                toast.classList.add(&#39;opacity-0&#39;);
                setTimeout(() =&gt; toast.remove(), 300);
            }, 2000);
        }
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/3510366637362976364/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/3510366637362976364' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/3510366637362976364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/3510366637362976364'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/rce-php.html' title='พบช่องโหว่ความรุนแรงสูงสุ่มเสี่ยง RCE บนระบบ PHP- วิธีแก้ไข'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-8635789560496328831</id><published>2026-10-22T10:08:57.283+07:00</published><updated>2026-10-22T10:08:57.283+07:00</updated><title type='text'>คู่มือการใช้งานเครื่องซีลฝาฟอยล์ Induction Sealer</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;คู่มือการใช้งานเครื่องซีลฝาฟอยล์ Induction Sealer&lt;/title&gt;
    &lt;style&gt;
        :root {
            --primary-color: #0284c7;
            --secondary-color: #0f172a;
            --accent-color: #10b981;
            --bg-color: #f8fafc;
            --card-bg: #ffffff;
            --text-color: #334155;
            --border-color: #e2e8f0;
        }
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            font-family: &#39;Segoe UI&#39;, Tahoma, Geneva, Verdana, sans-serif;
        }
        body {
            background-color: var(--bg-color);
            color: var(--text-color);
            line-height: 1.7;
            padding: 20px 15px;
        }
        .manual-container {
            max-width: 900px;
            margin: 0 auto;
            background: var(--card-bg);
            border-radius: 16px;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
            overflow: hidden;
            border: 1px solid var(--border-color);
        }
        .header {
            background: linear-gradient(135deg, #0f172a, #1e293b);
            color: #ffffff;
            padding: 35px 30px;
            text-align: center;
        }
        .header h1 {
            font-size: 26px;
            margin-bottom: 10px;
            color: #f8fafc;
        }
        .header p {
            font-size: 15px;
            color: #94a3b8;
        }
        .content {
            padding: 35px 30px;
        }
        .section {
            margin-bottom: 35px;
            border-bottom: 1px solid var(--border-color);
            padding-bottom: 25px;
        }
        .section:last-child {
            border-bottom: none;
            margin-bottom: 0;
            padding-bottom: 0;
        }
        h2 {
            font-size: 20px;
            color: var(--secondary-color);
            margin-bottom: 15px;
            display: flex;
            align-items: center;
            gap: 10px;
            border-left: 4px solid var(--primary-color);
            padding-left: 12px;
        }
        h3 {
            font-size: 16px;
            color: #334155;
            margin: 15px 0 8px 0;
        }
        p, li {
            font-size: 15px;
            margin-bottom: 10px;
        }
        ul, ol {
            padding-left: 25px;
        }
        ul li {
            margin-bottom: 6px;
        }
        ol li {
            margin-bottom: 8px;
        }
        .table-container {
            overflow-x: auto;
            margin-top: 15px;
            margin-bottom: 15px;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            text-align: left;
            font-size: 14px;
        }
        th, td {
            padding: 12px 15px;
            border: 1px solid var(--border-color);
        }
        th {
            background-color: #f1f5f9;
            color: var(--secondary-color);
            font-weight: bold;
        }
        tr:nth-child(even) {
            background-color: #fafafa;
        }
        .warning-box {
            background-color: #fffbeb;
            border-left: 4px solid #f59e0b;
            padding: 15px 20px;
            border-radius: 0 8px 8px 0;
            margin: 20px 0;
            font-size: 14px;
            color: #92400e;
        }
        .tip-box {
            background-color: #ecfdf5;
            border-left: 4px solid var(--accent-color);
            padding: 15px 20px;
            border-radius: 0 8px 8px 0;
            margin: 20px 0;
            font-size: 14px;
            color: #065f46;
        }
        .footer-note {
            text-align: center;
            margin-top: 30px;
            font-size: 13px;
            color: #94a3b8;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div class=&quot;manual-container&quot;&gt;
    &lt;div class=&quot;header&quot;&gt;
        &lt;h1&gt;📘 คู่มือการใช้งานและการตั้งค่า&lt;/h1&gt;
        &lt;p&gt;เครื่องซีลฝาฟอยล์ระบบแม่เหล็กไฟฟ้า (Handheld Induction Sealer ขนาด 20-100 mm)&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;content&quot;&gt;
        &lt;!-- 1. ภาพรวมและข้อมูลจำเพาะ --&gt;
        &lt;div class=&quot;section&quot;&gt;
            &lt;h2&gt;⚙️ 1. ข้อมูลทางเทคนิคและสเปคเครื่อง&lt;/h2&gt;
            &lt;p&gt;เครื่องซีลฝาฟอยล์แบบมือถือ ใช้เทคโนโลยีเหนี่ยวนำแม่เหล็กไฟฟ้า (Electromagnetic Induction) เพื่อทำความร้อนให้แผ่นฟอลย์ละลายติดปากขวดอย่างรวดเร็ว&lt;/p&gt;
            &lt;ul&gt;
                &lt;li&gt;&lt;strong&gt;แรงดันไฟฟ้า:&lt;/strong&gt; AC 220V / 50Hz&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;กำลังไฟ:&lt;/strong&gt; 800W - 1200W (ปรับระดับได้)&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;เส้นผ่านศูนย์กลางปากขวด:&lt;/strong&gt; 20 - 100 มิลลิเมตร (mm)&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;วัสดุขวดที่รองรับ:&lt;/strong&gt; พลาสติก PE, PP, PET และขวดแก้ว (ไม่สามารถใช้กับฝาโลหะหรือปากขวดที่เป็นโลหะได้)&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;น้ำหนักเครื่อง:&lt;/strong&gt; ประมาณ 2.7 กิโลกรัม&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;

        &lt;!-- 2. ส่วนประกอบและการเตรียมตัวก่อนใช้งาน --&gt;
        &lt;div class=&quot;section&quot;&gt;
            &lt;h2&gt;🔧 2. การเตรียมความพร้อมก่อนเริ่มใช้งาน&lt;/h2&gt;
            &lt;ol&gt;
                &lt;li&gt;&lt;strong&gt;ตรวจสอบความเรียบร้อย:&lt;/strong&gt; เสียบปลั๊กไฟเข้ากับเต้ารับที่มีสายดิน รองรับกระแสไฟ 220V อย่างมั่นคง&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;การเตรียมขวดและฟอยล์:&lt;/strong&gt; 
                    &lt;ul&gt;
                        &lt;li&gt;บรรจุผลิตภัณฑ์ลงในขวดให้เรียบร้อย (ระวังอย่าให้มีคราบน้ำ น้ำผึ้ง หรือสารเคมีเลอะบริเวณขอบปากขวดด้านนอก เพราะจะทำให้กาวฟอยล์ติดไม่สนิท)&lt;/li&gt;
                        &lt;li&gt;วางแผ่นชิ้นฟอยล์อลูมิเนียม (หันด้านฟอยล์เงาออกด้านนอก หรือตามคำแนะนำของชนิดฟอยล์) ไว้ด้านในใต้ฝาเกลียวพลาสติก หรือวางแปะบนปากขวดโดยตรง&lt;/li&gt;
                        &lt;li&gt;ปิดฝาเกลียวทับให้แน่นพอดี&lt;/li&gt;
                    &lt;/ul&gt;
                &lt;/li&gt;
            &lt;/ol&gt;
        &lt;/div&gt;

        &lt;!-- 3. วิธีการใช้งานและขั้นตอนการซีล --&gt;
        &lt;div class=&quot;section&quot;&gt;
            &lt;h2&gt;🚀 3. ขั้นตอนการใช้งานเครื่อง&lt;/h2&gt;
            &lt;ol&gt;
                &lt;li&gt;&lt;strong&gt;เปิดสวิตช์เครื่อง:&lt;/strong&gt; เปิดปุ่ม Power ด้านข้างหรือหน้าเครื่อง หน้าจอแสดงผลดิจิทัลจะสว่างขึ้น&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;ตั้งค่าเวลา (Time Setting):&lt;/strong&gt; กดปุ่มลูกศรเพิ่ม/ลดเวลา (Time +/-) บนหน้าจอ โดยทั่วไปจะตั้งไว้ที่ **1.0 ถึง 3.0 วินาที** (ขึ้นอยู่กับขนาดปากขวดและความหนาของฟอยล์)&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;ครอบหัวซีล:&lt;/strong&gt; นำหัวพ่นสนามแม่เหล็กไฟฟ้า (Sealing Head) ไปครอบลงบนฝาขวดพลาสติกให้สนิทและอยู่ในแนวระนาบตรง&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;กดปุ่มทำงาน:&lt;/strong&gt; กดปุ่มสวิตช์ที่ด้ามจับ (Handle Switch) 1 ครั้ง เครื่องจะเริ่มทำงานโดยส่งเสียงเตือนเบา ๆ และนับเวลาถอยหลังบนหน้าจอ&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;เสร็จสิ้นกระบวนการ:&lt;/strong&gt; เมื่อครบกำหนดเวลา เครื่องจะหยุดอัตโนมัติ ยกหัวซีลออกได้ทันที&lt;/li&gt;
            &lt;/ol&gt;
            &lt;div class=&quot;tip-box&quot;&gt;
                💡 &lt;strong&gt;ข้อสังเกตหลังซีลเสร็จ:&lt;/strong&gt; เมื่อแกะฝาเกลียวพลาสติกออก แผ่นฟอยล์อลูมิเนียมจะเชื่อมติดสนิทแน่นกับขอบปากขวด ส่วนแผ่นโฟมรองซับจะยังคงอยู่ด้านในฝาเกลียวเหมือนเดิม
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- 4. แนวทางการตั้งค่าเวลาและกำลังไฟ --&gt;
        &lt;div class=&quot;section&quot;&gt;
            &lt;h2&gt;⏱️ 4. ตารางเทียบเวลาและขนาดขวดเบื้องต้น&lt;/h2&gt;
            &lt;p&gt;ระยะเวลาในการซีลอาจแตกต่างกันเล็กน้อย ขึ้นอยู่กับความหนาของพลาสติกและขนาดเส้นผ่านศูนย์กลาง:&lt;/p&gt;
            &lt;div class=&quot;table-container&quot;&gt;
                &lt;table&gt;
                    &lt;thead&gt;
                        &lt;tr&gt;
                            &lt;th&gt;ขนาดปากขวด&lt;/th&gt;
                            &lt;th&gt;เวลาที่แนะนำ (วินาที)&lt;/th&gt;
                            &lt;th&gt;คำแนะนำเพิ่มเติม&lt;/th&gt;
                        &lt;/tr&gt;
                    &lt;/thead&gt;
                    &lt;tbody&gt;
                        &lt;tr&gt;
                            &lt;td&gt;20 - 40 mm (ขวดเล็ก/ขวดยา)&lt;/td&gt;
                            &lt;td&gt;0.8 - 1.2 วินาที&lt;/td&gt;
                            &lt;td&gt;ใช้เวลาน้อยเพราะพื้นที่ความร้อนแคบ ระวังอย่าตั้งเวลานานเกินไป&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr&gt;
                            &lt;td&gt;40 - 70 mm (ขวดกลาง/ซอส/น้ำผึ้ง)&lt;/td&gt;
                            &lt;td&gt;1.2 - 2.0 วินาที&lt;/td&gt;
                            &lt;td&gt;เป็นขนาดมาตรฐานทั่วไป ฟอยล์จะละลายติดได้ดีและสวยงาม&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr&gt;
                            &lt;td&gt;70 - 100 mm (ขวดใหญ่/กระปุกกว้าง)&lt;/td&gt;
                            &lt;td&gt;2.0 - 3.5 วินาที&lt;/td&gt;
                            &lt;td&gt;ต้องใช้เวลานานขึ้นเพื่อให้คลื่นแม่เหล็กแผ่ขยายทั่วถึงขอบปากขวด&lt;/td&gt;
                        &lt;/tr&gt;
                    &lt;/tbody&gt;
                &lt;/table&gt;
            &lt;/div&gt;
            &lt;div class=&quot;warning-box&quot;&gt;
                ⚠️ **ข้อควรระวังเรื่องความร้อน:** หากตั้งเวลานานเกินไป (เช่น เกิน 4 วินาทีติดต่อกันในขวดเล็ก) จะทำให้พลาสติกบริเวณปากขวดละลายเสียรูป หรือแผ่นฟอยล์ไหม้ได้ ให้ทดสอบกับขวดเปล่าก่อนเริ่มผลิตจริง
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- 5. การบำรุงรักษาและการแก้ไขปัญหาเบื้องต้น --&gt;
        &lt;div class=&quot;section&quot;&gt;
            &lt;h2&gt;🛠️ 5. การดูแลรักษาและการแก้ปัญหาทั่วไป&lt;/h2&gt;
            &lt;h3&gt;การบำรุงรักษา&lt;/h3&gt;
            &lt;ul&gt;
                &lt;li&gt;หลังใช้งานเสร็จควรรอให้เครื่องเย็นลงก่อนจัดเก็บ&lt;/li&gt;
                &lt;li&gt;ใช้ผ้าแห้งหรือผ้าชุบน้ำหมาด ๆ เช็ดทำความสะอาดตัวเครื่อง ห้ามให้น้ำเข้าภายในตัวเครื่องเด็ดขาด&lt;/li&gt;
                &lt;li&gt;ควรพักเครื่องเป็นระยะหากใช้งานต่อเนื่องเป็นจำนวนมาก เพื่อยืดอายุการใช้งานแผงวงจรภายใน&lt;/li&gt;
            &lt;/ul&gt;

            &lt;h3&gt;การแก้ไขปัญหาเฉพาะหน้า (Troubleshooting)&lt;/h3&gt;
            &lt;ul&gt;
                &lt;li&gt;&lt;strong&gt;ฟอยล์ไม่ติด / หลุดง่าย:&lt;/strong&gt; อาจเกิดจากตั้งเวลาน้อยเกินไป, ปิดฝาไม่แน่นขณะซีล, หรือมีคราบความชื้น/น้ำมันเลอะที่ปากขวด ให้ทำความสะอาดปากขวดและเพิ่มเวลาซีลทีละ 0.5 วินาที&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;พลาสติกปากขวดละลายผิดรูป:&lt;/strong&gt; ตั้งเวลาไว้นานเกินไป หรือกำลังไฟสูงเกินไป ให้ลดเวลาลง&lt;/li&gt;
                &lt;li&gt;&lt;strong&gt;เครื่องไม่ทำงาน / ฟิวส์ตัด:&lt;/strong&gt; ตรวจสอบการเสียบปลั๊ก, ตรวจสอบแรงดันไฟบ้านว่านิ่งหรือไม่ หรือเช็คฟิวส์ด้านหลังเครื่อง&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;

        &lt;div class=&quot;footer-note&quot;&gt;
            คู่มือฉบับนี้เรียบเรียงขึ้นเพื่อให้ใช้งานเครื่องซีลฝาฟอยล์ได้อย่างมีประสิทธิภาพและปลอดภัยสูงสุด
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/8635789560496328831/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/8635789560496328831' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/8635789560496328831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/8635789560496328831'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/induction-sealer.html' title='คู่มือการใช้งานเครื่องซีลฝาฟอยล์ Induction Sealer'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-6850038878946232283</id><published>2026-10-22T08:13:35.984+07:00</published><updated>2026-10-22T08:13:35.984+07:00</updated><title type='text'>วิธีปิดอัปเดต Windows 10 และ Windows 11 ถาวร แบบจับมือท</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;วิธีปิดอัปเดต Windows 10 และ Windows 11 ถาวร แบบจับมือทำ&lt;/title&gt;
    &lt;style&gt;
        .blog-container {
            font-family: &#39;Sarabun&#39;, &#39;Segoe UI&#39;, Tahoma, Geneva, Verdana, sans-serif;
            line-height: 1.8;
            color: #333333;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            background-color: #ffffff;
        }

        .blog-header {
            text-align: center;
            border-bottom: 3px solid #0078d4;
            padding-bottom: 20px;
            margin-bottom: 30px;
        }

        .blog-title {
            color: #0078d4;
            font-size: 28px;
            font-weight: bold;
            margin-bottom: 10px;
        }

        .blog-subtitle {
            color: #666666;
            font-size: 16px;
        }

        .intro-box {
            background-color: #f0f6ff;
            border-left: 5px solid #0078d4;
            padding: 15px 20px;
            margin-bottom: 30px;
            border-radius: 0 8px 8px 0;
        }

        .step-card {
            background: #ffffff;
            border: 1px solid #e1e4e8;
            border-radius: 8px;
            padding: 20px;
            margin-bottom: 25px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.05);
        }

        .step-number {
            display: inline-block;
            background-color: #0078d4;
            color: #ffffff;
            font-weight: bold;
            padding: 2px 12px;
            border-radius: 20px;
            font-size: 14px;
            margin-bottom: 10px;
        }

        .step-title {
            font-size: 20px;
            color: #1a1a1a;
            margin-top: 5px;
            margin-bottom: 15px;
            font-weight: bold;
        }

        .instruction-list {
            padding-left: 20px;
            margin: 0;
        }

        .instruction-list li {
            margin-bottom: 12px;
        }

        .key-btn {
            background-color: #f3f3f3;
            border: 1px solid #ccc;
            border-radius: 4px;
            padding: 2px 8px;
            font-family: monospace;
            font-weight: bold;
            color: #444;
            box-shadow: 0 1px 1px rgba(0,0,0,0.2);
        }

        .highlight-text {
            color: #d93025;
            font-weight: bold;
        }

        .click-target {
            color: #1a73e8;
            font-weight: bold;
            background-color: #e8f0fe;
            padding: 2px 6px;
            border-radius: 4px;
        }

        .warning-box {
            background-color: #fff4e5;
            border-left: 5px solid #ffa000;
            padding: 15px 20px;
            margin-top: 30px;
            border-radius: 0 8px 8px 0;
        }

        .success-box {
            background-color: #e6f4ea;
            border-left: 5px solid #137333;
            padding: 15px 20px;
            margin-top: 30px;
            border-radius: 0 8px 8px 0;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div class=&quot;blog-container&quot;&gt;

    &lt;!-- Header Section --&gt;
    &lt;div class=&quot;blog-header&quot;&gt;
        &lt;h1 class=&quot;blog-title&quot;&gt;วิธีปิดอัปเดต Windows 10 และ Windows 11 ถาวร&lt;/h1&gt;
        &lt;div class=&quot;blog-subtitle&quot;&gt;ทำตามทีละขั้นตอน ละเอียด ชัดเจน มือใหม่ก็ทำได้ง่ายๆ ไม่พลาดแน่นอน&lt;/div&gt;
    &lt;/div&gt;

    &lt;!-- Intro Box --&gt;
    &lt;div class=&quot;intro-box&quot;&gt;
        &lt;strong&gt;📌 ปัญหานี้จะหมดไป:&lt;/strong&gt; เบื่อไหมครับที่กำลังทำงานสำคัญแล้วคอมพิวเตอร์ชอบแอบอัปเดตเอง หรือรีสตาร์ตเครื่องโดยไม่บอกกล่าว? บทความนี้จะพาคุณไปปิดบริการอัปเดตของ Windows (Windows Update) แบบละเอียดทีละคลิก ทำตามได้ทันทีครับ!
    &lt;/div&gt;

    &lt;!-- Step 1 --&gt;
    &lt;div class=&quot;step-card&quot;&gt;
        &lt;span class=&quot;step-number&quot;&gt;ขั้นตอนที่ 1&lt;/span&gt;
        &lt;div class=&quot;step-title&quot;&gt;เปิดหน้าต่างบริการระบบ (Services)&lt;/div&gt;
        &lt;ol class=&quot;instruction-list&quot;&gt;
            &lt;li&gt;มองหาปุ่ม &lt;span class=&quot;key-btn&quot;&gt;Windows&lt;/span&gt; (รูปโลโก้หน้าต่างบนคีย์บอร์ด) ค้างไว้ แล้วกดปุ่ม &lt;span class=&quot;key-btn&quot;&gt;R&lt;/span&gt; พร้อมกัน 1 ครั้ง&lt;/li&gt;
            &lt;li&gt;จะมีหน้าต่างเล็กๆ ชื่อว่า &lt;strong&gt;Run&lt;/strong&gt; เด้งขึ้นมาบริเวณมุมซ้ายล่างของจอ&lt;/li&gt;
            &lt;li&gt;ในช่องว่าง ให้พิมพ์คำว่า: &lt;span class=&quot;click-target&quot;&gt;services.msc&lt;/span&gt; (พิมพ์ตัวเล็กทั้งหมด)&lt;/li&gt;
            &lt;li&gt;จากนั้นกดปุ่ม &lt;span class=&quot;key-btn&quot;&gt;Enter&lt;/span&gt; บนคีย์บอร์ด หรือใช้เมาส์คลิกปุ่ม &lt;span class=&quot;click-target&quot;&gt;OK&lt;/span&gt;&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;!-- Step 2 --&gt;
    &lt;div class=&quot;step-card&quot;&gt;
        &lt;span class=&quot;step-number&quot;&gt;ขั้นตอนที่ 2&lt;/span&gt;
        &lt;div class=&quot;step-title&quot;&gt;ค้นหาเมนู Windows Update&lt;/div&gt;
        &lt;ol class=&quot;instruction-list&quot;&gt;
            &lt;li&gt;หน้าต่างใหญ่ชื่อ &lt;strong&gt;Services&lt;/strong&gt; จะปรากฏขึ้นมา บนจอจะเห็นรายชื่อบริการเต็มไปหมด&lt;/li&gt;
            &lt;li&gt;เลื่อนลูกกลิ้งเมาส์ลงไปด้านล่างสุด (รายชื่อจะเรียงตามตัวอักษร A-Z ให้เลื่อนไปหมวดตัว &lt;strong&gt;W&lt;/strong&gt;)&lt;/li&gt;
            &lt;li&gt;มองหาบรรทัดที่ชื่อว่า &lt;span class=&quot;click-target&quot;&gt;Windows Update&lt;/span&gt;&lt;/li&gt;
            &lt;li&gt;เมื่อเจอแล้ว ให้ใช้เมาส์ &lt;span class=&quot;highlight-text&quot;&gt;คลิกขวา&lt;/span&gt; ที่ชื่อ &lt;span class=&quot;click-target&quot;&gt;Windows Update&lt;/span&gt; แล้วเลือกเมนูล่างสุดที่ชื่อว่า &lt;span class=&quot;click-target&quot;&gt;Properties&lt;/span&gt;&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;!-- Step 3 --&gt;
    &lt;div class=&quot;step-card&quot;&gt;
        &lt;span class=&quot;step-number&quot;&gt;ขั้นตอนที่ 3&lt;/span&gt;
        &lt;div class=&quot;step-title&quot;&gt;สั่งหยุดการทำงานชั่วคราว (Stop Service)&lt;/div&gt;
        &lt;ol class=&quot;instruction-list&quot;&gt;
            &lt;li&gt;หน้าต่างเล็กๆ ชื่อ &lt;strong&gt;Windows Update Properties&lt;/strong&gt; จะเปิดขึ้นมา&lt;/li&gt;
            &lt;li&gt;สังเกตตรงหัวข้อ &lt;strong&gt;Service status:&lt;/strong&gt; ถ้าเห็นคำว่า Running อยู่ ให้มองหาปุ่มที่เขียนว่า &lt;span class=&quot;click-target&quot;&gt;Stop&lt;/span&gt; ด้านล่าง&lt;/li&gt;
            &lt;li&gt;ใช้เมาส์คลิกที่ปุ่ม &lt;span class=&quot;click-target&quot;&gt;Stop&lt;/span&gt; 1 ครั้ง&lt;/li&gt;
            &lt;li&gt;จะมีหน้าต่างหลอดสีเขียววิ่งขึ้นมาเพื่อทำการหยุดระบบ ให้รอจนหลอดสีเขียววิ่งเต็มแล้วปิดไปเอง (ใช้เวลาประมาณ 5-10 วินาที)&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;!-- Step 4 --&gt;
    &lt;div class=&quot;step-card&quot;&gt;
        &lt;span class=&quot;step-number&quot;&gt;ขั้นตอนที่ 4&lt;/span&gt;
        &lt;div class=&quot;step-title&quot;&gt;ปิดการทำงานถาวร (Disable)&lt;/div&gt;
        &lt;ol class=&quot;instruction-list&quot;&gt;
            &lt;li&gt;กลับมาที่หน้าต่างเดิม มองหาหัวข้อ &lt;span class=&quot;highlight-text&quot;&gt;Startup type:&lt;/span&gt;&lt;/li&gt;
            &lt;li&gt;จะเห็นช่องขวามือที่เขียนว่า &lt;code&gt;Manual (Trigger Start)&lt;/code&gt; หรือ &lt;code&gt;Automatic&lt;/code&gt;&lt;/li&gt;
            &lt;li&gt;ให้คลิกที่ช่องนั้น แล้วเลือกเปลี่ยนเป็น &lt;span class=&quot;click-target&quot;&gt;Disabled&lt;/span&gt;&lt;/li&gt;
            &lt;li&gt;กดยืนยันโดยคลิกปุ่ม &lt;span class=&quot;click-target&quot;&gt;Apply&lt;/span&gt; ที่มุมขวาล่าง 1 ครั้ง&lt;/li&gt;
            &lt;li&gt;จากนั้นคลิกปุ่ม &lt;span class=&quot;click-target&quot;&gt;OK&lt;/span&gt; เพื่อปิดหน้าต่าง เป็นอันเสร็จสิ้นขั้นตอน!&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;!-- Optional Bonus Step --&gt;
    &lt;div class=&quot;step-card&quot; style=&quot;border-style: dashed; background-color: #fafafa;&quot;&gt;
        &lt;span class=&quot;step-number&quot; style=&quot;background-color: #6c757d;&quot;&gt;ขั้นตอนเสริม (ถ้ามี)&lt;/span&gt;
        &lt;div class=&quot;step-title&quot;&gt;ปิดบริการรายงานข้อผิดพลาด (Windows Error Reporting Service)&lt;/div&gt;
        &lt;p&gt;หากต้องการลดการทำงานเบื้องหลังของคอมพิวเตอร์เพิ่มเติม สามารถทำตามขั้นตอนด้านล่างนี้ได้ครับ:&lt;/p&gt;
        &lt;ol class=&quot;instruction-list&quot;&gt;
            &lt;li&gt;ในหน้าต่าง Services หน้าเดิม ให้เลื่อนหาคำว่า &lt;span class=&quot;click-target&quot;&gt;Windows Error Reporting Service&lt;/span&gt;&lt;/li&gt;
            &lt;li&gt;คลิกขวา แล้วเลือก &lt;span class=&quot;click-target&quot;&gt;Properties&lt;/span&gt;&lt;/li&gt;
            &lt;li&gt;กดปุ่ม &lt;span class=&quot;click-target&quot;&gt;Stop&lt;/span&gt; และเปลี่ยนช่อง &lt;strong&gt;Startup type&lt;/strong&gt; ให้เป็น &lt;span class=&quot;click-target&quot;&gt;Disabled&lt;/span&gt;&lt;/li&gt;
            &lt;li&gt;กด &lt;span class=&quot;click-target&quot;&gt;Apply&lt;/span&gt; และกด &lt;span class=&quot;click-target&quot;&gt;OK&lt;/span&gt;&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;!-- Warning Box --&gt;
    &lt;div class=&quot;warning-box&quot;&gt;
        &lt;strong&gt;⚠️ ข้อควรระวังในการปิด Services อื่นๆ:&lt;/strong&gt;
        &lt;br&gt;
        ในหน้าต่างนี้จะมีหลายบริการที่สำคัญต่อระบบ เช่น &lt;strong&gt;Windows License Manager Service&lt;/strong&gt; (ระบบดูแลลิขสิทธิ์) &lt;span class=&quot;highlight-text&quot;&gt;ห้ามปิดเด็ดขาด&lt;/span&gt; เพราะอาจทำให้เปิดแอปพลิเคชันหรือใช้งานระบบบางอย่างไม่ได้ ให้ปิดเฉพาะตัวที่แนะนำในบทความนี้เท่านั้นครับ!
    &lt;/div&gt;

    &lt;!-- Success Box --&gt;
    &lt;div class=&quot;success-box&quot;&gt;
        &lt;strong&gt;🎉 เรียบร้อยแล้ว!&lt;/strong&gt;
        &lt;br&gt;
        เพียงเท่านี้ Windows 10 หรือ Windows 11 ของคุณจะไม่แอบอัปเดตอัตโนมัติอีกต่อไป สามารถทำงานได้อย่างสบายใจ ไม่ต้องกลัวเครื่องค้างหรือรีสตาร์ตเองกะทันหันครับ!
    &lt;/div&gt;

&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/6850038878946232283/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/6850038878946232283' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/6850038878946232283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/6850038878946232283'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/windows-10-windows-11.html' title='วิธีปิดอัปเดต Windows 10 และ Windows 11 ถาวร แบบจับมือท'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-5925214205699029036</id><published>2026-10-21T14:28:03.995+07:00</published><updated>2026-10-21T14:28:03.995+07:00</updated><title type='text'>ทำไมคอมปัจจุบันถึงไม่ค่อยติดไวรัสเหมือนเมื่อก่อน?</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;ทำไมคอมปัจจุบันถึงไม่ค่อยติดไวรัสเหมือนเมื่อก่อน?&lt;/title&gt;
    &lt;!-- Tailwind CSS CDN --&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;!-- Google Font: Prompt --&gt;
    &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Prompt&#39;, sans-serif;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-slate-50 text-slate-800 antialiased leading-relaxed py-10 px-4 sm:px-6 lg:px-8&quot;&gt;

    &lt;div class=&quot;max-w-4xl mx-auto bg-white rounded-2xl shadow-xl overflow-hidden border border-slate-100&quot;&gt;
        
        &lt;!-- Header Section --&gt;
        &lt;div class=&quot;bg-gradient-to-r from-blue-700 via-indigo-700 to-slate-900 px-6 py-8 text-white&quot;&gt;
            &lt;div class=&quot;flex items-center space-x-2 mb-3&quot;&gt;
                &lt;span class=&quot;bg-blue-500/30 text-blue-200 text-xs font-semibold px-3 py-1 rounded-full uppercase tracking-wider border border-blue-400/20&quot;&gt;Cyber Security Insights&lt;/span&gt;
            &lt;/div&gt;
            &lt;h1 class=&quot;text-2xl sm:text-3xl font-bold tracking-tight&quot;&gt;ทำไมเดี๋ยวนี้คอมไม่ค่อยติดไวรัสเหมือนเมื่อก่อน?&lt;/h1&gt;
            &lt;p class=&quot;text-blue-100 mt-2 text-sm sm:text-base&quot;&gt;ไขข้อสงสัย... จากยุคที่แค่เสียบ Flash Drive ก็ติดไวรัส มาสู่ยุคที่ระบบป้องกันชาญฉลาดขึ้น&lt;/p&gt;
        &lt;/div&gt;

        &lt;!-- Main Content --&gt;
        &lt;div class=&quot;px-6 py-8 space-y-6&quot;&gt;

            &lt;!-- Card 1 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-start space-x-4&quot;&gt;
                    &lt;div class=&quot;flex-shrink-0 w-12 h-12 rounded-xl bg-amber-100 text-amber-600 flex items-center justify-center font-bold text-xl&quot;&gt;
                        ⚡
                    &lt;/div&gt;
                    &lt;div class=&quot;flex-1&quot;&gt;
                        &lt;div class=&quot;flex items-center justify-between&quot;&gt;
                            &lt;h2 class=&quot;text-lg font-bold text-slate-900&quot;&gt;1. การยกเลิกฟีเจอร์ &quot;AutoRun / AutoPlay&quot;&lt;/h2&gt;
                        &lt;/div&gt;
                        &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-3 mt-3 text-xs sm:text-sm&quot;&gt;
                            &lt;div class=&quot;bg-rose-50/60 p-3 rounded-lg border border-rose-100 text-rose-900&quot;&gt;
                                &lt;span class=&quot;font-semibold text-rose-700 block mb-1&quot;&gt;📜 สมัยก่อน:&lt;/span&gt;
                                แค่เสียบ Flash Drive เครื่องจะรันไฟล์ซ่อน &lt;code class=&quot;bg-rose-100 px-1 py-0.5 rounded text-rose-800&quot;&gt;autorun.inf&lt;/code&gt; โดยอัตโนมัติ ทำให้ไวรัสแอบรันตัวเองเข้าเครื่องทันที
                            &lt;/div&gt;
                            &lt;div class=&quot;bg-emerald-50/60 p-3 rounded-lg border border-emerald-100 text-emerald-900&quot;&gt;
                                &lt;span class=&quot;font-semibold text-emerald-700 block mb-1&quot;&gt;🛡️ ปัจจุบัน:&lt;/span&gt;
                                ตั้งแต่ Windows 7 เป็นต้นมา Microsoft ปิดการรันไฟล์อัตโนมัติจากอุปกรณ์ภายนอกถาวร ไวรัสจึงไม่สามารถแอบทำงานเองได้อีกต่อไป
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Card 2 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-start space-x-4&quot;&gt;
                    &lt;div class=&quot;flex-shrink-0 w-12 h-12 rounded-xl bg-blue-100 text-blue-600 flex items-center justify-center font-bold text-xl&quot;&gt;
                        🛡️
                    &lt;/div&gt;
                    &lt;div class=&quot;flex-1&quot;&gt;
                        &lt;h2 class=&quot;text-lg font-bold text-slate-900&quot;&gt;2. Antivirus บิวต์อินที่ฉลาดขึ้นมาก (Windows Security)&lt;/h2&gt;
                        &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-3 mt-3 text-xs sm:text-sm&quot;&gt;
                            &lt;div class=&quot;bg-slate-50 p-3 rounded-lg border border-slate-100 text-slate-600&quot;&gt;
                                &lt;span class=&quot;font-semibold text-slate-700 block mb-1&quot;&gt;📜 สมัยก่อน:&lt;/span&gt;
                                ต้องคอยหาลงโปรแกรมสแกนไวรัสเอง (เช่น NOD32, Kaspersky) หากไม่ได้อัปเดตฐานข้อมูลบ่อยๆ ก็ป้องกันอะไรไม่ได้เลย
                            &lt;/div&gt;
                            &lt;div class=&quot;bg-blue-50/60 p-3 rounded-lg border border-blue-100 text-blue-950&quot;&gt;
                                &lt;span class=&quot;font-semibold text-blue-700 block mb-1&quot;&gt;☁️ ปัจจุบัน:&lt;/span&gt;
                                Windows 10/11 มี **Windows Defender** ติดตั้งมาพร้อมเครื่อง ทำงานตลอดเวลา และอัปเดตผ่าน Cloud แบบ Real-time ตรวจจับไวรัสได้เกือบ 100%
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Card 3 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-start space-x-4&quot;&gt;
                    &lt;div class=&quot;flex-shrink-0 w-12 h-12 rounded-xl bg-indigo-100 text-indigo-600 flex items-center justify-center font-bold text-xl&quot;&gt;
                        🔒
                    &lt;/div&gt;
                    &lt;div class=&quot;flex-1&quot;&gt;
                        &lt;h2 class=&quot;text-lg font-bold text-slate-900&quot;&gt;3. ระบบความปลอดภัยของ OS เข้มงวดขึ้น&lt;/h2&gt;
                        &lt;p class=&quot;text-xs sm:text-sm text-slate-600 mt-1 mb-3&quot;&gt;เมื่อก่อนผู้ใช้เปิดเครื่องด้วยสิทธิ์ Administrator เต็มรูปแบบ ทำให้ไวรัสเข้าถึงไฟล์ระบบได้ง่าย&lt;/p&gt;
                        &lt;div class=&quot;grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm&quot;&gt;
                            &lt;div class=&quot;bg-slate-50 p-3 rounded-lg border border-slate-200/80&quot;&gt;
                                &lt;span class=&quot;font-semibold text-indigo-700 block mb-1&quot;&gt;🚨 UAC (User Account Control):&lt;/span&gt;
                                เวลาโปรแกรมแปลกปลอมจะแก้ไขระบบ หน้าจอจะเด้งเตือนขออนุญาตก่อนเสมอ
                            &lt;/div&gt;
                            &lt;div class=&quot;bg-slate-50 p-3 rounded-lg border border-slate-200/80&quot;&gt;
                                &lt;span class=&quot;font-semibold text-indigo-700 block mb-1&quot;&gt;🧠 SmartScreen Protection:&lt;/span&gt;
                                บล็อกไฟล์ที่ไม่รู้จักหรือไม่มี Digital Signature และป้องกันภัยในระดับหน่วยความจำ (RAM)
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Card 4 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-start space-x-4&quot;&gt;
                    &lt;div class=&quot;flex-shrink-0 w-12 h-12 rounded-xl bg-emerald-100 text-emerald-600 flex items-center justify-center font-bold text-xl&quot;&gt;
                        ☁️
                    &lt;/div&gt;
                    &lt;div class=&quot;flex-1&quot;&gt;
                        &lt;h2 class=&quot;text-lg font-bold text-slate-900&quot;&gt;4. พฤติกรรมการย้ายไฟล์เปลี่ยนไป (หมดยุค Flash Drive)&lt;/h2&gt;
                        &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-3 mt-3 text-xs sm:text-sm&quot;&gt;
                            &lt;div class=&quot;bg-slate-50 p-3 rounded-lg border border-slate-100 text-slate-600&quot;&gt;
                                &lt;span class=&quot;font-semibold text-slate-700 block mb-1&quot;&gt;💾 สมัยก่อน:&lt;/span&gt;
                                ย้ายไฟล์ผ่าน Flash Drive เสียบข้ามไปมาระหว่างโรงเรียน ร้านเน็ต ออฟฟิศ กลายเป็นพาหะแพร่เชื้อชั้นดี
                            &lt;/div&gt;
                            &lt;div class=&quot;bg-emerald-50/60 p-3 rounded-lg border border-emerald-100 text-emerald-900&quot;&gt;
                                &lt;span class=&quot;font-semibold text-emerald-700 block mb-1&quot;&gt;🌐 ปัจจุบัน:&lt;/span&gt;
                                ส่งไฟล์ผ่าน Cloud (Google Drive, LINE, Email) ซึ่งบริการเหล่านี้มีระบบสแกนไวรัสบน Server กรองให้ล่วงหน้าแล้ว
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Card 5 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-start space-x-4&quot;&gt;
                    &lt;div class=&quot;flex-shrink-0 w-12 h-12 rounded-xl bg-purple-100 text-purple-600 flex items-center justify-center font-bold text-xl&quot;&gt;
                        🎯
                    &lt;/div&gt;
                    &lt;div class=&quot;flex-1&quot;&gt;
                        &lt;h2 class=&quot;text-lg font-bold text-slate-900&quot;&gt;5. เป้าหมายของแฮกเกอร์เปลี่ยนไป&lt;/h2&gt;
                        &lt;p class=&quot;text-xs sm:text-sm text-slate-600 mt-1&quot;&gt;แฮกเกอร์ไม่ได้เขียนไวรัสมาลบไฟล์หรือทำลาย Windows เล่นๆ เหมือนสมัยก่อนแล้ว แต่มุ่งเน้นไปที่ **&quot;เงิน&quot;** และ **&quot;ข้อมูลส่วนตัว&quot;**&lt;/p&gt;
                        &lt;div class=&quot;mt-3 bg-purple-50 p-3.5 rounded-lg border border-purple-100 text-xs sm:text-sm text-purple-900 space-y-1&quot;&gt;
                            &lt;div class=&quot;font-medium&quot;&gt;• **Ransomware (มัลแวร์เรียกค่าไถ่):** ล็อกไฟล์เพื่อขู่เอาเงิน&lt;/div&gt;
                            &lt;div class=&quot;font-medium&quot;&gt;• **Phishing &amp; Scam:** ส่งลิงก์หลอกเอา password, ข้อมูลบัตรเครดิต หรือให้หลอกติดตั้งแอปเถื่อน&lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/div&gt;

        &lt;!-- Summary Banner --&gt;
        &lt;div class=&quot;bg-slate-900 text-slate-200 p-6 border-t border-slate-800&quot;&gt;
            &lt;div class=&quot;flex items-start space-x-3&quot;&gt;
                &lt;span class=&quot;text-amber-400 text-2xl flex-shrink-0&quot;&gt;💡&lt;/span&gt;
                &lt;div class=&quot;text-xs sm:text-sm space-y-1&quot;&gt;
                    &lt;p class=&quot;font-bold text-white text-base&quot;&gt;สรุปภาพรวม&lt;/p&gt;
                    &lt;p class=&quot;text-slate-300&quot;&gt;
                        คอมพิวเตอร์ยุคนี้ปลอดภัยขึ้นมากด้วยระบบปฏิบัติการและระบบ Cloud แต่ความเสี่ยงหลักได้เปลี่ยนจาก &lt;strong class=&quot;text-amber-300&quot;&gt;&quot;ภัยทางฮาร์ดแวร์ / ไฟล์ซ่อนใน Flash Drive&quot;&lt;/strong&gt; ไปเป็น &lt;strong class=&quot;text-amber-300&quot;&gt;&quot;ภัยทางพฤติกรรมผู้ใช้&quot;&lt;/strong&gt; เช่น การหลงเชื่อลิงก์ปลอม หรือการดาวน์โหลดซอฟต์แวร์ละเมิดลิขสิทธิ์มาลงด้วยตนเอง
                    &lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

    &lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/5925214205699029036/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/5925214205699029036' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5925214205699029036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5925214205699029036'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/blog-post_752.html' title='ทำไมคอมปัจจุบันถึงไม่ค่อยติดไวรัสเหมือนเมื่อก่อน?'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-2589433179461546378</id><published>2026-10-21T14:18:49.041+07:00</published><updated>2026-10-21T14:18:49.041+07:00</updated><title type='text'>PSU อาจจ่ายไฟไม่พอ? วิธีเช็กอย่างปลอดภัย</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;PSU อาจจ่ายไฟไม่พอ? วิธีเช็กอย่างปลอดภัย&lt;/title&gt;
    &lt;!-- Tailwind CSS CDN --&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;!-- Google Font: Prompt --&gt;
    &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Prompt&#39;, sans-serif;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-slate-50 text-slate-800 antialiased leading-relaxed py-10 px-4 sm:px-6 lg:px-8&quot;&gt;

    &lt;div class=&quot;max-w-4xl mx-auto bg-white rounded-2xl shadow-xl overflow-hidden border border-slate-100&quot;&gt;
        
        &lt;!-- Header Section --&gt;
        &lt;div class=&quot;bg-gradient-to-r from-amber-600 via-orange-600 to-red-600 px-6 py-8 text-white&quot;&gt;
            &lt;div class=&quot;flex items-center space-x-2 mb-3&quot;&gt;
                &lt;span class=&quot;bg-black/20 text-orange-100 text-xs font-semibold px-3 py-1 rounded-full uppercase tracking-wider border border-white/20&quot;&gt;Power Supply Diagnostics&lt;/span&gt;
            &lt;/div&gt;
            &lt;h1 class=&quot;text-2xl sm:text-3xl font-bold tracking-tight&quot;&gt;PSU อาจจ่ายไฟไม่พอ... เช็กอย่างไรให้ปลอดภัย?&lt;/h1&gt;
            &lt;p class=&quot;text-orange-100 mt-2 text-sm sm:text-base&quot;&gt;การวัดกำลังไฟทำได้ยากถ้าไม่มีอุปกรณ์เฉพาะทาง และมีความเสี่ยงที่จะเกิดความเสียหายต่ออุปกรณ์หรืออันตรายต่อชีวิต&lt;/p&gt;
        &lt;/div&gt;

        &lt;!-- Warning Box: Danger Zone --&gt;
        &lt;div class=&quot;m-6 bg-rose-50 border-2 border-rose-200 rounded-xl p-5 text-rose-900&quot;&gt;
            &lt;div class=&quot;flex items-center space-x-2 mb-3&quot;&gt;
                &lt;svg class=&quot;w-6 h-6 text-rose-600 flex-shrink-0&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; viewBox=&quot;0 0 24 24&quot;&gt;
                    &lt;path stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; d=&quot;M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z&quot;/&gt;
                &lt;/svg&gt;
                &lt;h2 class=&quot;font-bold text-base sm:text-lg text-rose-700&quot;&gt;🚫 วิธีที่ไม่แนะนำให้ทำเอง (อันตรายร้ายแรง!)&lt;/h2&gt;
            &lt;/div&gt;
            &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-4 mt-2&quot;&gt;
                &lt;div class=&quot;bg-white/80 p-3.5 rounded-lg border border-rose-100&quot;&gt;
                    &lt;h3 class=&quot;font-semibold text-rose-800 text-sm mb-1&quot;&gt;วัดแรงดันไฟฟ้าโดยตรงจาก PSU&lt;/h3&gt;
                    &lt;p class=&quot;text-xs text-rose-900/80&quot;&gt;PSU มีแรงดันไฟฟ้าสูงมาก การวัดโดยตรงโดยไม่มีความรู้เพียงพอ &lt;span class=&quot;font-bold text-rose-700&quot;&gt;เป็นอันตรายถึงชีวิต!&lt;/span&gt;&lt;/p&gt;
                &lt;/div&gt;
                &lt;div class=&quot;bg-white/80 p-3.5 rounded-lg border border-rose-100&quot;&gt;
                    &lt;h3 class=&quot;font-semibold text-rose-800 text-sm mb-1&quot;&gt;การใช้ Multimeter วัดเอง&lt;/h3&gt;
                    &lt;p class=&quot;text-xs text-rose-900/80&quot;&gt;แม้จะวัดได้ แต่ PSU มีระบบป้องกัน ทำให้ค่าไม่อยู่ในระดับปกติขณะไม่มีโหลด และอาจทำให้อุปกรณ์ชำรุดเสียหายได้&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- Safe Methods Header --&gt;
        &lt;div class=&quot;px-6 pt-2 pb-2&quot;&gt;
            &lt;h2 class=&quot;text-lg font-bold text-slate-800 flex items-center&quot;&gt;
                &lt;span class=&quot;w-3 h-3 rounded-full bg-emerald-500 mr-2&quot;&gt;&lt;/span&gt;
                วิธีที่ปลอดภัยและแนะนำให้ทำแทน
            &lt;/h2&gt;
        &lt;/div&gt;

        &lt;!-- Content Steps --&gt;
        &lt;div class=&quot;px-6 pb-8 space-y-6&quot;&gt;

            &lt;!-- Step 1 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4 pb-3 border-b border-slate-100&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-emerald-600 text-white font-bold text-lg&quot;&gt;1&lt;/div&gt;
                    &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-slate-900&quot;&gt;สังเกตอาการเบื้องต้น&lt;/h3&gt;
                &lt;/div&gt;

                &lt;div class=&quot;grid grid-cols-1 md:grid-cols-3 gap-3&quot;&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-slate-800 text-sm mb-1 text-emerald-700&quot;&gt;🔄 รีสตาร์ทเองบ่อยๆ&lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;เป็นโดยเฉพาะเวลาใช้งานหนักๆ เช่น เล่นเกมกราฟิกสูง หรือเปิดโปรแกรมหนักพร้อมกันหลายตัว&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-slate-800 text-sm mb-1 text-emerald-700&quot;&gt;🔊 มีเสียงผิดปกติ&lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;ได้ยินเสียงคลิ๊ก เสียงจี่ๆ จากภายในตัว PSU หรือพัดลมหมุนดังผิดปกติ&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-slate-800 text-sm mb-1 text-emerald-700&quot;&gt;⚡ เปิดติดบ้างไม่ติดบ้าง&lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;คอมพิวเตอร์เปิดไม่ติดเลย หรือติดเป็นบางครั้ง โดยเฉพาะเมื่อมีการ์ดจอแยกหรืออุปกรณ์กินไฟเยอะ&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step 2 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4 pb-3 border-b border-slate-100&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-blue-600 text-white font-bold text-lg&quot;&gt;2&lt;/div&gt;
                    &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-slate-900&quot;&gt;ตรวจสอบ Wattage (กำลังไฟ) ของ PSU&lt;/h3&gt;
                &lt;/div&gt;

                &lt;div class=&quot;space-y-4&quot;&gt;
                    &lt;div class=&quot;flex items-start bg-slate-50 p-3.5 rounded-lg border border-slate-100&quot;&gt;
                        &lt;span class=&quot;text-blue-600 font-bold mr-3&quot;&gt;2.1&lt;/span&gt;
                        &lt;div class=&quot;text-xs sm:text-sm text-slate-700&quot;&gt;
                            &lt;strong&gt;ดูสติกเกอร์ข้าง PSU:&lt;/strong&gt; ตรวจดูฉลากที่ติดอยู่บนตัว PSU เพื่อดูกำลังไฟสูงสุด เช่น 300W, 500W, 750W
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;bg-blue-50/50 p-4 rounded-lg border border-blue-100&quot;&gt;
                        &lt;div class=&quot;flex items-start space-x-2 mb-2&quot;&gt;
                            &lt;span class=&quot;text-blue-600 font-bold&quot;&gt;2.2&lt;/span&gt;
                            &lt;h4 class=&quot;font-semibold text-blue-900 text-sm&quot;&gt;ใช้เว็บไซต์คำนวณกำลังไฟที่เหมาะสม&lt;/h4&gt;
                        &lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600 mb-3 pl-6&quot;&gt;สามารถกรอกสเปคคอมพิวเตอร์ เช่น CPU, การ์ดจอ, RAM, ฮาร์ดดิสก์ เพื่อคำนวณวัตต์ที่ต้องการจริงได้&lt;/p&gt;
                        &lt;div class=&quot;pl-6&quot;&gt;
                            &lt;a href=&quot;https://outervision.com/power-supply-calculator&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; class=&quot;inline-flex items-center px-3 py-1.5 bg-blue-600 hover:bg-blue-700 text-white text-xs font-medium rounded-md transition-colors shadow-sm&quot;&gt;
                                🌐 ลองใช้ OuterVision Power Supply Calculator
                                &lt;svg class=&quot;w-3.5 h-3.5 ml-1.5&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; d=&quot;M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14&quot;&gt;&lt;/path&gt;&lt;/svg&gt;
                            &lt;/a&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;p class=&quot;text-xs text-amber-700 font-medium pl-1&quot;&gt;
                        💡 &lt;strong&gt;สรุป:&lt;/strong&gt; ถ้ากำลังไฟของ PSU ต่ำกว่าค่าที่คำนวณได้ แสดงว่า PSU มีโอกาสสูงที่จะจ่ายไฟไม่พอ
                    &lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step 3 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4 pb-3 border-b border-slate-100&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-indigo-600 text-white font-bold text-lg&quot;&gt;3&lt;/div&gt;
                    &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-slate-900&quot;&gt;ทดสอบด้วย PSU ตัวอื่น (วิธีที่ชัดเจนที่สุด)&lt;/h3&gt;
                &lt;/div&gt;

                &lt;div class=&quot;bg-indigo-50/40 p-4 rounded-lg border border-indigo-100 space-y-2&quot;&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-slate-700&quot;&gt;
                        เป็นวิธีพิสูจน์ที่ชัวร์และปลอดภัยที่สุด โดยการยืม PSU ที่จ่ายไฟได้พอจากเครื่องอื่น หรือขอความช่วยเหลือจากร้านซ่อมคอมพิวเตอร์เพื่อสลับเปลี่ยนทดสอบ
                    &lt;/p&gt;
                    &lt;div class=&quot;bg-white p-3 rounded border border-indigo-100 font-medium text-xs text-indigo-900&quot;&gt;
                        ✅ ผลลัพธ์: หากสลับเปลี่ยน PSU ตัวใหม่แล้ว เครื่องทำงานได้ตามปกติ ไม่มีอาการดับหรือรีสตาร์ท แสดงว่า PSU ตัวเก่ามีปัญหาจริง
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/div&gt;

        &lt;!-- Footer / Safety Note --&gt;
        &lt;div class=&quot;bg-slate-900 text-slate-300 p-6 border-t border-slate-800&quot;&gt;
            &lt;div class=&quot;flex items-center justify-between flex-col sm:flex-row text-xs gap-3&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-2&quot;&gt;
                    &lt;span class=&quot;text-amber-400 font-bold&quot;&gt;ข้อควรจำ:&lt;/span&gt;
                    &lt;span&gt;PSU เป็นอุปกรณ์อิเล็กทรอนิกส์ที่มีแรงดันไฟสูง ซ่อมยาก และมีความเสี่ยง หากไม่แน่ใจควรปรึกษาช่างผู้เชี่ยวชาญ&lt;/span&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

    &lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/2589433179461546378/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/2589433179461546378' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/2589433179461546378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/2589433179461546378'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/psu_01971950166.html' title='PSU อาจจ่ายไฟไม่พอ? วิธีเช็กอย่างปลอดภัย'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-7100516654264666712</id><published>2026-10-21T14:15:50.247+07:00</published><updated>2026-10-21T14:15:50.247+07:00</updated><title type='text'>คู่มือการทดสอบเมนบอร์ดอย่างเป็นขั้นตอน</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;คู่มือการทดสอบเมนบอร์ดอย่างเป็นขั้นตอน&lt;/title&gt;
    &lt;!-- Tailwind CSS CDN --&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;!-- Google Font: Prompt --&gt;
    &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Prompt&#39;, sans-serif;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-slate-50 text-slate-800 antialiased leading-relaxed py-10 px-4 sm:px-6 lg:px-8&quot;&gt;

    &lt;div class=&quot;max-w-4xl mx-auto bg-white rounded-2xl shadow-xl overflow-hidden border border-slate-100&quot;&gt;
        
        &lt;!-- Header Section --&gt;
        &lt;div class=&quot;bg-gradient-to-r from-slate-800 via-indigo-900 to-slate-900 px-6 py-8 text-white&quot;&gt;
            &lt;div class=&quot;flex items-center space-x-2 mb-3&quot;&gt;
                &lt;span class=&quot;bg-indigo-500/30 text-indigo-200 text-xs font-semibold px-3 py-1 rounded-full uppercase tracking-wider border border-indigo-400/20&quot;&gt;Hardware Diagnostics&lt;/span&gt;
            &lt;/div&gt;
            &lt;h1 class=&quot;text-2xl sm:text-3xl font-bold tracking-tight&quot;&gt;ขั้นตอนการทดสอบเมนบอร์ดว่าเสียหรือไม่&lt;/h1&gt;
            &lt;p class=&quot;text-slate-300 mt-2 text-sm sm:text-base&quot;&gt;เนื่องจากเมนบอร์ดเป็นศูนย์กลางการเชื่อมต่อ การวินิจฉัยที่แม่นยำจึงต้องใช้วิธีแยกสาเหตุอย่างเป็นขั้นตอน&lt;/p&gt;
        &lt;/div&gt;

        &lt;!-- Main Content --&gt;
        &lt;div class=&quot;px-6 py-8 space-y-8&quot;&gt;

            &lt;!-- Step 1 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4 pb-3 border-b border-slate-100&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-indigo-600 text-white font-bold text-lg&quot;&gt;1&lt;/div&gt;
                    &lt;div&gt;
                        &lt;h2 class=&quot;text-lg sm:text-xl font-semibold text-slate-900&quot;&gt;ตัดสาเหตุจากส่วนอื่นก่อน&lt;/h2&gt;
                        &lt;p class=&quot;text-xs text-rose-500 font-medium&quot;&gt;⚠️ ขั้นตอนนี้สำคัญมากที่สุด!&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-4&quot;&gt;
                    &lt;!-- Item 1.1 --&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-indigo-700 text-sm mb-1 flex items-center&quot;&gt;
                            &lt;span class=&quot;w-2 h-2 rounded-full bg-indigo-500 mr-2&quot;&gt;&lt;/span&gt;PSU (Power Supply)
                        &lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;ทดสอบว่าจ่ายไฟปกติหรือไม่ โดยใช้ PSU ตัวอื่นลอง หรือทำ Paper Clip Test &lt;span class=&quot;text-amber-600 font-medium&quot;&gt;(ระวังอันตรายจากไฟฟ้า!)&lt;/span&gt;&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;!-- Item 1.2 --&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-indigo-700 text-sm mb-1 flex items-center&quot;&gt;
                            &lt;span class=&quot;w-2 h-2 rounded-full bg-indigo-500 mr-2&quot;&gt;&lt;/span&gt;CPU
                        &lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;เช็กว่า CPU ติดตั้งแน่นหนาดีไหม คราบความร้อน/ซิลิโคนแห้งหรือไม่ (หากถอดประกอบเป็น)&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;!-- Item 1.3 --&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-indigo-700 text-sm mb-1 flex items-center&quot;&gt;
                            &lt;span class=&quot;w-2 h-2 rounded-full bg-indigo-500 mr-2&quot;&gt;&lt;/span&gt;RAM
                        &lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;ถอด RAM ออก เช็ดทำความสะอาดขั้วทองแดงด้วยยางลบ ลองใส่ทีละตัวและสลับช่องเสียบ&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;!-- Item 1.4 --&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-indigo-700 text-sm mb-1 flex items-center&quot;&gt;
                            &lt;span class=&quot;w-2 h-2 rounded-full bg-indigo-500 mr-2&quot;&gt;&lt;/span&gt;การ์ดจอ (VGA)
                        &lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;ถอดการ์ดจอแยกออก (ถ้ามี) แล้วลองเปลี่ยนมาใช้ Onboard Display ดูก่อน&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;!-- Item 1.5 --&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-indigo-700 text-sm mb-1 flex items-center&quot;&gt;
                            &lt;span class=&quot;w-2 h-2 rounded-full bg-indigo-500 mr-2&quot;&gt;&lt;/span&gt;อุปกรณ์ต่อพ่วง
                        &lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;ถอดสายสัญญาณและสายไฟของ HDD, SSD, DVD และอุปกรณ์ USB ภายนอกออกทั้งหมด&lt;/p&gt;
                    &lt;/div&gt;

                    &lt;!-- Item 1.6 --&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;div class=&quot;font-semibold text-indigo-700 text-sm mb-1 flex items-center&quot;&gt;
                            &lt;span class=&quot;w-2 h-2 rounded-full bg-indigo-500 mr-2&quot;&gt;&lt;/span&gt;CMOS Reset
                        &lt;/div&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;ถอดถ่าน BIOS ออกรอสักพักแล้วใส่กลับ หรือใช้ Jumper ล้างค่า BIOS เพื่อคืนค่าโรงงาน&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step 2 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4 pb-3 border-b border-slate-100&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-blue-600 text-white font-bold text-lg&quot;&gt;2&lt;/div&gt;
                    &lt;h2 class=&quot;text-lg sm:text-xl font-semibold text-slate-900&quot;&gt;สังเกตอาการหลังตัดปัจจัยอื่น&lt;/h2&gt;
                &lt;/div&gt;

                &lt;div class=&quot;space-y-3&quot;&gt;
                    &lt;div class=&quot;flex items-start bg-blue-50/50 p-3.5 rounded-lg border border-blue-100&quot;&gt;
                        &lt;span class=&quot;text-blue-600 font-bold mr-2.5&quot;&gt;•&lt;/span&gt;
                        &lt;p class=&quot;text-sm text-slate-700&quot;&gt;หากลองเปลี่ยนทั้ง PSU, RAM และ CPU แล้วยังไม่หาย &lt;span class=&quot;font-semibold text-rose-600&quot;&gt;โอกาสที่เมนบอร์ดจะเสียมีสูงมาก&lt;/span&gt;&lt;/p&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;flex items-start bg-blue-50/50 p-3.5 rounded-lg border border-blue-100&quot;&gt;
                        &lt;span class=&quot;text-blue-600 font-bold mr-2.5&quot;&gt;•&lt;/span&gt;
                        &lt;p class=&quot;text-sm text-slate-700&quot;&gt;แต่ถ้าเปิดติด แต่มีอาการแปลกๆ เช่น บูทไม่ผ่าน ค้าง หรือรีสตาร์ทเอง อาจเกิดจากเมนบอร์ดชำรุดบางส่วน หรือ BIOS มีปัญหา&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step 3 --&gt;
            &lt;div class=&quot;border border-amber-200 bg-amber-50/30 rounded-xl p-5 sm:p-6 shadow-sm&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4 pb-3 border-b border-amber-200/60&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-amber-500 text-white font-bold text-lg&quot;&gt;3&lt;/div&gt;
                    &lt;div&gt;
                        &lt;h2 class=&quot;text-lg sm:text-xl font-semibold text-slate-900&quot;&gt;การทดสอบเมนบอร์ดโดยตรง&lt;/h2&gt;
                        &lt;p class=&quot;text-xs text-amber-700 font-medium&quot;&gt;⚠️ ไม่แนะนำให้ทำเอง หากไม่มีความรู้เรื่องวงจรอิเล็กทรอนิกส์&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;div class=&quot;grid grid-cols-1 md:grid-cols-3 gap-4&quot;&gt;
                    &lt;div class=&quot;bg-white p-4 rounded-lg border border-amber-100 shadow-sm&quot;&gt;
                        &lt;h3 class=&quot;font-semibold text-amber-800 text-sm mb-1&quot;&gt;Post Card&lt;/h3&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;อุปกรณ์เสียบช่อง PCI แสดงรหัส Error Code เพื่อบอกจุดที่มีปัญหา (ต้องมีความรู้ในการอ่านโค้ด)&lt;/p&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;bg-white p-4 rounded-lg border border-amber-100 shadow-sm&quot;&gt;
                        &lt;h3 class=&quot;font-semibold text-amber-800 text-sm mb-1&quot;&gt;Multimeter&lt;/h3&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;มิเตอร์วัดแรงดันไฟฟ้าตามจุดจ่ายไฟต่างๆ บนบอร์ด (มีความเสี่ยง ต้องเข้าใจเรื่องวงจรไฟฟ้า)&lt;/p&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;bg-white p-4 rounded-lg border border-amber-100 shadow-sm&quot;&gt;
                        &lt;h3 class=&quot;font-semibold text-amber-800 text-sm mb-1&quot;&gt;CPU Socket Check&lt;/h3&gt;
                        &lt;p class=&quot;text-xs text-slate-600&quot;&gt;ตรวจเช็กพินขา CPU Socket ว่าล้มหักหรือไม่ (ซ่อมยาก มักจะต้องเปลี่ยนบอร์ดใหม่)&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step 4 --&gt;
            &lt;div class=&quot;border border-emerald-200 bg-emerald-50/30 rounded-xl p-5 sm:p-6 shadow-sm&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4 pb-3 border-b border-emerald-200/60&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-emerald-600 text-white font-bold text-lg&quot;&gt;4&lt;/div&gt;
                    &lt;h2 class=&quot;text-lg sm:text-xl font-semibold text-slate-900&quot;&gt;ส่งร้านซ่อม: ทางเลือกที่ดีที่สุด&lt;/h2&gt;
                &lt;/div&gt;

                &lt;div class=&quot;bg-white p-4 rounded-lg border border-emerald-100 shadow-sm space-y-2&quot;&gt;
                    &lt;p class=&quot;text-sm text-slate-700&quot;&gt;การวินิจฉัยปัญหาเมนบอร์ดต้องอาศัยความรู้ ประสบการณ์ และเครื่องมือเฉพาะทาง ช่างซ่อมจะมีความชำนาญในการตรวจเช็กระดับชิปได้ละเอียดกว่า&lt;/p&gt;
                    &lt;div class=&quot;bg-emerald-50 text-emerald-800 text-xs p-3 rounded-md font-medium&quot;&gt;
                        💡 &lt;strong&gt;ข้อแนะนำ:&lt;/strong&gt; ควรแจ้งอาการอย่างละเอียด และบอกสิ่งที่ได้ทดสอบไปแล้วให้ช่างทราบ เพื่อให้ประเมินราคาและแก้ไขได้รวดเร็วยิ่งขึ้น
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/div&gt;

        &lt;!-- Warning Footer --&gt;
        &lt;div class=&quot;bg-slate-900 text-slate-300 p-6 border-t border-slate-800&quot;&gt;
            &lt;div class=&quot;flex items-start space-x-3&quot;&gt;
                &lt;svg class=&quot;w-6 h-6 text-amber-400 flex-shrink-0 mt-0.5&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; viewBox=&quot;0 0 24 24&quot;&gt;
                    &lt;path stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; d=&quot;M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z&quot;/&gt;
                &lt;/svg&gt;
                &lt;div class=&quot;text-xs space-y-1&quot;&gt;
                    &lt;p class=&quot;font-semibold text-white text-sm&quot;&gt;ข้อควรจำ&lt;/p&gt;
                    &lt;p&gt;• การซ่อมเมนบอร์ดเองมีความเสี่ยงสูงต่ออุปกรณ์ชิ้นอื่น หากไม่มั่นใจควรส่งศูนย์บริการหรือช่างผู้เชี่ยวชาญ&lt;/p&gt;
                    &lt;p&gt;• ในบางกรณี ค่าซ่อมเมนบอร์ดอาจสูงจนไม่คุ้มค่าเมื่อเทียบกับการซื้อเมนบอร์ดรุ่นใหม่&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

    &lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/7100516654264666712/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/7100516654264666712' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/7100516654264666712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/7100516654264666712'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/blog-post_21.html' title='คู่มือการทดสอบเมนบอร์ดอย่างเป็นขั้นตอน'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-3199216214449755487</id><published>2026-10-21T14:10:51.242+07:00</published><updated>2026-10-21T14:10:51.242+07:00</updated><title type='text'>ขั้นตอนการตรวจเช็ก PSU อย่างละเอียด</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;ขั้นตอนการตรวจเช็ก PSU อย่างละเอียดและปลอดภัย&lt;/title&gt;
    &lt;!-- Tailwind CSS CDN --&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Prompt&#39;, sans-serif;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-slate-50 text-slate-800 antialiased leading-relaxed py-10 px-4 sm:px-6 lg:px-8&quot;&gt;

    &lt;div class=&quot;max-w-4xl mx-auto bg-white rounded-2xl shadow-xl overflow-hidden border border-slate-100&quot;&gt;
        
        &lt;!-- Header Section --&gt;
        &lt;div class=&quot;bg-gradient-to-r from-blue-600 to-indigo-700 px-6 py-8 text-white&quot;&gt;
            &lt;div class=&quot;flex items-center space-x-3 mb-2&quot;&gt;
                &lt;span class=&quot;bg-blue-500/30 text-blue-100 text-xs font-semibold px-3 py-1 rounded-full uppercase tracking-wider&quot;&gt;คู่มือการซ่อมบำรุงเบื้องต้น&lt;/span&gt;
            &lt;/div&gt;
            &lt;h1 class=&quot;text-2xl sm:text-3xl font-bold tracking-tight&quot;&gt;ขั้นตอนการตรวจเช็ก PSU อย่างละเอียดและปลอดภัย&lt;/h1&gt;
            &lt;p class=&quot;text-blue-100 mt-2 text-sm sm:text-base&quot;&gt;เน้นการสังเกตอาการ และวิธีที่ไม่เสี่ยงอันตรายก่อน เพื่อความปลอดภัยสูงสุดของคุณและอุปกรณ์&lt;/p&gt;
        &lt;/div&gt;

        &lt;!-- Safety Warning Banner --&gt;
        &lt;div class=&quot;bg-amber-50 border-l-4 border-amber-500 p-4 m-6 rounded-r-lg&quot;&gt;
            &lt;div class=&quot;flex items-start&quot;&gt;
                &lt;div class=&quot;flex-shrink-0&quot;&gt;
                    &lt;svg class=&quot;h-5 w-5 text-amber-500 mt-0.5&quot; viewBox=&quot;0 0 20 20&quot; fill=&quot;currentColor&quot;&gt;
                        &lt;path fill-rule=&quot;evenodd&quot; d=&quot;M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z&quot; clip-rule=&quot;evenodd&quot;/&gt;
                    &lt;/svg&gt;
                &lt;/div&gt;
                &lt;div class=&quot;ml-3&quot;&gt;
                    &lt;h3 class=&quot;text-sm font-medium text-amber-800&quot;&gt;คำเตือนด้านความปลอดภัย&lt;/h3&gt;
                    &lt;p class=&quot;text-sm text-amber-700 mt-1&quot;&gt;PSU มีแรงดันไฟฟ้าสูง เป็นอันตรายถึงชีวิต! หากไม่มั่นใจ ห้ามซ่อมแซมเองเด็ดขาด ควรให้ผู้เชี่ยวชาญดูแล&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;!-- Main Content Steps --&gt;
        &lt;div class=&quot;px-6 pb-8 space-y-8&quot;&gt;

            &lt;!-- Step 1 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-blue-100 text-blue-600 font-bold text-lg&quot;&gt;1&lt;/div&gt;
                    &lt;h2 class=&quot;text-lg sm:text-xl font-semibold text-slate-900&quot;&gt;วิเคราะห์อาการเบื้องต้น &lt;span class=&quot;text-sm font-normal text-slate-500&quot;&gt;(ก่อนเปิดเคส)&lt;/span&gt;&lt;/h2&gt;
                &lt;/div&gt;
                
                &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-4 mt-4&quot;&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;h3 class=&quot;font-medium text-blue-600 mb-2 flex items-center&quot;&gt;
                            &lt;svg class=&quot;w-4 h-4 mr-2&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; d=&quot;M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;
                            1.1 สังเกตอาการที่พบ
                        &lt;/h3&gt;
                        &lt;ul class=&quot;space-y-2 text-sm text-slate-600&quot;&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-blue-500 mr-2&quot;&gt;•&lt;/span&gt;คอมเปิดไม่ติดเลย ไฟไม่เข้า&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-blue-500 mr-2&quot;&gt;•&lt;/span&gt;เปิดติดบ้าง ไม่ติดบ้าง&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-blue-500 mr-2&quot;&gt;•&lt;/span&gt;มีเสียงผิดปกติจาก PSU (คลิก, จี่, พัดลมดัง)&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-blue-500 mr-2&quot;&gt;•&lt;/span&gt;เครื่องรีสตาร์ทเองบ่อยๆ เวลาใช้งานหนักๆ&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-blue-500 mr-2&quot;&gt;•&lt;/span&gt;จอมืด แต่พัดลมยังหมุน&lt;/li&gt;
                        &lt;/ul&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;h3 class=&quot;font-medium text-blue-600 mb-2 flex items-center&quot;&gt;
                            &lt;svg class=&quot;w-4 h-4 mr-2&quot; fill=&quot;none&quot; stroke=&quot;currentColor&quot; viewBox=&quot;0 0 24 24&quot;&gt;&lt;path stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; stroke-width=&quot;2&quot; d=&quot;M13 10V3L4 14h7v7l9-11h-7z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;
                            1.2 เช็คอุปกรณ์ภายนอก
                        &lt;/h3&gt;
                        &lt;ul class=&quot;space-y-2 text-sm text-slate-600&quot;&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-blue-500 mr-2&quot;&gt;•&lt;/span&gt;สายไฟ AC เสียบแน่นหนา ลองเปลี่ยนปลั๊กไฟ&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-blue-500 mr-2&quot;&gt;•&lt;/span&gt;สวิตช์เปิด-ปิด ด้านหลังเคส และปุ่ม Power กดติดไหม&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-blue-500 mr-2&quot;&gt;•&lt;/span&gt;ลองถอดปลั๊กอุปกรณ์ต่อพ่วงออกทั้งหมด เช่น USB, Printer&lt;/li&gt;
                        &lt;/ul&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step 2 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-indigo-100 text-indigo-600 font-bold text-lg&quot;&gt;2&lt;/div&gt;
                    &lt;h2 class=&quot;text-lg sm:text-xl font-semibold text-slate-900&quot;&gt;ตรวจสอบภายในเบื้องต้น &lt;span class=&quot;text-rose-600 text-sm font-semibold block sm:inline mt-1 sm:mt-0&quot;&gt;(⚠️ ปล่อยไฟฟ้าสถิตก่อนเปิดเคส!)&lt;/span&gt;&lt;/h2&gt;
                &lt;/div&gt;

                &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-4 mt-4&quot;&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;h3 class=&quot;font-medium text-indigo-600 mb-2&quot;&gt;2.1 ตรวจสายไฟ&lt;/h3&gt;
                        &lt;ul class=&quot;space-y-2 text-sm text-slate-600&quot;&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-indigo-500 mr-2&quot;&gt;•&lt;/span&gt;สายไฟเลี้ยงเมนบอร์ด 24 พิน เสียบแน่นหนา&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-indigo-500 mr-2&quot;&gt;•&lt;/span&gt;สายไฟเลี้ยง CPU 4/8 พิน เสียบแน่นหนา&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-indigo-500 mr-2&quot;&gt;•&lt;/span&gt;สายไฟเลี้ยงอุปกรณ์อื่นๆ เช่น HDD, SSD, Optical Drive&lt;/li&gt;
                        &lt;/ul&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;h3 class=&quot;font-medium text-indigo-600 mb-2&quot;&gt;2.2 มองหาสิ่งผิดปกติ&lt;/h3&gt;
                        &lt;ul class=&quot;space-y-2 text-sm text-slate-600&quot;&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-indigo-500 mr-2&quot;&gt;•&lt;/span&gt;ตัวเก็บประจุ (Capacitor) บน PSU หรือ เมนบอร์ด มีบวม รั่ว ไหม&lt;/li&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-indigo-500 mr-2&quot;&gt;•&lt;/span&gt;กลิ่นไหม้ หรือ รอยไหม้ บน PSU หรือ เมนบอร์ด&lt;/li&gt;
                        &lt;/ul&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step 3 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-purple-100 text-purple-600 font-bold text-lg&quot;&gt;3&lt;/div&gt;
                    &lt;h2 class=&quot;text-lg sm:text-xl font-semibold text-slate-900&quot;&gt;ทดสอบ PSU &lt;span class=&quot;text-sm font-normal text-slate-500&quot;&gt;(ถ้าเป็นไปได้ และมั่นใจในการถอดประกอบ)&lt;/span&gt;&lt;/h2&gt;
                &lt;/div&gt;

                &lt;div class=&quot;space-y-4 mt-4&quot;&gt;
                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;h3 class=&quot;font-medium text-purple-600 mb-1&quot;&gt;3.1 Paper Clip Test&lt;/h3&gt;
                        &lt;p class=&quot;text-sm text-slate-600 mb-2&quot;&gt;เป็นการทดสอบเบื้องต้นว่า PSU จ่ายไฟออกมาหรือไม่ &lt;span class=&quot;text-slate-400 text-xs&quot;&gt;(ไม่สามารถทดสอบกำลังไฟได้)&lt;/span&gt;&lt;/p&gt;
                        &lt;ul class=&quot;space-y-1 text-sm text-slate-600 mb-3&quot;&gt;
                            &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-purple-500 mr-2&quot;&gt;•&lt;/span&gt;ค้นหาวิธีทำ &quot;Paper Clip Test&quot; ในอินเทอร์เน็ต&lt;/li&gt;
                        &lt;/ul&gt;
                        &lt;div class=&quot;bg-rose-50 text-rose-700 text-xs px-3 py-2 rounded border border-rose-100 font-medium&quot;&gt;
                            ⚠️ ข้อควรระวัง: วิธีนี้มีความเสี่ยง ถ้าไม่มั่นใจ ไม่ควรทำ!
                        &lt;/div&gt;
                    &lt;/div&gt;

                    &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100&quot;&gt;
                        &lt;h3 class=&quot;font-medium text-purple-600 mb-1&quot;&gt;3.2 เปลี่ยน PSU ตัวใหม่&lt;/h3&gt;
                        &lt;p class=&quot;text-sm text-slate-600&quot;&gt;เป็นวิธีที่ง่าย และปลอดภัยที่สุด &lt;span class=&quot;text-slate-400 text-xs&quot;&gt;(ถ้ามี PSU สำรอง)&lt;/span&gt;&lt;/p&gt;
                        &lt;p class=&quot;text-sm text-slate-700 font-medium mt-1&quot;&gt;💡 ถ้าเปลี่ยนแล้วอาการหาย แสดงว่า PSU ตัวเก่ามีปัญหา&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Step 4 --&gt;
            &lt;div class=&quot;border border-slate-200 rounded-xl p-5 sm:p-6 bg-white shadow-sm hover:shadow-md transition-shadow&quot;&gt;
                &lt;div class=&quot;flex items-center space-x-3 mb-4&quot;&gt;
                    &lt;div class=&quot;flex items-center justify-center w-10 h-10 rounded-lg bg-emerald-100 text-emerald-600 font-bold text-lg&quot;&gt;4&lt;/div&gt;
                    &lt;h2 class=&quot;text-lg sm:text-xl font-semibold text-slate-900&quot;&gt;ขอความช่วยเหลือจากผู้เชี่ยวชาญ&lt;/h2&gt;
                &lt;/div&gt;

                &lt;div class=&quot;bg-slate-50 p-4 rounded-lg border border-slate-100 mt-4&quot;&gt;
                    &lt;h3 class=&quot;font-medium text-emerald-600 mb-2&quot;&gt;4.1 ปรึกษาช่าง&lt;/h3&gt;
                    &lt;ul class=&quot;space-y-2 text-sm text-slate-600&quot;&gt;
                        &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-emerald-500 mr-2&quot;&gt;•&lt;/span&gt;ถ้าทำตามขั้นตอนข้างต้นแล้วยังไม่หาย หรือไม่มั่นใจในการแก้ไขเอง&lt;/li&gt;
                        &lt;li class=&quot;flex items-start&quot;&gt;&lt;span class=&quot;text-emerald-500 mr-2&quot;&gt;•&lt;/span&gt;แจ้งอาการที่พบ และสิ่งที่ได้ตรวจสอบไปแล้ว เพื่อช่างจะได้วินิจฉัยปัญหาได้เร็วขึ้น&lt;/li&gt;
                    &lt;/ul&gt;
                &lt;/div&gt;
            &lt;/div&gt;

        &lt;/div&gt;

        &lt;!-- Footer / Summary Note --&gt;
        &lt;div class=&quot;bg-slate-100 px-6 py-4 border-t border-slate-200 text-center sm:text-left flex flex-col sm:flex-row justify-between items-center text-xs sm:text-sm text-slate-500&quot;&gt;
            &lt;p&gt;&lt;strong&gt;ข้อควรจำ:&lt;/strong&gt; PSU มีแรงดันไฟฟ้าสูง ควรทำด้วยความระมัดระวังเพื่อความปลอดภัยสูงสุด&lt;/p&gt;
            &lt;p class=&quot;mt-2 sm:mt-0 text-slate-400&quot;&gt;© คู่มือบำรุงรักษาคอมพิวเตอร์เบื้องต้น&lt;/p&gt;
        &lt;/div&gt;

    &lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/3199216214449755487/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/3199216214449755487' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/3199216214449755487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/3199216214449755487'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/psu.html' title='ขั้นตอนการตรวจเช็ก PSU อย่างละเอียด'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6926713945724376476.post-5361499277190918625</id><published>2026-10-21T08:17:40.379+07:00</published><updated>2026-10-21T08:17:40.380+07:00</updated><title type='text'>คู่มือฉบับเต็ม: รวมการใช้ Phase Rotation Tester (SM852B / SP8030) ตรวจเช็กระบบ Inverter</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;th&quot; class=&quot;dark&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;คู่มือฉบับเต็ม: รวมการใช้ Phase Rotation Tester (SM852B / SP8030) ตรวจเช็กระบบ Inverter&lt;/title&gt;
    &lt;!-- Tailwind CSS CDN --&gt;
    &lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;
    &lt;script&gt;
        tailwind.config = {
            darkMode: &#39;class&#39;,
            theme: {
                extend: {
                    colors: {
                        brand: {
                            50: &#39;#f0fdf4&#39;,
                            100: &#39;#dcfce7&#39;,
                            400: &#39;#4ade80&#39;,
                            500: &#39;#22c55e&#39;,
                            600: &#39;#16a34a&#39;,
                            900: &#39;#14532d&#39;,
                        },
                        darkbg: &#39;#0b0f19&#39;,
                        darkcard: &#39;#111827&#39;,
                        darkborder: &#39;#1f2937&#39;
                    },
                    fontFamily: {
                        sans: [&#39;Sarabun&#39;, &#39;Prompt&#39;, &#39;sans-serif&#39;],
                    }
                }
            }
        }
    &lt;/script&gt;
    &lt;!-- FontAwesome CDN --&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css&quot;&gt;
    &lt;!-- Google Fonts --&gt;
    &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.googleapis.com&quot;&gt;
    &lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot; crossorigin&gt;
    &lt;link href=&quot;https://fonts.googleapis.com/css2?family=Prompt:wght@300;400;500;600;700&amp;family=Sarabun:wght@300;400;500;600;700&amp;display=swap&quot; rel=&quot;stylesheet&quot;&gt;
    &lt;!-- KaTeX CDN for mathematical formulas --&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.css&quot;&gt;
    &lt;script defer src=&quot;https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/katex.min.js&quot;&gt;&lt;/script&gt;
    &lt;script defer src=&quot;https://cdn.jsdelivr.net/npm/katex@0.16.8/dist/contrib/auto-render.min.js&quot; onload=&quot;renderMathInElement(document.body);&quot;&gt;&lt;/script&gt;
    &lt;style&gt;
        body {
            font-family: &#39;Prompt&#39;, &#39;Sarabun&#39;, sans-serif;
        }
        .glow-effect {
            box-shadow: 0 0 25px -5px rgba(34, 197, 94, 0.25);
        }
        .glow-effect-blue {
            box-shadow: 0 0 25px -5px rgba(59, 130, 246, 0.25);
        }
        .glow-effect-purple {
            box-shadow: 0 0 25px -5px rgba(168, 85, 247, 0.25);
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body class=&quot;bg-darkbg text-gray-200 min-h-screen antialiased selection:bg-brand-500 selection:text-white&quot;&gt;

    &lt;!-- Header / Hero Section --&gt;
    &lt;header class=&quot;relative border-b border-darkborder bg-gradient-to-b from-slate-900 to-darkbg pt-12 pb-16 px-4 sm:px-6 lg:px-8 overflow-hidden&quot;&gt;
        &lt;div class=&quot;absolute inset-0 opacity-10 bg-[radial-gradient(#3b82f6_1px,transparent_1px)] [background-size:16px_16px]&quot;&gt;&lt;/div&gt;
        &lt;div class=&quot;max-w-5xl mx-auto relative z-10 text-center&quot;&gt;
            &lt;span class=&quot;inline-flex items-center gap-2 px-3 py-1 rounded-full text-xs font-semibold bg-brand-500/10 text-brand-400 border border-brand-500/20 mb-4&quot;&gt;
                &lt;i class=&quot;fa-solid fa-microchip&quot;&gt;&lt;/i&gt; คู่มือช่างมืออาชีพ ฉบับสมบูรณ์ 100% (ไม่มีการตัดทอน)
            &lt;/span&gt;
            &lt;h1 class=&quot;text-3xl sm:text-5xl font-bold tracking-tight text-white mb-4 leading-tight&quot;&gt;
                รวมคู่มือฉบับเต็ม &amp; เทคนิคการซ่อม&lt;br class=&quot;hidden sm:inline&quot;&gt;
                &lt;span class=&quot;text-transparent bg-clip-text bg-gradient-to-r from-brand-400 via-emerald-400 to-cyan-400&quot;&gt;ระบบ Inverter ด้วย Phase Rotation Tester&lt;/span&gt;
            &lt;/h1&gt;
            &lt;p class=&quot;text-base sm:text-lg text-gray-400 max-w-3xl mx-auto font-light&quot;&gt;
                รวบรวมคู่มือการใช้งาน SM852B, เทคนิคเช็คเครื่องซักผ้า Inverter, คู่มือเจาะลึกเช็คคอมเพรสเซอร์ตู้เย็น และขั้นตอนปฏิบัติตามลำดับครบทุกบรรทัด
            &lt;/p&gt;
        &lt;/div&gt;
    &lt;/header&gt;

    &lt;!-- Sticky Navigation / Quick Links --&gt;
    &lt;nav class=&quot;sticky top-0 z-50 bg-darkcard/90 backdrop-blur-md border-b border-darkborder px-4 py-3 shadow-lg&quot;&gt;
        &lt;div class=&quot;max-w-5xl mx-auto flex flex-wrap justify-center sm:justify-start gap-2 text-xs sm:text-sm font-medium text-gray-300&quot;&gt;
            &lt;a href=&quot;#section1&quot; class=&quot;px-3 py-1.5 rounded-lg hover:bg-gray-800 hover:text-brand-400 transition-colors&quot;&gt;&lt;i class=&quot;fa-solid fa-book mr-1&quot;&gt;&lt;/i&gt; 1. คู่มือ SM852B&lt;/a&gt;
            &lt;a href=&quot;#section2&quot; class=&quot;px-3 py-1.5 rounded-lg hover:bg-gray-800 hover:text-brand-400 transition-colors&quot;&gt;&lt;i class=&quot;fa-solid fa-shirt mr-1&quot;&gt;&lt;/i&gt; 2. เช็คเครื่องซักผ้า Inverter&lt;/a&gt;
            &lt;a href=&quot;#section3&quot; class=&quot;px-3 py-1.5 rounded-lg hover:bg-gray-800 hover:text-brand-400 transition-colors&quot;&gt;&lt;i class=&quot;fa-solid fa-snowflake mr-1&quot;&gt;&lt;/i&gt; 3. เจาะลึกตู้เย็น Inverter&lt;/a&gt;
            &lt;a href=&quot;#section4&quot; class=&quot;px-3 py-1.5 rounded-lg hover:bg-gray-800 hover:text-brand-400 transition-colors&quot;&gt;&lt;i class=&quot;fa-solid fa-list-check mr-1&quot;&gt;&lt;/i&gt; 4. ขั้นตอนเช็คตู้เย็น (Inverter)&lt;/a&gt;
        &lt;/div&gt;
    &lt;/nav&gt;

    &lt;main class=&quot;max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-10 space-y-12&quot;&gt;

        &lt;!-- ==========================================
             SECTION 1: Official Manual SM852B
             ========================================== --&gt;
        &lt;section id=&quot;section1&quot; class=&quot;bg-darkcard border border-darkborder rounded-2xl p-6 sm:p-8 glow-effect&quot;&gt;
            &lt;div class=&quot;flex items-center gap-3 mb-6 border-b border-darkborder pb-4&quot;&gt;
                &lt;div class=&quot;w-10 h-10 rounded-xl bg-emerald-500/10 border border-emerald-500/20 flex items-center justify-center text-emerald-400 text-lg&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-gauge-high&quot;&gt;&lt;/i&gt;
                &lt;/div&gt;
                &lt;div&gt;
                    &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-white&quot;&gt;1. คู่มือการใช้งานอย่างเป็นทางการ (Official Manual) SM852B 3 Phase Rotation Tester&lt;/h2&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-400&quot;&gt;ข้อมูลคุณสมบัติทางเทคนิค วิธีอ่านค่า และข้อควรระวังความปลอดภัย&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Diagram Map --&gt;
            &lt;div class=&quot;bg-gray-950 border border-gray-800 rounded-xl p-4 sm:p-6 mb-6 font-mono text-xs sm:text-sm text-cyan-400 overflow-x-auto&quot;&gt;
                &lt;div class=&quot;font-sans font-semibold text-gray-400 mb-2 border-b border-gray-800 pb-1&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-plug mr-1&quot;&gt;&lt;/i&gt; ผังการแมปปิ้งสีสายทดสอบ (Test Lead Connections)
                &lt;/div&gt;
                &lt;pre class=&quot;leading-relaxed&quot;&gt;
ขั้ว U (L1)  &lt;===================&gt;  สายสีเหลือง (หรือ เขียว)
ขั้ว V (L2)  &lt;===================&gt;  สายสีเขียว  (หรือ เหลือง)
ขั้ว W (L3)  &lt;===================&gt;  สายสีแดง
                &lt;/pre&gt;
            &lt;/div&gt;

            &lt;div class=&quot;grid grid-cols-1 md:grid-cols-3 gap-6 mb-6&quot;&gt;
                &lt;!-- Specs --&gt;
                &lt;div class=&quot;bg-gray-900 p-5 rounded-xl border border-gray-800 space-y-3&quot;&gt;
                    &lt;h3 class=&quot;text-base font-semibold text-white flex items-center gap-2&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-sliders text-emerald-400&quot;&gt;&lt;/i&gt; คุณสมบัติและสเปกทางเทคนิค
                    &lt;/h3&gt;
                    &lt;ul class=&quot;text-xs sm:text-sm text-gray-300 space-y-2 leading-relaxed&quot;&gt;
                        &lt;li&gt;• &lt;strong class=&quot;text-white&quot;&gt;ช่วงแรงดันใช้งาน (Operating Voltage):&lt;/strong&gt; $60V - 600V\text{ AC}$ (3 เฟส)&lt;/li&gt;
                        &lt;li&gt;• &lt;strong class=&quot;text-white&quot;&gt;ช่วงความถี่ (Frequency Range):&lt;/strong&gt; $20Hz - 400Hz$&lt;/li&gt;
                        &lt;li&gt;• &lt;strong class=&quot;text-white&quot;&gt;พลังงาน:&lt;/strong&gt; ไม่ต้องใช้แบตเตอรี่ (ใช้พลังงานไฟฟ้าจากวงจรที่ทำการวัดโดยตรง)&lt;/li&gt;
                        &lt;li&gt;• &lt;strong class=&quot;text-white&quot;&gt;การแสดงผล:&lt;/strong&gt; หลอดไฟ LED และเสียงสัญญาณเตือน (Buzzer)&lt;/li&gt;
                        &lt;li&gt;• &lt;strong class=&quot;text-white&quot;&gt;ความยาวสายวัด:&lt;/strong&gt; ประมาณ 1 เมตร พร้อมปากคีบจระเข้ insulation สูง&lt;/li&gt;
                    &lt;/ul&gt;
                &lt;/div&gt;

                &lt;!-- Display Reading --&gt;
                &lt;div class=&quot;bg-gray-900 p-5 rounded-xl border border-gray-800 space-y-3&quot;&gt;
                    &lt;h3 class=&quot;text-base font-semibold text-white flex items-center gap-2&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-display text-emerald-400&quot;&gt;&lt;/i&gt; การอ่านผลและสถานะหน้าเครื่อง
                    &lt;/h3&gt;
                    &lt;ul class=&quot;text-xs sm:text-sm text-gray-300 space-y-2 leading-relaxed&quot;&gt;
                        &lt;li&gt;• &lt;strong class=&quot;text-emerald-400&quot;&gt;ลำดับเฟสถูกต้อง / หมุนตามเข็ม (CW):&lt;/strong&gt; ไฟแสดงสถานะสีเขียวติด + เสียงสัญญาณบี๊บดังเป็นจังหวะต่อเนื่อง&lt;/li&gt;
                        &lt;li&gt;• &lt;strong class=&quot;text-red-400&quot;&gt;ลำดับเฟสย้อนกลับ / หมุนทวนเข็ม (CCW):&lt;/strong&gt; ไฟแสดงสถานะสีแดงติด + เสียงสัญญาณบี๊บดังยาวต่อเนื่อง&lt;/li&gt;
                        &lt;li&gt;• &lt;strong class=&quot;text-amber-400&quot;&gt;เฟสขาดหาย (Open Phase Check):&lt;/strong&gt; ไฟ LED ประจำเฟสนั้นๆ (L1, L2, L3) จะไม่ติด และไม่มีเสียงเตือน&lt;/li&gt;
                    &lt;/ul&gt;
                &lt;/div&gt;

                &lt;!-- Safety Warnings --&gt;
                &lt;div class=&quot;bg-gray-900 p-5 rounded-xl border border-red-500/30 space-y-3&quot;&gt;
                    &lt;h3 class=&quot;text-base font-semibold text-red-400 flex items-center gap-2&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-shield-halved&quot;&gt;&lt;/i&gt; ข้อควรระวังและการใช้งานอย่างปลอดภัย
                    &lt;/h3&gt;
                    &lt;ul class=&quot;text-xs sm:text-sm text-gray-300 space-y-2 leading-relaxed&quot;&gt;
                        &lt;li&gt;1. ห้ามนำไปใช้กับระบบไฟฟ้ากระแสสลับที่มีแรงดันสูงกว่า $600V\text{ AC}$ เด็ดขาด&lt;/li&gt;
                        &lt;li&gt;2. ห้ามสัมผัสส่วนที่เป็นโลหะของปากคีบขณะเชื่อมต่ออยู่กับระบบไฟฟ้าที่มีไฟ&lt;/li&gt;
                        &lt;li class=&quot;text-red-300 font-semibold&quot;&gt;3. ห้ามนำเครื่องไปใช้วัดไฟกระแสตรง (DC Volts) เช่น แผงโซลาร์เซลล์ แบตเตอรี่ EV หรือจุดจ่ายไฟ DC ค้างในวงจร เด็ดขาด! เครื่องอาจเกิดความเสียหายทันที&lt;/li&gt;
                        &lt;li&gt;4. หากเปลือกหุ้มสายวัดฉีกขาดหรือตัวเครื่องมีรอยแตกร้าว ห้ามนำมาใช้งานโดยเด็ดขาด&lt;/li&gt;
                    &lt;/ul&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- ==========================================
             SECTION 2: เครื่องซักผ้า Inverter
             ========================================== --&gt;
        &lt;section id=&quot;section2&quot; class=&quot;bg-darkcard border border-darkborder rounded-2xl p-6 sm:p-8 glow-effect-blue&quot;&gt;
            &lt;div class=&quot;flex items-center gap-3 mb-6 border-b border-darkborder pb-4&quot;&gt;
                &lt;div class=&quot;w-10 h-10 rounded-xl bg-blue-500/10 border border-blue-500/20 flex items-center justify-center text-blue-400 text-lg&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-shirt&quot;&gt;&lt;/i&gt;
                &lt;/div&gt;
                &lt;div&gt;
                    &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-white&quot;&gt;2. เทคนิคการใช้ SP8030 เช็คสัญญาณขับมอเตอร์เครื่องซักผ้า Inverter&lt;/h2&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-400&quot;&gt;วิธีการตรวจเช็กเพื่อแยกจุดเสียระหว่าง &quot;บอร์ดควบคุม Inverter&quot; หรือ &quot;มอเตอร์ BLDC / Hall Sensor&quot;&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Steps --&gt;
            &lt;div class=&quot;space-y-4 mb-6&quot;&gt;
                &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-white flex items-center gap-2&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-gears text-blue-400&quot;&gt;&lt;/i&gt; ขั้นตอนการปฏิบัติงานและการต่อวัด
                &lt;/h3&gt;
                &lt;div class=&quot;grid grid-cols-1 sm:grid-cols-3 gap-4 text-xs sm:text-sm&quot;&gt;
                    &lt;div class=&quot;bg-gray-900 p-4 rounded-xl border border-gray-800 space-y-2&quot;&gt;
                        &lt;span class=&quot;text-blue-400 font-bold block text-sm&quot;&gt;ขั้นตอนที่ 1: ตัดระบบไฟ&lt;/span&gt;
                        &lt;p class=&quot;text-gray-300 leading-relaxed&quot;&gt;ถอดปลั๊กเครื่องซักผ้าออกเพื่อความปลอดภัย จากนั้นทำการปลดขั้วสายไฟ 3 เส้น ($U, V, W$) ที่จ่ายไฟออกจากบอร์ด Inverter ไปยังมอเตอร์ซักผ้า&lt;/p&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;bg-gray-900 p-4 rounded-xl border border-gray-800 space-y-2&quot;&gt;
                        &lt;span class=&quot;text-blue-400 font-bold block text-sm&quot;&gt;ขั้นตอนที่ 2: เชื่อมต่อ SP8030&lt;/span&gt;
                        &lt;p class=&quot;text-gray-300 leading-relaxed&quot;&gt;นำปากคีบ 3 สีของเครื่อง SP8030 หนีบเข้ากับสายไฟ 3 เส้น ($U, V, W$) ที่จ่ายออกมาจากบอร์ดควบคุม Inverter (คีบที่ปลายสายฝั่งบอร์ด)&lt;/p&gt;
                    &lt;/div&gt;
                    &lt;div class=&quot;bg-gray-900 p-4 rounded-xl border border-gray-800 space-y-2&quot;&gt;
                        &lt;span class=&quot;text-blue-400 font-bold block text-sm&quot;&gt;ขั้นตอนที่ 3: สั่งทดสอบการทำงาน&lt;/span&gt;
                        &lt;p class=&quot;text-gray-300 leading-relaxed&quot;&gt;เสียบปลั๊กเครื่องซักผ้า เปิดสวิตช์เครื่อง เลือกสั่งงานไปที่โหมดซัก หรือโหมดปั่นหมาด (Spin) แล้วสังเกตการแสดงผลไฟ LED บนตัวเครื่อง SP8030&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Error Code Table --&gt;
            &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-white mb-3 flex items-center gap-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-table-list text-blue-400&quot;&gt;&lt;/i&gt; ตารางวิเคราะห์ Error Code ร่วมกับสถานะไฟ SP8030
            &lt;/h3&gt;
            &lt;div class=&quot;overflow-x-auto rounded-xl border border-gray-800&quot;&gt;
                &lt;table class=&quot;w-full text-left text-xs sm:text-sm text-gray-300&quot;&gt;
                    &lt;thead class=&quot;bg-gray-900 text-gray-200 uppercase text-xs font-semibold border-b border-gray-800&quot;&gt;
                        &lt;tr&gt;
                            &lt;th class=&quot;p-4&quot;&gt;ยี่ห้อ (Brand)&lt;/th&gt;
                            &lt;th class=&quot;p-4&quot;&gt;Error Code ยอดนิยม&lt;/th&gt;
                            &lt;th class=&quot;p-4&quot;&gt;การวิเคราะห์ร่วมกับสถานะไฟ SP8030&lt;/th&gt;
                        &lt;/tr&gt;
                    &lt;/thead&gt;
                    &lt;tbody class=&quot;divide-y divide-gray-800 bg-gray-900/50&quot;&gt;
                        &lt;tr class=&quot;hover:bg-gray-900&quot;&gt;
                            &lt;td class=&quot;p-4 font-semibold text-white&quot;&gt;Samsung&lt;/td&gt;
                            &lt;td class=&quot;p-4 font-mono text-amber-400&quot;&gt;3E, 3C, UC&lt;/td&gt;
                            &lt;td class=&quot;p-4 text-xs sm:text-sm leading-relaxed&quot; rowspan=&quot;6&quot;&gt;
                                &lt;div class=&quot;space-y-3&quot;&gt;
                                    &lt;div class=&quot;bg-emerald-950/40 border border-emerald-500/30 p-3 rounded-lg&quot;&gt;
                                        &lt;p class=&quot;text-emerald-400 font-medium mb-1&quot;&gt;&lt;i class=&quot;fa-solid fa-check mr-1&quot;&gt;&lt;/i&gt; กรณีที่ 1: หน้าจอแสดง Error Code แต่ไฟ LED บน SP8030 สว่างขึ้นครบทั้ง 3 ดวง&lt;/p&gt;
                                        &lt;p class=&quot;text-gray-300&quot;&gt;&lt;strong&gt;การวิเคราะห์:&lt;/strong&gt; บอร์ด Inverter จ่ายไฟ 3 เฟสสมบูรณ์ ปัญหาเกิดจากตัวมอเตอร์ซักผ้า (ขดลวดไหม้/ชอร์ต), ชุดสายไฟขาดใน, หรือตัวเซนเซอร์ตรวจจับการหมุน (Hall Sensor) เสียหาย&lt;/p&gt;
                                    &lt;/div&gt;
                                    &lt;div class=&quot;bg-red-950/40 border border-red-500/30 p-3 rounded-lg&quot;&gt;
                                        &lt;p class=&quot;text-red-400 font-medium mb-1&quot;&gt;&lt;i class=&quot;fa-solid fa-xmark mr-1&quot;&gt;&lt;/i&gt; กรณีที่ 2: หน้าจอแสดง Error Code แต่ไฟ LED บน SP8030 ติดไม่ครบ หรือไม่ติดเลย&lt;/p&gt;
                                        &lt;p class=&quot;text-gray-300&quot;&gt;&lt;strong&gt;การวิเคราะห์:&lt;/strong&gt; บอร์ดควบคุม Inverter เสียหาย โมดูลจ่ายไฟ IPM (Intelligent Power Module) พัง หรือไอซีไดรฟ์บนแผงวงจรไม่ปล่อยไฟออก&lt;/p&gt;
                                    &lt;/div&gt;
                                &lt;/div&gt;
                            &lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr class=&quot;hover:bg-gray-900&quot;&gt;
                            &lt;td class=&quot;p-4 font-semibold text-white&quot;&gt;LG&lt;/td&gt;
                            &lt;td class=&quot;p-4 font-mono text-amber-400&quot;&gt;LE&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr class=&quot;hover:bg-gray-900&quot;&gt;
                            &lt;td class=&quot;p-4 font-semibold text-white&quot;&gt;Panasonic&lt;/td&gt;
                            &lt;td class=&quot;p-4 font-mono text-amber-400&quot;&gt;H21, U13&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr class=&quot;hover:bg-gray-900&quot;&gt;
                            &lt;td class=&quot;p-4 font-semibold text-white&quot;&gt;Hitachi&lt;/td&gt;
                            &lt;td class=&quot;p-4 font-mono text-amber-400&quot;&gt;C3, F9&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr class=&quot;hover:bg-gray-900&quot;&gt;
                            &lt;td class=&quot;p-4 font-semibold text-white&quot;&gt;Toshiba&lt;/td&gt;
                            &lt;td class=&quot;p-4 font-mono text-amber-400&quot;&gt;Eb, E7, E7-4&lt;/td&gt;
                        &lt;/tr&gt;
                        &lt;tr class=&quot;hover:bg-gray-900&quot;&gt;
                            &lt;td class=&quot;p-4 font-semibold text-white&quot;&gt;Haier&lt;/td&gt;
                            &lt;td class=&quot;p-4 font-mono text-amber-400&quot;&gt;E7&lt;/td&gt;
                        &lt;/tr&gt;
                    &lt;/tbody&gt;
                &lt;/table&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- ==========================================
             SECTION 3: ตู้เย็น Inverter เจาะลึก
             ========================================== --&gt;
        &lt;section id=&quot;section3&quot; class=&quot;bg-darkcard border border-darkborder rounded-2xl p-6 sm:p-8&quot;&gt;
            &lt;div class=&quot;flex items-center gap-3 mb-6 border-b border-darkborder pb-4&quot;&gt;
                &lt;div class=&quot;w-10 h-10 rounded-xl bg-cyan-500/10 border border-cyan-500/20 flex items-center justify-center text-cyan-400 text-lg&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-snowflake&quot;&gt;&lt;/i&gt;
                &lt;/div&gt;
                &lt;div&gt;
                    &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-white&quot;&gt;3. คู่มือเจาะลึก SP8030 เช็คคอมเพรสเซอร์ตู้เย็น Inverter&lt;/h2&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-400&quot;&gt;แก้ไขปัญหาและวิเคราะห์อาการยอดฮิต &quot;เสียงตัด ติ๊ก...แล้วเงียบ&quot; อย่างละเอียด&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;p class=&quot;text-gray-300 text-sm sm:text-base leading-relaxed mb-6&quot;&gt;
                คอมเพรสเซอร์ตู้เย็นระบบ Inverter ยุคใหม่ ส่วนใหญ่เป็นมอเตอร์กระแสตรงไร้แปรงถ่าน (BLDC - Brushless DC Motor) ซึ่งรับการจ่ายไฟกระแสสลับ 3 เฟสสังเคราะห์จากบอร์ด Inverter ผ่านสายไฟ 3 ขั้วหลัก ได้แก่ ขั้ว $U, V, W$ (มักเป็นสายสีขาว สีแดง และสีดำ)
            &lt;/p&gt;

            &lt;!-- Diagram Box --&gt;
            &lt;div class=&quot;bg-gray-950 border border-darkborder rounded-xl p-4 sm:p-6 mb-6 font-mono text-xs sm:text-sm text-emerald-400 overflow-x-auto&quot;&gt;
                &lt;div class=&quot;font-sans font-semibold text-gray-400 mb-2 border-b border-gray-800 pb-1&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-diagram-project mr-1&quot;&gt;&lt;/i&gt; ผังการคีบสายวัด SP8030 กับแผงควบคุมตู้เย็น
                &lt;/div&gt;
                &lt;pre class=&quot;leading-relaxed&quot;&gt;
[ แผงบอร์ด Inverter ตู้เย็น ] --- (สาย U) ---&gt; [ L1 / ปากคีบสีเขียว  ] --- [ เครื่องทดสอบ ]
                              --- (สาย V) ---&gt; [ L2 / ปากคีบสีเหลือง ] --/  SP8030
                              --- (สาย W) ---&gt; [ L3 / ปากคีบสีแดง   ] -/
                &lt;/pre&gt;
            &lt;/div&gt;

            &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-white mb-3 flex items-center gap-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-magnifying-glass-chart text-brand-400&quot;&gt;&lt;/i&gt; วิเคราะห์สถานะไฟ LED 4 รูปแบบบน SP8030
            &lt;/h3&gt;
            &lt;div class=&quot;grid grid-cols-1 sm:grid-cols-2 gap-4 mb-6&quot;&gt;
                &lt;div class=&quot;bg-gray-900/80 border border-emerald-500/30 rounded-xl p-5 space-y-2&quot;&gt;
                    &lt;div class=&quot;flex items-center gap-2 text-emerald-400 font-semibold&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-circle-check&quot;&gt;&lt;/i&gt; กรณีที่ 1: ไฟสว่างวาบขึ้นมาครบ 3 ดวง (แล้วตัดดับพร้อมเสียง &quot;ติ๊ก&quot;)
                    &lt;/div&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300&quot;&gt;&lt;strong class=&quot;text-white&quot;&gt;ความหมาย:&lt;/strong&gt; แผงบอร์ด Inverter ทำงานปกติ 100% สามารถสังเคราะห์และปล่อยไฟ 3 เฟสออกมาได้สมบูรณ์&lt;/p&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300&quot;&gt;&lt;strong class=&quot;text-white&quot;&gt;สาเหตุเสีย:&lt;/strong&gt; ลูกสูบ/กลไกภายในคอมเพรสเซอร์ติดขัดทางกล (Mechanical Stuck) หรือขดลวดคอมเพรสเซอร์ชอร์ต ทำให้เกิดกระแสเกิน บอร์ดจึงสั่งตัดไฟเพื่อป้องกันวงจร&lt;/p&gt;
                    &lt;span class=&quot;inline-block px-3 py-1 rounded bg-emerald-500/20 text-emerald-300 text-xs font-semibold&quot;&gt;แนวทางแก้ไข: เปลี่ยนคอมเพรสเซอร์ลูกใหม่&lt;/span&gt;
                &lt;/div&gt;

                &lt;div class=&quot;bg-gray-900/80 border border-amber-500/30 rounded-xl p-5 space-y-2&quot;&gt;
                    &lt;div class=&quot;flex items-center gap-2 text-amber-400 font-semibold&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-triangle-exclamation&quot;&gt;&lt;/i&gt; กรณีที่ 2: ไฟสว่างไม่ครบ 3 ดวง (ติด 1-2 ดวง หรือหรี่มากบางดวง)
                    &lt;/div&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300&quot;&gt;&lt;strong class=&quot;text-white&quot;&gt;ความหมาย:&lt;/strong&gt; แผงบอร์ด Inverter เสียหาย จ่ายไฟออกไม่สมดุลครบทั้ง 3 เฟส (Phase Missing)&lt;/p&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300&quot;&gt;&lt;strong class=&quot;text-white&quot;&gt;สาเหตุเสีย:&lt;/strong&gt; ชิปโมดูล IPM (Intelligent Power Module) หรือทรานซิสเตอร์ไดรฟ์บนบอร์ดพังเสียบางส่วน&lt;/p&gt;
                    &lt;span class=&quot;inline-block px-3 py-1 rounded bg-amber-500/20 text-amber-300 text-xs font-semibold&quot;&gt;แนวทางแก้ไข: ซ่อมแผงวงจร หรือเปลี่ยนแผงบอร์ด Inverter ใหม่&lt;/span&gt;
                &lt;/div&gt;

                &lt;div class=&quot;bg-gray-900/80 border border-red-500/30 rounded-xl p-5 space-y-2&quot;&gt;
                    &lt;div class=&quot;flex items-center gap-2 text-red-400 font-semibold&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-circle-xmark&quot;&gt;&lt;/i&gt; กรณีที่ 3: ไฟไม่ติดเลยแม้แต่ดวงเดียว (และไม่มีเสียง &quot;ติ๊ก&quot;)
                    &lt;/div&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300&quot;&gt;&lt;strong class=&quot;text-white&quot;&gt;ความหมาย:&lt;/strong&gt; แผงบอร์ด Inverter ไม่มีการสั่งจ่ายไฟออกมาเลย&lt;/p&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300&quot;&gt;&lt;strong class=&quot;text-white&quot;&gt;สาเหตุเสีย:&lt;/strong&gt; บอร์ดหลัก (Main Board) ไม่ส่งสัญญาณสั่งงาน, สายไฟสัญญาณขาด, หรือภาคจ่ายไฟบนบอร์ด Inverter เสียหาย&lt;/p&gt;
                    &lt;span class=&quot;inline-block px-3 py-1 rounded bg-red-500/20 text-red-300 text-xs font-semibold&quot;&gt;แนวทางแก้ไข: ตรวจเช็คสายสัญญาณสื่อสาร (Signal Line) และแรงดันไฟเลี้ยงสั่งงาน&lt;/span&gt;
                &lt;/div&gt;

                &lt;div class=&quot;bg-gray-900/80 border border-purple-500/30 rounded-xl p-5 space-y-2&quot;&gt;
                    &lt;div class=&quot;flex items-center gap-2 text-purple-400 font-semibold&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-skull-crossbones&quot;&gt;&lt;/i&gt; กรณีพิเศษ: ไฟติดครบแต่สว่างค้างตลอดเวลา
                    &lt;/div&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300&quot;&gt;&lt;strong class=&quot;text-white&quot;&gt;ความหมาย:&lt;/strong&gt; แผงบอร์ด Inverter ลัดวงจร ปล่อยไฟกระแสตรง (DC) ค้างออกไป&lt;/p&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300&quot;&gt;&lt;strong class=&quot;text-white&quot;&gt;คำเตือนอันตราย:&lt;/strong&gt; หากเสียบขั้วต่อเข้าคอมเพรสเซอร์ ไฟ DC ค้างนี้จะทำให้ขดลวดคอมเพรสเซอร์ไหม้ทันที!&lt;/p&gt;
                    &lt;span class=&quot;inline-block px-3 py-1 rounded bg-purple-500/20 text-purple-300 text-xs font-semibold&quot;&gt;แนวทางแก้ไข: เปลี่ยนแผงบอร์ด Inverter ทันที&lt;/span&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Advanced Techniques --&gt;
            &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-white mb-3 flex items-center gap-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-bolt text-amber-400&quot;&gt;&lt;/i&gt; เทคนิคการวัดตรวจเช็กขั้นสูงเพิ่มเติม
            &lt;/h3&gt;
            &lt;div class=&quot;grid grid-cols-1 md:grid-cols-2 gap-6&quot;&gt;
                &lt;!-- Advanced 1 --&gt;
                &lt;div class=&quot;bg-gray-900/90 border border-gray-800 rounded-xl p-5 space-y-3&quot;&gt;
                    &lt;h4 class=&quot;text-base font-semibold text-amber-400 flex items-center gap-2&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-omega&quot;&gt;&lt;/i&gt; 1. การวัดค่าความต้านทาน (โอห์ม) ขดลวดคอมเพรสเซอร์
                    &lt;/h4&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300 leading-relaxed&quot;&gt;
                        เมื่อเครื่อง SP8030 ยืนยันว่าไฟจากบอร์ดมาครบ 3 ดวง ให้ใช้น้ำมัลติมิเตอร์ปรับย่านวัดความต้านทาน $\Omega$ ต่ำ (เช่น ย่าน $200\Omega$) ทำการวัดสลับคู่ขั้วทั้ง 3 หลักบนตัวคอมเพรสเซอร์:
                    &lt;/p&gt;
                    &lt;ul class=&quot;text-xs sm:text-sm font-mono text-gray-300 space-y-1 bg-gray-950 p-3 rounded-lg border border-gray-800&quot;&gt;
                        &lt;li&gt;• คู่ที่ 1: วัดขั้ว U เทียบกับ ขั้ว V&lt;/li&gt;
                        &lt;li&gt;• คู่ที่ 2: วัดขั้ว V เทียบกับ ขั้ว W&lt;/li&gt;
                        &lt;li&gt;• คู่ที่ 3: วัดขั้ว W เทียบกับ ขั้ว U&lt;/li&gt;
                    &lt;/ul&gt;
                    &lt;div class=&quot;text-xs text-gray-300 space-y-2 pt-1 leading-relaxed&quot;&gt;
                        &lt;p&gt;&lt;strong class=&quot;text-white&quot;&gt;การวิเคราะห์ผล:&lt;/strong&gt; ค่าความต้านทานทั้ง 3 คู่จะต้อง &lt;span class=&quot;text-emerald-400 font-semibold&quot;&gt;เท่ากันทุกคู่เป๊ะ&lt;/span&gt; (โดยทั่วไปจะอยู่ในช่วง $6\Omega - 15\Omega$ ขึ้นอยู่กับขนาด BTU และยี่ห้อ) หากคู่ใดคู่หนึ่งมีค่าแตกต่างกัน แสดงว่าขดลวดเกิดการลัดวงจรรอบ (Short Turn)&lt;/p&gt;
                        &lt;p&gt;&lt;strong class=&quot;text-white&quot;&gt;การเช็ครั่วลงกราวด์:&lt;/strong&gt; ตั้งย่านวัด $\Omega$ สูงสุด หรือย่าน Megohm แล้ววัดจับคู่ขั้วใดขั้วหนึ่งเทียบกับโครงโลหะ/ท่อ銅ของคอมเพรสเซอร์ ค่าต้องขึ้น &lt;code class=&quot;text-amber-400&quot;&gt;OL&lt;/code&gt; (ไม่ขึ้นค่า) หากมีค่าความต้านทานขึ้นแสดงว่าคอมเพรสเซอร์รั่วลงกราวด์แล้ว&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;!-- Advanced 2 --&gt;
                &lt;div class=&quot;bg-gray-900/90 border border-gray-800 rounded-xl p-5 space-y-3&quot;&gt;
                    &lt;h4 class=&quot;text-base font-semibold text-amber-400 flex items-center gap-2&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-wave-square&quot;&gt;&lt;/i&gt; 2. การตรวจเช็คสัญญาณสื่อสาร (Communication Signal)
                    &lt;/h4&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-300 leading-relaxed&quot;&gt;
                        ตั้งมัลติมิเตอร์ย่านวัดแรงดันไฟฟ้ากระแสตรง (DC Volts) นำสายวัดไปแตะวัดระหว่างสายสัญญาณ &lt;strong&gt;Signal (Data)&lt;/strong&gt; กับสาย &lt;strong&gt;Neutral (หรือ GND)&lt;/strong&gt;
                    &lt;/p&gt;
                    &lt;div class=&quot;bg-gray-950 p-4 rounded-lg border border-gray-800 space-y-2 leading-relaxed&quot;&gt;
                        &lt;span class=&quot;text-xs font-semibold text-gray-400 block&quot;&gt;ลักษณะสัญญาณที่ปกติ:&lt;/span&gt;
                        &lt;p class=&quot;text-xs sm:text-sm text-gray-200&quot;&gt;
                            ตัวเลขแรงดันบนหน้าจอมิเตอร์ หรือเข็มมิเตอร์ต้อง &lt;strong class=&quot;text-emerald-400&quot;&gt;&quot;สวิงขึ้นลงเปลี่ยนแปลงตลอดเวลา&quot;&lt;/strong&gt; (โดยทั่วไปจะสวิงในช่วง $3V\text{ DC}$ ถึง $15V\text{ DC}$) ซึ่งแสดงว่าบอร์ดควบคุมหลักกำลังส่งข้อมูลสั่งงานมายังบอร์ด Inverter
                        &lt;/p&gt;
                        &lt;p class=&quot;text-xs text-red-400&quot;&gt;
                            &lt;i class=&quot;fa-solid fa-circle-exclamation mr-1&quot;&gt;&lt;/i&gt; หากแรงดันนิ่งค้างที่ $0V$ หรือค้างที่ค่าใดค่าหนึ่งตลอดเวลา แสดงว่าบอร์ดหลักเสีย หรือสายไฟสัญญาณสื่อสารขาดในวงจร
                        &lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- ==========================================
             SECTION 4: ขั้นตอนปฏิบัติการเช็คตู้เย็น
             ========================================== --&gt;
        &lt;section id=&quot;section4&quot; class=&quot;bg-darkcard border border-darkborder rounded-2xl p-6 sm:p-8 glow-effect-purple&quot;&gt;
            &lt;div class=&quot;flex items-center gap-3 mb-6 border-b border-darkborder pb-4&quot;&gt;
                &lt;div class=&quot;w-10 h-10 rounded-xl bg-purple-500/10 border border-purple-500/20 flex items-center justify-center text-purple-400 text-lg&quot;&gt;
                    &lt;i class=&quot;fa-solid fa-list-check&quot;&gt;&lt;/i&gt;
                &lt;/div&gt;
                &lt;div&gt;
                    &lt;h2 class=&quot;text-xl sm:text-2xl font-bold text-white&quot;&gt;4. ขั้นตอนการใช้ SP8030 เช็คคอมเพรสเซอร์ตู้เย็น (Inverter) ตามลำดับ&lt;/h2&gt;
                    &lt;p class=&quot;text-xs sm:text-sm text-gray-400&quot;&gt;ขั้นตอนการปฏิบัติงานจริง และแผนผังลำดับการตัดสินใจแก้ปัญหา (Decision Tree)&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;

            &lt;!-- Action Steps --&gt;
            &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-white mb-3 flex items-center gap-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-shoe-prints text-purple-400&quot;&gt;&lt;/i&gt; ลำดับขั้นตอนการปฏิบัติงาน
            &lt;/h3&gt;
            &lt;ol class=&quot;list-decimal list-inside space-y-3 text-gray-300 text-sm sm:text-base pl-2 mb-8 leading-relaxed&quot;&gt;
                &lt;li class=&quot;bg-gray-900 p-3.5 rounded-xl border border-gray-800&quot;&gt;
                    &lt;strong class=&quot;text-white&quot;&gt;ถอดปลั๊กตู้เย็น:&lt;/strong&gt; ปลดปลั๊กไฟหลักเพื่อความปลอดภัย จากนั้นทำการถอดปลั๊กขั้วสายไฟ 3 ขั้ว ($U, V, W$) ออกจากตัวคอมเพรสเซอร์ตู้เย็น
                &lt;/li&gt;
                &lt;li class=&quot;bg-gray-900 p-3.5 rounded-xl border border-gray-800&quot;&gt;
                    &lt;strong class=&quot;text-white&quot;&gt;ต่อสายวัด SP8030:&lt;/strong&gt; นำปากคีบ 3 สีของเครื่อง SP8030 ไปคีบเข้ากับ &lt;span class=&quot;text-yellow-400 font-semibold&quot;&gt;&quot;ขั้วสายไฟที่มาจากบอร์ด Inverter&quot;&lt;/span&gt; (ไม่ใช่คีบที่ตัวคอมเพรสเซอร์) โดยคีบตามตำแหน่ง: L1 (เขียว) เข้าขั้ว U, L2 (เหลือง) เข้าขั้ว V, L3 (แดง) เข้าขั้ว W
                &lt;/li&gt;
                &lt;li class=&quot;bg-gray-900 p-3.5 rounded-xl border border-gray-800&quot;&gt;
                    &lt;strong class=&quot;text-white&quot;&gt;จ่ายไฟและสังเกตผล:&lt;/strong&gt; เสียบปลั๊กตู้เย็นแล้วรอประมาณ 3–5 นาที (เพื่อให้ระบบหน่วงเวลาป้องกันคอมเพรสเซอร์ของบอร์ดทำงาน) จากนั้นจ้องสังเกตการติดของไฟ LED บนหน้าไมล์เครื่อง SP8030 ในจังหวะที่บอร์ดเริ่มสั่งจ่ายไฟ
                &lt;/li&gt;
            &lt;/ol&gt;

            &lt;!-- Decision Tree --&gt;
            &lt;h3 class=&quot;text-base sm:text-lg font-semibold text-white mb-3 flex items-center gap-2&quot;&gt;
                &lt;i class=&quot;fa-solid fa-sitemap text-purple-400&quot;&gt;&lt;/i&gt; แผนผังลำดับการตัดสินใจแก้ปัญหา (Decision Tree Diagram)
            &lt;/h3&gt;
            &lt;div class=&quot;bg-gray-950 border border-darkborder rounded-xl p-5 font-mono text-xs sm:text-sm text-gray-300 overflow-x-auto leading-relaxed&quot;&gt;
&lt;pre class=&quot;text-purple-300 font-bold mb-2&quot;&gt;1. เริ่มต้น: ต่อคีบสายด้วย SP8030 สั่งจ่ายไฟตู้เย็นและสังเกตไฟ LED:&lt;/pre&gt;
&lt;pre&gt;
   ├── &lt;span class=&quot;text-red-400&quot;&gt;ไฟไม่ติดเลยสักดวง&lt;/span&gt; -------------&gt; ตรวจเช็คสาย Signal / แรงดันไฟเลี้ยง / บอร์ดหลัก (Main Board)
   ├── &lt;span class=&quot;text-amber-400&quot;&gt;ไฟติดไม่ครบ 3 ดวง&lt;/span&gt; ------------&gt; แผงบอร์ด Inverter เสีย (เปลี่ยน หรือ ซ่อมโมดูล IPM บนบอร์ด)
   └── &lt;span class=&quot;text-emerald-400&quot;&gt;ไฟติดครบ 3 ดวงสว่างวาบแล้วตัด&lt;/span&gt; -&gt; &lt;span class=&quot;text-purple-300 font-bold&quot;&gt;บอร์ดปกติ ให้ไปตรวจเช็คคอมเพรสเซอร์ที่ข้อ 2&lt;/span&gt;
&lt;/pre&gt;
&lt;pre class=&quot;text-purple-300 font-bold mt-6 mb-2&quot;&gt;2. ปรับมัลติมิเตอร์ย่าน $\Omega$ วัดความต้านทานขดลวดคอมเพรสเซอร์ 3 คู่:&lt;/pre&gt;
&lt;pre&gt;
   ├── &lt;span class=&quot;text-emerald-400&quot;&gt;ค่าโอห์มเท่ากันทุกคู่ ($U-V = V-W = W-U$)&lt;/span&gt; -&gt; คอมเพรสเซอร์ติดขัดเชิงกล (Mechanical Stuck) / ตันระบบน้ำยา
   └── &lt;span class=&quot;text-red-400&quot;&gt;ค่าโอห์มไม่เท่ากัน / ขดลวดขาด / รั่วลงกราวด์&lt;/span&gt; -&gt; ขดลวดชอร์ต ให้เปลี่ยนคอมเพรสเซอร์ลูกใหม่ทันที
&lt;/pre&gt;
            &lt;/div&gt;
        &lt;/section&gt;

        &lt;!-- Order / Contact Banner --&gt;
        &lt;section class=&quot;bg-gradient-to-r from-emerald-950 via-gray-900 to-cyan-950 border border-brand-500/40 rounded-2xl p-6 sm:p-8 text-center relative overflow-hidden glow-effect&quot;&gt;
            &lt;div class=&quot;relative z-10 space-y-4&quot;&gt;
                &lt;h2 class=&quot;text-2xl sm:text-3xl font-bold text-white&quot;&gt;สนใจสั่งซื้อเครื่อง Phase Tester &amp; สอบถามข้อมูลเพิ่มเติม&lt;/h2&gt;
                &lt;p class=&quot;text-gray-300 text-sm sm:text-base max-w-xl mx-auto&quot;&gt;
                    เครื่องตรวจเช็กเฟสคุณภาพสูง สำหรับช่างมืออาชีพ สินค้าพร้อมส่ง พร้อมคำแนะนำการใช้งานอย่างเป็นกันเอง
                &lt;/p&gt;

                &lt;div class=&quot;flex flex-wrap justify-center gap-4 pt-2&quot;&gt;
                    &lt;a href=&quot;tel:0809898770&quot; class=&quot;inline-flex items-center gap-2 bg-brand-500 hover:bg-brand-600 text-white px-6 py-3 rounded-xl font-bold transition-all transform hover:scale-105 shadow-lg shadow-brand-500/30&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-phone text-lg&quot;&gt;&lt;/i&gt; โทร: 080-989-8770
                    &lt;/a&gt;
                    &lt;a href=&quot;https://shopee.co.th/product/180378030/17096255436/&quot; target=&quot;_blank&quot; class=&quot;inline-flex items-center gap-2 bg-orange-600 hover:bg-orange-700 text-white px-6 py-3 rounded-xl font-bold transition-all transform hover:scale-105 shadow-lg shadow-orange-600/30&quot;&gt;
                        &lt;i class=&quot;fa-solid fa-bag-shopping text-lg&quot;&gt;&lt;/i&gt; สั่งซื้อผ่าน Shopee (750.-)
                    &lt;/a&gt;
                    &lt;a href=&quot;https://www.facebook.com/jam.aromdee&quot; target=&quot;_blank&quot; class=&quot;inline-flex items-center gap-2 bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-xl font-bold transition-all transform hover:scale-105 shadow-lg shadow-blue-600/30&quot;&gt;
                        &lt;i class=&quot;fa-brands fa-facebook text-lg&quot;&gt;&lt;/i&gt; Facebook
                    &lt;/a&gt;
                &lt;/div&gt;

                &lt;p class=&quot;text-xs text-gray-400 pt-2&quot;&gt;
                    ติดต่อ: แจ่ม อารมณ์ดี (จ.กำแพงเพชร) | ราคา 750 บาท (รวมส่งโอน)
                &lt;/p&gt;
            &lt;/div&gt;
        &lt;/section&gt;

    &lt;/main&gt;

    &lt;!-- Footer --&gt;
    &lt;footer class=&quot;border-t border-darkborder py-6 text-center text-xs text-gray-500&quot;&gt;
        &lt;p&gt;© 2026 คู่มือช่างตรวจเช็กระบบ Inverter ฉบับสมบูรณ์ | รวมเนื้อหาเต็ม 100% ครบถ้วนทุกหมวดหมู่&lt;/p&gt;
    &lt;/footer&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='http://aromdeeman.blogspot.com/feeds/5361499277190918625/comments/default' title='ส่งความคิดเห็น'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/6926713945724376476/5361499277190918625' title='0 ความคิดเห็น'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5361499277190918625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6926713945724376476/posts/default/5361499277190918625'/><link rel='alternate' type='text/html' href='http://aromdeeman.blogspot.com/2026/10/phase-rotation-tester-sm852b-sp8030.html' title='คู่มือฉบับเต็ม: รวมการใช้ Phase Rotation Tester (SM852B / SP8030) ตรวจเช็กระบบ Inverter'/><author><name>แจ่ม อารมณ์ดี</name><uri>http://www.blogger.com/profile/15517844833788373665</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>