เมื่อผมใช้ AI เขียนไฟล์ .bat แก้ไขปัญหา ไวไฟหลุดบ่อย บน Windows
ความน่าปวดหัวที่ผมต้องเจอ เมื่อย้ายฝั่งกลับมาใช้ Windows 11 หลังจากที่ก่อนหน้านี้ใช้งาน Ubuntu (Linux) มาพักใหญ่ๆ
สิ่งที่ทำให้ผมหงุดหงิดที่สุดคือ ตอนใช้ Ubuntu ปัญหาไวไฟแทบจะไม่มีเลยครับ
แต่วันดีคืนดีพอมาเปิดใช้งาน Windows ปั๊บ... หลุดเก่ง! หลุดบ่อย! จนกูจะบ้าาาา
และที่ผมย้ายกลับมา Windows เพราะผมดันคิดถึงเกมๆ นึงนั่นคือ Special force (SF1)
ที่ผมเล่นตั้งแต่เด็ก และพยายามหาวิธี ผลสรุปคือ กูย้ายมา Windows ก็ได้
แล้วเวลาจะ Dev ค่อยทำผ่าน WSL2 เพราะเราประเมินแล้วว่า เราไม่มีความจำเป็นต้องใช้ Linux ที่มันเนทีฟฟ ขนาดนั้นครับ...
กลับมาเข้าเรื่อง ไวไฟ กัน
เดิมที ผมใช้ Ubuntu ไม่มีปัญหาเรื่องไวไฟเลยครับ สเถียรมาก แต่ Windows กลับหลุดบ่อยจัด ก็เลยหาสาเหตุ และผมก็ถามเอไอตัวโปรดของผม คือ เจ้า Gemini นั่นเองครับ
จากการดู Log ปัญหาไวไฟหลุดบ่อยใน win11 (ส่งให้เอไอตรวจสอบให้) ทำให้ผมได้ทราบถึงความจริง 2 ข้อที่ระบบปฏิบัติการสองตัวนี้คิดไม่เหมือนกัน นั่นคือ
1.ลอจิกการเกาะสัญญาณที่ต่างกัน นั่นคือ ฝั่ง Ubuntu นั้นทำงานแบบดิบ ๆ ตราบใดที่สัญญาณไวไฟไม่เหลือ 0%
มันจะพยายามเกาะเราเตอร์หลักไว้สุดชีวิต (ต่อให้สัญญาณดรอป เน็ตช้า มันก็ไม่ปล่อยมือ)
แต่ Windows 11 มีลอจิกที่เซนซิทีฟและขี้กังวลมาก พอเห็นสัญญาณเริ่มอ่อนลงนิดหน่อย
มันจะคิดแทนเราทันทีว่า* เน็ตไม่เสถียรแล้วแน่ ๆ ลองตัดการเชื่อมต่อแล้วสแกนหาคลื่นใหม่ที่ดีกว่านี้ดีกว่า...
- ผลลัพธ์คือเน็ตเราจะมีโอกาสหลุดบ่อย ครับ
2.ระบบแอบสแกนเบื้องหลัง กล่าวคือ.. Windows จะคอยแอบสแกนหาคลื่นไวไฟรอบ ๆ ตัวเราอยู่ทุก ๆ 1-2 นาที
แม้ว่าเราจะต่อเน็ตใช้งานอยู่ก็ตามครับ โดยจังหวะที่มันแบ่งสมองไปแอบสแกนนี้แหละ
ทำให้การ์ดไวไฟบางรุ่น (โดยเฉพาะชิปที่มีเสาสัญญาณเส้นเดียว) เกิดอาการปิงพุ่ง สัญญาณแกว่ง หรือหลุดไปเลย
และสิ่งที่ควรทราบคือ.. ใน Windows ยุคใหม่ บริษัท Microsoft เค้าจะแอบซ่อนเมนูจัดการพลังงานและการตั้งค่าไวไฟออกจากหน้าต่าง GUI ปกติ
ทำให้ผู้ใช้ทั่วไปเข้าไปแก้ไขอะไรไม่ได้เลยครับ ซึ่งข้อมูลนี้ ผมก็ทราบจากเอไอนี่แหละ
ในเมื่อไมโครซอฟท์ซ่อนเมนูจัดการพลังงานไวไฟ ผมเลยสั่งให้ AI ช่วยเขียนสคริปต์ไฟล์ .bat
เพื่อทำการ สั่งปิดการทำงานเบื้องหลังของ Windows และบังคับให้มันเลิกสแกนหาคลื่นอื่น
และตั้งหน้าตั้งตาต่อไวไฟหลักตัวเดียวพอครับ!!
(ก็คือ แม้สัญญาณไวไฟจะต่ำเตี้ยเรี่ยดินแค่ไหน เราจะสั่งให้วินโดวส์ไม่ต้องไปพยายามสแกนหาไวไฟตัวอื่นที่ดีกว่านั่นเอง)
โดยผมสั่งให้เอไอเขียน .bat ไว้สองสคริปต์ สำหรับ windows 11
อันแรก ผมตั้งชื่อ WiFi_Lock.bat
สคริปต์ตัวนี้จะเข้าไปสั่ง Disable Background Scanning (สั่งปิดตัวแอบสแกนไวไฟพื้นหลัง) ทันที
ทำให้คอมพิวเตอร์ของเราเพ่งสมาธิไปที่ไวไฟตัวปัจจุบัน 100%
ไม่แบ่งสมองไปสแกนที่อื่นอีก เน็ตนิ่งขึ้นอย่างเห็นได้ชัดครับ
(สคริปต์นี้ถูกฝังโค้ดให้เรียกสิทธิ์ Administrator อัตโนมัติ ทำให้ใช้งานง่ายมาก)
@echo off
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
goto UACPrompt
) ELSE ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%~dp0"
netsh wlan set autoconfig enabled=no interface="Wi-Fi"
echo Wi-Fi is now LOCKED to the current network.
pause
อันที่สอง ผมตั้งชื่อ WiFi_Unlock.bat
เนื่องจากเวลาเราสั่งปิดระบบสแกนเบื้องหลังไปแล้ว
คอมพิวเตอร์จะมองไม่เห็นไวไฟชื่ออื่น ๆ เลย (ต่อให้ย้ายไปร้านกาแฟหรือบ้านเพื่อนก็เปลี่ยนเน็ตไม่ได้)
ผมเลยสั่งให้ AI เขียนสคริปต์ปลดล็อกมาให้คู่กัน
เผื่อเวลาเราต้องการคืนสภาพให้ Windows กลับมาค้นหาและสลับไวไฟได้ตามปกติ ดังนี้
@echo off
NET SESSION >nul 2>&1
IF %ERRORLEVEL% NEQ 0 (
goto UACPrompt
) ELSE ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%~dp0"
netsh wlan set autoconfig enabled=yes interface="Wi-Fi"
echo Wi-Fi scanning is now ENABLED. You can change networks.
pause
วิธีนำไปใช้งานจริง
เอาโค้ดด้านบนไปแปะในโปรแกรม Notepad แยกเป็น 2 ไฟล์
ตอนเซฟให้เลือกประเภทเป็น All Files แล้วตั้งชื่อลงท้ายด้วย .bat (เช่น WiFi_Lock.bat และ WiFi_Unlock.bat)
ขั้นตอนการใช้
1.เปิดเครื่องมา ปล่อยให้คอมเชื่อมต่อไวไฟบ้านตามปกติก่อน -> พอเน็ตติดแล้ว ให้ดับเบิลคลิก WiFi_Lock.bat (กด Yes ยอมรับสิทธิ์ Admin)
ทีนี้ก็นั่งทำงานยาว ๆ เน็ตจะนิ่งสนิท ไม่มีการแอบหลุดชั่วคราวอีกเลย
2.วันไหนจะย้ายไปทำงานนอกบ้าน หรือเน็ตเกิดเอ๋อขึ้นมา ต้องการหาหรือเชื่อมไวไฟใหม่ๆ
ก็แค่ดับเบิลคลิก WiFi_Unlock.bat เพื่อเปิดระบบสแกนหาคลื่นใหม่ พอหาคลื่นได้แล้วค่อยกดไฟล์ล็อคก็ได้ครับ
หรือจะเอาไปโมโดยการสั่งให้ python เขียน gui interface ไว้ใช้งานคนเดียวก็ได้ครับผม..
ปัญหาไวไฟหลุดบน Windows อาจจะดูเป็นเรื่องเส้นผมบังภูเขา แต่สำหรับคนที่กำลังทำงานภายใต้เงื่อนไขที่ว่า ถ้าเน็ตหลุดกูมีปัญหาแน่ๆๆๆ มันสำคัญมากเลยนะครับ
เพราะเน็ตหลุดแค่แป๊ปเดียว มันอาจขัดโฟลว์การทำงานของเราก็ได้
โชคดีที่ยุคนี้เรามี AI ที่ช่วยให้เราสามารถเขียนโค้ดเพื่อแก้ไข และเจาะลึกระบบหลังบ้านได้
โดยไม่ต้องเป็นโปรแกรมเมอร์ระดับเซียน
และใครที่กำลังเจอปัญหาไวไฟบน Windows 11 งอแง
ลองเอาวิธีดัดหลังระบบด้วยสคริปต์ .bat ชุดนี้ไปใช้ดูครับ รับรองว่าชีวิตจะนิ่งขึ้นเยอะ!
แต่ทั้งนี้ ถ้าหากใช้งานไม่ได้ ลองส่งโค้ดและสเปคเครื่องไปให้เอไอดูครับ มันอาจจะปรับปรุงให้เข้ากับสถานะระบบปฏิบัติการของเราได้ครับ :D
ความเสี่ยงที่ต้องรู้: ถ้าเกิดเหตุการณ์สุดวิสัยจนเน็ตหลุดจริง ๆ (จากข้อ 1 หรือ 2) คอมคุณจะต่อกลับเองไม่ได้ทันทีเพราะโดนปิดตาสแกนอยู่ คุณแค่ต้องกด WiFi_Unlock.bat เพื่อให้มันมองเห็นและต่อใหม่แค่นั้นเองครับ
