วันพุธที่ 29 พฤษภาคม พ.ศ. 2556

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


ก่อนจะก้าวเข้าสู่การเขียน Batch File แบบ มืออาชีพ...
อย่างที่กล่าวไว้ในบล็อกแรก แล้วว่า...ถ้าจะใช้งานแบตช์ไฟล์ ต้องทำใจเรื่องภาษาไทย แต่ถ้าบางคนที่เคยเรียนอยู่ในปัจจุบันเอง...ซึ่งทุกสถาบันมีการสอนอยู่แล้วเป็นเบื่องต้นนั้นคือ HTML ผมจึงอยากให้ใช่พื้นฐานที่มีต่อยอดที่ไม่จำเป็นต้องไปยุ่งยากมากนัก เพราะ Console เป็นเทคนิคยุคก่อน...(แต่ปัจจุบันกำลังนิยมในหมู่นักพัฒนาซอฟต์แวร์ระดับสูง...เพราะมันปรับปรุงแก้ไขง่าย เทคนิคไม่ต้องซับซ้อน...ใช้กับหลายแพลตฟอร์มและหลายระบบปฏิบัติการ "หมายถึง การเขียนโปรแกรมบนหน้าจอดำๆ และแป้นพิมพ์") แต่ขอบอกก่อนว่า...ในบล็อกนี้เป็นเรื่องของ Batch File จะไม่มีการช่วยเหลือเทคนิคหรือคำสั่งของ HTML ได้แต่ยกตัวอย่างให้พอเข้าใจ...หากต้องการเก่งระดับนักพัฒนาเว็บ ต้องไปหาที่เรียนที่อื่นนะครับ...อีกอย่างก JAVA เองก็ไม่มีสอนครับ...ต้องหาเรียนเอา...เพราะผมก็เดาทางเอาเหมือนกัน
ทำไมต้องเป็น HTML ไม่อาศัย VB6 หรือโปรแกรมอื่นที่ออกแบบหน้าจอให้ผู้ใช้ได้ดีกว่า?
คำตอบ คือ ที่ต้องใช้ HTML เพราะอาศัยแค่ Notepad และความรู้เพียงเล็กน้อยก็ออกแบบหน้าจอติดต่อผู้ใช้งานได้อย่างลงตัว ไม่เห็นต้องหาซื้อหรือ Download แผ่นโปรแกรมหรือ Complier ตัวอื่นมาทั้งๆ ที่ต้องการแค่คลิกได้...แสดงภาษาไทยได้...และกรอกข้อมูลได้
สู้ผมใช้ HTML เขียนสคริป แทน Batch File เลยดีไหม?
คำตอบ คือ ได้ แต่ต้องเป็น HTML5 ซึ่งบน IE6 และระบบปฏิบัติการยุคก่อนยังไม่ลองรับ อีกอย่างงานบางอย่างเป็นเรื่องของ Batch File ที่เป็นหน้าที่ติดต่อกับคำสั่ง Application File Command ซึ่งโปรแกรมหรือคำสั่งในภาษาอื่นอาจทำได้ดีกว่า...แต่ยุ่งยากและมีจำนวนบรรทัดมากกว่า แม้จะใช้สคริปภายใน JAVA Script หรือ VBScript ก็ตาม เช่น
DIR *.* /s /b แค่นี้ คำสั่ง JAVA หรือ VB เองผู้เขียนต้องใช้ความสามารถและบรรทัดคำสั่ง...อาจไม่กี่บรรทัดจนไปถึงหลายบรรทัดเพื่อทำงานให้เหมือนกับมัน
ความสามารถของ Batch File ในปัจจุบันเองมาจาก CMD.EXE ซึ่งบรรจุคำสั่งไว้พอสมควร แต่ตัวมันเองตัวเดียวก็ทำงานไม่ได้ถ้าไม่มีการจัดการชื่อไฟล์แบบยาว ซึ่งมี Module DOSX.EXE จัดการไว้...(ใน XP) ส่วน Vista, Windows 7 และ Windows 8 ผู้เขียนยังไม่มีข้อมูลแน่ชัดว่ามันจัดการยังไง หรืออนุรักษ์ ไว้ อีกอย่างการเขียน Batch File นั้นเพื่อทำให้คุณสามารถติดต่อโปรแกรมที่เป็น Module ที่มาจากภาษาอื่นๆ เช่น C หรือลึกไปยัง Assembly เองก็ตาม ในปัจจุบันโปรแกรมในสถาปัตยกรรม .NET เองก็ยังมีส่วนของ Console Command ไว้ให้ Compile ออกมาเป็น .EXE โดยเฉพาะ เพื่อลองรับการติดต่อสื่อสารระหว่างระบบปฏิบัติการรวมถึง Server และเครือข่ายอื่นด้วยซึ่งการใช้งาน Stream หรือ Paint Text เองมีความสำคัญ
สรุปแล้ว Batch File ไม่ใช่ภาษาที่ใช้ในการสื่อสารแต่เป็นภาษาที่ติดภาษาระดับสูงกับระดับล่างให้ทำงานได้ง่าย และสะดวกกว่า และด้วยเจตนารมณ์ คือ มันสามารถเป็นได้ทั้ง “Hack” และ “Crack” ในเวลาเดียวกัน...เหมือนคุณมีปืนหรือศึกษาการใช่ปืน...ถ้าลงมือ...มันจะแสดงตัวตนคุณว่า “ผิด เป็น Crack” หรือ “ถูก เป็น Hack

