วันศุกร์ที่ 21 มิถุนายน พ.ศ. 2556

การใช้เว็บเป็นเครื่องมือแสดงผลภาษาไทย Batch File ตอนจบ


ในที่สุดก็หาวิธีเซ็ตฟอนต์ภาษาไทยได้สำเร็จครับ...ดูเว็บต่างประเทศเป็นแม่แบบ เลยประยุกต์วิธีการทำงานเอา... ลองทำตามดูนะครับ...

การทำให้ CMD พิมพ์ภาษาไทยได้?
1. Download Font และ ติดตั้ง...(ตามแต่ละระบบปฏบัติการ ถ้า XP ต้องเข้า Control Panel...Font... ส่วน Windows 7-8 สามารถคลิกขวา Install ได้เลย)
Download Font Thai สำหรับ Console
2. คัดลอกคีย์ไปใช้งานบันทึกชื่อ SetFontThai.REG
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\Nls]
"0000041e"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont]
@="Courier MonoThai"
"0"="Lucida Console"
"00"="Courier MonoThai"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MS-DOS Emulation]
"DisplayParams"=hex:40,01,00,00,f0,00,00,00,00,04,00,00,00,03,00,00,60,00,00,\
  00,60,00,00,00,24,00,00,00,24,00,00,00,10,00,00,00,4c,00,75,00,63,00,69,00,\
  64,00,61,00,20,00,43,00,6f,00,6e,00,73,00,6f,00,6c,00,65,00,00,00,12,00,91,\
  ad,f5,77,e0,00,12,00,b0,e2,3e,77,74,23,dd,77,a8,f8,ca,01,ba,6d,d4,77,ec,6d,\
  d4,77,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,d8,f8,ca,01,15,e4,4a,\
  77,01,00,00,80,b0,e2,3e,77,00,00,00,00,19,00,02,00,d4,f8,ca,01,a4,03,00,00,\
  00,00,00,00,20,b4,5c,77,89,e4,4a,77,01,00,00,80,20,b4,5c,77

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MS-DOS Emulation\Font]
"Font"="Courier MonoThai"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes]
"0000041e"="th"
"0001041e"="th"
"0002041e"="th"
"0003041e"="th"

3. ติดตั้งคำสั่งที่คัดลอกไป...เพื่อทำงาน
4. รีสตาร์ทเครื่อง 1 ครั้ง...
5. เข้า start...run...CMD คลิกขวา ที่ Title Bar และเลือก Properties และเลือกแท็บ Font เลือก Font ชื่อ
Courier Thai ตกลง
6. ลองพิมพ์ ภาษาไทยที่ CMD ดูครับ...


การคืนค่า...Font ตัวเดิม...ที่ CMD?
1. คัดลอกคำสั่งสั่ง...และบันทึกชื่อ ResetFont.REG
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\Nls]
"0000041e"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont]
@=""
"0"="Lucida Console"
"00"=-


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MS-DOS Emulation]
"DisplayParams"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MS-DOS Emulation\Font]
"Font"="Lucida Console"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes]
"0000041e"=-
"0001041e"=-
"0002041e"=-
"0003041e"=-

2. และเีรียกใช้งาน
3. รีสตาร์ท 1 ครั้้ง...เรียบร้อย


ที่นี้...สามารถทำเมนูภาษาไทยติดต่อกับผู้ใช้งานได้ดังภาพ

สรุป?
สำหรับผมแล้ว...ชอบวิธีที่แสดงผลนอก Console มากกว่า...มีทั้งการใช้ VBScript สร้างการเชื่อมต่อกับผู้ใช้งาน...และการใช้ VB Application เขียนโปรแกรมสนับสนุนภาษาไทย...หรือใช้เวปอย่างที่เคยกล่าวมาแล้ว...แต่รู้สึกกับแง่ลบของการแสดงผลภาษาไทยที่ Console มาก เพราะมันมีแต่ปัญหาที่มันไม่สนับสนุนภาษาไทย...เลยทั้งเรื่องตัดคำ...สระกระโดด...สระซ้ำ...สระลอย...ซึ่งถ้าจะใช้ Batch File เขียนโปรแกรมภาษาไทยบน Console ในอดีต...โปรแกรมเมอร์จะใช้ DOS Mode ทีมี Thai.EXE ของ "จุฬาลงกรณ์มหาวิทยาลัย" สนับสนุน... หรือ ใช้งาน TSM.EXE ของบริษัืท TSM เอง และบริษัทอื่นๆ ที่มีภาษาไทยบน DOS ครับ เพียงแต่คุณต้องทำความเข้าใจก่อนว่า... DOS Mode กับ Console บน Windows มันใกล้เคียงกันก็จริง...แต่ "เซกชั่นเดียว" กับ "มัลติเซกชั่น"  การทำงานมันต่างกันครับ...รวมถึงเรื่องทรัพยากรและการเข้าถึงโปรแกรมนั้นมันต่างกันไปด้วย...ซึ่งกล่าวคือ...มันไม่ใช่ตัวเดียวกัน...อธิเช่น Console สามารถกำหนด Font รวมถึงจำนวนบรรทัดและคอลัมภ์การแสดงผลได้ครับ...ส่วน DOS ทำได้...แต่ทำได้ด้วย โปรแกรม Driver เ่ท่านั้น

ในเรื่องของการแสดงผลการทำงานวิธีอื่นๆ ยังไม่จบนะครับทั่ง
1. แสดงผล Batch File บน หน้าจอด้วยโปรแกรมที่สร้างจาก VB6
2. แสดงผลรูปแบบที่สูงขึ้นแบบเดียวกัย Auto It
เทคนิคเหล่านี้...จะมาสาธิตในตอนใหม่ที่ชื่อ "การทำงาน Batch File ร่วมกับ VB6" รอพบกันนะครับ

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

แสดงความคิดเห็น