1. ถ้าเป็น IE ให้เรียกใช้ ActiveX ก่อนถ้ามีการ Disable ไว้

2. เลือกให้ผ่านการบล็อกความปลอดภัย Filewall

3. ยอมรับข้อตกลง

4. ทดสอบคำสั่งได้เลย

5. ตอบ Yes เพื่อยืนยันการใช้งาน

6. ถ้าใช้งานได้จะขึ้น Batch File ในคำสั่งที่บรรจุไว้ใน JAVA Script

7. แต่ถ้าคำสั่งที่เขียนไว้ผิดพลาดจะแสดงข้อผิดพลาดขึ้นมา

ทำไมต้องเป็น JAVA ภาษา VBScript ไม่ได้หรือ?
คำตอบคือ ได้ แต่เหตุผลคือ ไม่ครอบคลุมการใช้งานผ่าน Firefox หรือ Chrome ซึ่ง Browser เหล่านั้นไม่สามารถเรียกใช้งาน VBScript ได้เนื่องจากลิขสิทธ์ และความสามารถที่มีเฉพาะ IE เท่านั้นที่ยังอนุรักษ์ไว้
มา ดูสคริปคำสั่งกัน
<HTML>
<HEAD>
<TITLE> สอนการใช้เครื่องมือง่ายๆ เพื่อ GUI ที่สมบรูณ์ โดย ธนัตถ์เดชน์ บุญลือลักษณ์ </TITLE>
</HEAD>
<SCRIPT LANGUAGE="javaScript">
onerror=Err;
function Err(msg){
alert("Oop! : "+msg);
return(true);
}
function wFile(filename,text){
var jsob = new ActiveXObject("scripting.filesystemobject");
var wfile = jsob.createtextfile(filename);
wfile.write(text);
wfile.Close();
}
function RunFile(filename){
var jsob = new ActiveXObject("Wscript.Shell");
jsob.run(filename);
}
function Wcmd(){
var str='@echo off'
+'\r\ntitle ทดสอบเรียก Batch File ผ่าน HTML และ javaScript โดยธนัตถ์เดชน์ บุญลือลักษณ์'
+'\r\necho xxxxxxxxxxxxxxxxxxxxxxxxxx'
+'\r\necho x Testing... Command x'
+'\r\necho xxxxxxxxxxxxxxxxxxxxxxxxxx'
+'\r\npause';
wFile("Hack.CMD",str);
RunFile("Hack.CMD");
}
</SCRIPT>
<BODY>
พร้อมแล้วก็รัน...<INPUT TYPE="button" VALUE=" เรียก Hack.CMD " ONCLICK="Wcmd()">
<br><br>
</BODY>
</HTML>

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

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