เกริ่นนำ
                สำหรับหน้านี้ตั้งใจว่าจะเอาไว้เล่าเรื่องราวต่างๆที่ได้อ่านหรือได้พบเห็นมาและคิดว่าเป็นเรื่องน่าสนใจควรแก่การนำเล่าสู่กันฟัง แต่เนื้อหาอาจจะไม่ลึกซึ้งเท่าหน้าประสบการณ์จากการทำงาน เพราะอย่างที่บอกว่าส่วนใหญ่แล้วจะเป็นเรื่องที่อ่านมา หรือได้ยินมาเลยไม่ได้เจาะลึกมากมาย แต่จะพยายามทดสอบดูก่อนที่จะนำมาเขียนครับ

สารบัญ
ไฟล์ CHK ยังมีค่าอย่าเพิ่งลบทิ้ง
สร้างคำสั่งเรียกใช้โปรแกรมจาก Start => Run




ไฟล์ CHK ยังมีค่าอย่าเพิ่งลบทิ้ง
       
       เริ่มเรื่องแรกของหน้านี้ด้วยเรื่่องของไฟล์นามสกุล .CHK ซึ่งเรามักจะเห็นมันอยู่ใน Folder ชื่อ FOUND.XXX ซึ่งตรง XXX นี่ก็จะเป็นตัวเลขเช่น FOUND.000 FOUND.001 ประมาณนี้ล่ะครับ มันจะมาหลังจากเราสั่ง Checkdisk ในกรณีที่คิดว่า  Disk อาจจะมีปัญหา หรือบางครั้ง Windows ก็จัดการเรียกเจ้า Checkdisk นี้ขึ้นมาให้เองในกรณีที่เราไม่ได้ปิดเครื่องตามขั้นตอนการ Shutdown ของมัน ซึ่งในส่วนนี้ผมคงไม่อธิบายนะครับเพราะคิดว่าทุกคนน่าจะเข้าใจแล้วว่าคืออะไรและทำอย่างไร
       เมื่อก่อนผมเองก็ไม่ได้ให้ความสนใจกับเจ้าไฟล์พวกนี้มากนัก โดยมากจะลบทิ้งด้วยถ้าเจอเพราะรู้สึกเห็นแล้วมันไม่ค่อยสบายตา ทั้งๆที่ก็พอรุ้มาบ้างว่าเจ้าไฟล์พวกนี้เป็นไฟล์ที่ Windows พยายามจะกู้ขึ้นมาให้เราในกรณีที่ Disk ในส่วนที่เก็บไฟล์นั้นๆอาจจะมีปัญหา โดยเราสามารถที่จะทำการดูที่ Header ของไฟล์ว่าเป็นประเภทไหนแล้ว Rename เปลี่ยนนามสกุลกลับมาเป็นตามประเภทของไฟล์ดั้งเดิมของมันได้ ดูรูปประกอบนะครับ












Click ที่รูปเพื่อดูขนาดใหญ่ครับ

       อย่างที่บอกว่าเมื่อก่อนผมไม่ค่อยได้สนใจมันมากนัก เจอเป็นลบทิ้งเพราะรู้สึกเกะกะ ไอ้จะมานั่งดู Header แล้ว Rename ทีละไฟล์ก็เสียเวลา อาจจะเพราะผมไม่ค่อยมีข้อมูลอะไรสำคัญมากนัก แต่พอดีมีคนถามถึงไฟล์นี้มาใน Board เลยลองศึกษาเพิ่มเติมอีกหน่อยจนเพิ่งรู้(ใช้คำว่าเพิ่งรู้เพราะเข้าใจว่ามีมานานแล้วแต่ผมไม่ได้ใส่ใจหาเอง)ว่ามีโปรแกรมที่ช่วยในการกู้ไฟล์พวกนี้กลับมาเยอะแยะพอสมควรทั้งฟรีและไม่ฟรีครับ เพราะสำหรับบางคนข้อมูลในส่วนนี้เป็นส่วนสำคัญที่เค้าต้องใช้จึงต้องทำการกู้กลับมา
       เลยเป็นที่มาของเรื่องนี้ที่จะเอามาเล่าให้ฟัง หรือจะบอกว่าเป็นการสอนใช้โปรแกรมตัวที่ผมลองโหลดมาใช้ดูก็ไม่ผิด หรือใครจะลองหาโปรแกรมอื่นๆมาใช้ดูก็ได้ครับ อย่างที่บอกว่ามีเยอะพอสมควรครับ เอาเป็นว่าผมอธิบายไว้พอเป็นแนวแล้วกันครับ
       สำหรับโปรแกรมที่ผมลองโหลดมาใช้ก็เป็นของฟรีครับชื่อโปรแกรมว่า UnCHK เมื่อ Unzip ออกมาจะเห็นว่ามี Source Code แถมมาด้วยสำหรับผู้ที่สนใจวิธีการเขียนโปรแกรมนี้ แต่สำหรับผู้ที่ไม่ได้สนใจจะเขียนโปรแกรมก็ใช้แค่ตัว unchk.exe ตัวเดียวครับนอกนั้นลบทิ้งเลยก็ได้
**หมายเหตุ เมื่อเราเรียกตัว unchk.exe มันจะทำการสร้างไฟล์ unchk.ini ขึ้นมาอีกตัวนึงอันนี้ไม่ต้องลบนะครับมันเป็นไฟล์ที่เก็บรูปแบบของ Header ไฟล์แต่ละนามสกุลที่จะมาใช้ในการกู้ครับจำเป็นต้องใช้คู่กับ unchk.exe ครับ สำหรับขั้นตอนการใช้ผมทำเป็นรูปสรุปไว้นะครับเพราะไม่ได้ซับซ้อนอะไร













Click ที่รูปเพื่อดูขนาดใหญ่ครับ

       เมื่อทำการกู้เสร็จเรียบร้อยเราจะเห็นว่าไฟล์ CHK ที่ไร้ค่าในสายตาเราตอนนี้กลับมาเป็นไฟล์ตามเดิมของมันแล้วล่ะครับ แต่ถ้าสังเกตดูจะเห็นว่าบางไฟล์เช่น FILE0001.CHK ไม่ได้กู้กลับมาให้
       นั่นเป็นเพราะตัวโปรแกรมไม่รู้จัก Header ของไฟล์นี้ครับว่าต้นฉบับเดิมของมันก่อนเป็นไฟล์ CHK คือไฟล์ประเภทไหน ซึ่งถ้าเราเปิดไฟล์นี้ด้วย Notepad ตามที่บอกไว้ตอนต้นจะเห็นว่ามีคำว่า JFIF ซึ่งเราก็พอจะเดาได้ว่าไฟล์ดั้งเดิมเป็น . JPG นั่นเอง เรามาดูวิธีการแก้ปัญหากันครับ วิธีการก็คือต้องทำการแนะนำไฟล์นามสกุล .JPG ให้โปรแกรมนี้รู้จักก่อน โดยการลากไฟล์ .JPG ทั่วๆไป ไปใส่ที่ Icon ของโปรแกรมครับ






Click ที่รูปเพื่อดูขนาดใหญ่ครับ

       มันจะทำการบันทึกข้อมูล Header ของนามสกุลไฟล์นั้นๆไว้ใน unchk.ini ครับดังนั้นถ้าเราทำการสอนหลายๆนามสกุลแล้วไฟล์ unchk.ini นี้สำคัญนะครับต้องเก็บไว้คู่กับ unchk.exe ครับ ไม่งั้นต้องมานั่งสอนกันใหม่ทุกครั้งก็ไม่ไหว เมื่อเรียบร้อยแล้วให้ลองกู้ไฟล์ CHK ใน Folder เดิมดูอีกครั้งจะเห็นว่ามันกู้ไฟล์ FILE0001.CHK ซึ่งเป็นประเภท JPG มาให้เราเรียบร้อยแล้วครับ ลองดูนะครับ สอนให้มันรู้จักหลายๆนามสกุลหน่อยจะได้กู้ไฟล์ได้มากๆ 
**หมายเหตุ ถ้าอยากรู้ว่าตอนนี้มันรู้จักนามสกุลอะไรบ้างแล้วให้เปิดดูที่ไฟล์ unchk.ini ได้เลยนะครับ








Click ที่รูปเพื่อดูขนาดใหญ่ครับ

       
สร้างคำสั่งเรียกใช้โปรแกรมจาก Start => Run

       คิดว่าทุกคนที่เข้ามาอ่านคงเคยใช้การเรียกโปรแกรมจาก Start => Run กันมาแล้ว ซึ่งที่เราใช้กันบ่อยๆก็จะเป็น CMD,Regedit และ msconfig โดยความสะดวกของมันคือ เราสามารถที่จะใส่แต่ชื่อโปรแกรมโดยไม่จำเป็นต้องใส่ .exe ต่อท้าย รวมถึงไม่จำเป็นต้องระบุ Path แบบเต็มๆ เช่น C:\WINDOWS\system32\cmd.exe ในกรณี cmd หรือในกรณีของ  msconfig ก็จะเป็น C:\WINDOWS\pchealth\helpctr\binaries\msconfig.exe เป็นต้น







       เดี๋ยวเราจะมาสร้างคำสั่งของเราไว้เรียกโปรแกรมแบบนี้กันครับ แต่ก่อนอื่นต้องขอขอบคุณเจ้าไวรัสบางตัวที่ใช้ช่องทางนี้ทำให้ผมได้รู้(มารไม่มา ปัญญาไม่เกิด)ว่ามันมีคุณสมบัตินี้ของ Windows ซึ่งเปรียบเหมือนดาบ 2 คมด้วย แต่เราจะมาใช้คุณสมบัตินี้ในทางที่ถูกที่ควรกันครับ

       สำหรับการที่เราสามารถเรียกโปรแกรมโดยที่ไม่ระบุ Path และไม่ต้องใส่นามสกุลต่อท้ายนั้น มีอยู่ 2 รูปแบบนะครับ รูปแบบแรกนี่เกิดจากการที่ตัว Windows เองมีการกำหนด Default System Path ไว้แล้ว โดยหลักๆจะเป็น %SystemRoot% ซึ่งหมายถึง "X:\Folder ที่เก็บตัว OS" โดย X คือชื่อ Drive ที่เราลง Windows ไว้ ส่วน Folder ที่เก็บตัว OS ก็หมายถึง Folder ที่มีการติดตั้งระบบ Windows หรือ Folder ที่เก็บตัว Windows ไว้นั่นล่ะครับ ดังนั้นโดยทั่วไป %SystemRoot% ก็จะเท่ากับ C:\Windows\ ครับ กับอีกตัวคือ %SystemRoot%\System32 ซึ่งก็จะเท่ากับ C:\Windows\System32\ ครับ
       
       ดังนั้นโปรแกรมใดๆก็ตามที่อยู่ใน Folder \Windows และ \Windows\System32 หรือ Folder อื่นๆที่เราระบุเป็น  System Path เพิ่มเติมไว้ เราสามารถที่จะเรียกใช้ได้จาก Start => Run โดยไม่ต้องระบุ Path ครับ สามารถใส่แต่ชื่อโปรแกรมได้เลยครับ ทดลอง Copy โปรแกรมที่เราต้องการไปใส่ใน Folder \Windows แล้วลองเรียกดูจาก Start => Run ก็ได้นะครับ จะเห็นว่ามันใช้ได้จริงๆ
       
       สำหรับสาเหตุที่เราสามารถใส่แต่เพียงชื่อโปรแกรมโดยไม่ต้องใส่นามสกุลนั้นเป็นเพราะ Windows จะตีความให้เองว่าเราต้องการเรียกใช้โปรแกรมจึงทำการมองหาชื่อที่เราระบุไปซึ่งเป็น Executable file หรือพูดภาษาเราๆว่าไฟล์โปรแกรมนั่นล่ะครับ(ซึ่งมีไวรัสบางตัวใช้คุณสมบัตินี้กับเค้าด้วยแต่ผมขอไม่อธิบายนะครับ) โดยอย่างที่ทราบว่าตัว Executable file หลักๆจะมี 2 นามสกุลคือ .exe กับ .com(จริงๆมีนามสกุลอื่นๆอีกแต่ขอพูดถึงแค่ 2 ตัวหลักๆครับ) เช่นจาก Start => Run เราพิมพ์ว่า DKDC ตัว Wndows ก็จะทำการค้นหาไฟล์ที่ชื่อ DKDC.Com หรือ DKDC.Exe ใน Folderที่ระบุไว้ใน System Path ซึ่งในตัวอย่างนี้คือ \Windows และ \Windows\System32 เมื่อพบแล้วก็จะเปิดตัวโปรแกรมนั้นๆให้เราครับ
       แถมนิดนึงในส่วนที่ผมคิดว่าน่าสนใจดีคือ ในการจัดลำดับความสำคัญนั้น Windows จะให้ความสำคัญกับ .Com มากกว่า .Exe นะครับ คงประมาณว่าอาวุโสกว่าเพราะอยู่กันมาตั้งแต่สมัย DOS โน่นแน่ะ
       ผมขอขยายความคำว่าลำดับความสำคัญนิดนะครับ คือลองคิดดูนะครับว่าถ้า Executable file ชื่อ DKDC ใน Folder \Windows มีทั้ง DKDC.Com และ DKDC.Exe แล้วเราพิมพ์แค่ DKDC เจ้า Windows จะเรียกตัวไหนขึ้นมา คำตอบคือตามอาวุโสครับ Windows จะเรียก DKDC.Com ขึ้นมาให้ครับ ลองดูภาพประกอบนะครับ ตามตัวอย่างนี้ผมใช้โปรแกรม Ultra_SID.Exe และ ThumbViewer.exe ซึ่งกล่าวถึงไว้ในหน้า เข้าใจผิด! คิดว่าไวรัส  นะครับ โดยผมเปลี่ยนชื่อ(Rename) ThumbViewer.exe เป็น DKDC.Exe และ จาก Ultra_Sid.Exe เป็น DKDC.Com ซึ่งจะเห็นว่าตัว DKDC.Com จะเปลี่ยนเป็น Icon สีขาวๆซึ่งเป็นปกติของ .Com แต่สามารถ Double Click เรียกได้ตามปกติครับ
       หลังจากนั้นผมจะลองเรียกใช้ DKDC จาก Satrt => Run นะครับ จะเห็นว่า Windowsเลือกเรียกตัว .Com ขึ้นมาครับ อย่างที่บอกล่ะครับว่าตามลำดับอาวุโส งานนี้ไม่มีเด็กเส้น






Click ที่รูปเพื่อดูขนาดใหญ่ครับ

       เอาล่ะครับ หลังจากเกริ่นมาซะยาวมาเข้าเรื่องกันซะที เราเข้าใจกันแล้วนะครับว่าสำหรับไฟล์ที่อยู่ใน System Path สามารถเรียกใช้ได้ทันทีโดยไม่ต้องระบุ Path และ นามสกุล หลายคนคงมีคำถามว่าแล้วเจ้า Msconfig.exe ที่เราเรียกใช้กันบ่อยๆล่ะก็ไม่ได้อยู่ใน Folder \Windows หรือ \Windows\System32 นี่นา มันอยู่ใน C:\WINDOWS\pchealth\helpctr\binaries\ แน่ะ ทำไมเรียกได้โดยไม่ต้องระบุ Path กับนามสกุลเหมือนกันล่ะ นี่ล่ะครับที่มาของเรื่องนี้
       
       สำหรับเจ้า Msconfig.exe นั้นเมื่อไม่ได้อยู่ใน Default System Path ของ Windows (ผมเองก็ไม่เข้าใจว่าทำไม Microsoft เอาไปแอบไว้ซะลึกขนาดนั้น ไว้เข้าใจแล้วคงจะได้มาเล่าสู่กันฟังอีกที) แต่ต้องการให้ทำการเรียกแบบไม่ต้องระบุ Path+นามสกุล ได้เหมือนชาวบ้านเค้า จึงต้องทำการเพิ่มค่าไว้ใน Registry ครับจะได้เรียกใช้ง่ายๆเหมือนตัวอื่นๆเค้า โดย Registry ที่ว่าจะอยู่ตรง HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths ครับ ลองดูรูปประกอบนะครับ







Click ที่รูปเพื่อดูขนาดใหญ่ครับ

       โดยจะเห็นว่ามีการกำหนดไว้ตรงนี้ล่ะครับทำใ้ห้ Msconfig.exe สามารถที่จะเรียกใช้จาก Start => Run ได้โดยไม่ต้องระบุ Path และนามสกุลครับ ซึ่งเราจะเห็นว่ามีหลายโปรแกรมเช่นกันที่ใช้ตรงนี้อยู่ เดี๋ยวผมจะลองทำดูเป็นตัวอย่างสักคำสั่งนึงนะครับจะได้เข้าใจมากขึ้น เช่นผมต้องการเรียก Winamp จาก Run แต่ไม่อยากเรียกว่า Winamp น่ะดูมันธรรมดาไป สมมุติว่าผมอยากเรียกว่าฟังเพลงแล้วกัน ผมก็เข้าไปที่ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths แล้วสร้าง Key ใหม่ชื่อว่า "ฟังเพลง.exe" อย่างที่บอกครับว่าจำเป็นต้องใส่ .exe ต่อท้ายเสมอแต่เวลาเรียกใช้ไม่ต้องใส่ก็ได้ครับ ใน Key ฟังเพลง.exe ผมใส่ค่า(ฝั่งขวา) Default เป็น C:\Program Files\Winamp\Winamp.exe ซึ่งเป็น Path+ชื่อโปรแกรม Winamp หลังจากนั้นสร้าง New String Value ตั้งชื่อว่า Path แล้วกำหนดค่าเป็น C:\Program Files\Winamp ซึ่งก็คือ Path หรือเรียกง่ายๆว่า Folder ที่เก็บ Winamp นั่นเอง เรียบร้อยครับ ปิดตัว Regedit แล้วไปที่ Start => Run พิมพ์ คำว่า ฟังเพลง ลงไปในช่อง Run แล้ว OK มันก็จะทำการเปิด Winamp มาให้เราสมใจแล้วล่ะครับ







Click ที่รูปเพื่อดูขนาดใหญ่ครับ

       หวังว่าบทความนี้น่าจะมีประโยชน์สำหรับคนที่อยากจะใช้การพิมพ์คำสั่งแบบนี้ในการเรียกใช้โปรแกรมที่ต้องการ หรือใช้กับบางโปรแกรมที่เก็บไว้ลึกลับซับซ้อนต้องเข้า Folder หลายชั้นกว่าจะเจอ ไอ้ครั้นจะทำเป็น Shortcut แปะไว้บน Desktop ก็รบกวนสายตา แถมยังมาบัง Wallpaper สวยๆของเราอีก วิธีนี้ก็น่าจะเป้นทางเลือกหนึ่งนะครับ
       
       โดยความจริงแล้วผมไม่ค่อยแนะนำให้เล่นกับ Registry มากนัก โดยเฉพาะคนที่ยังไม่ค่อยคล่องเพราะถ้าผิดพลาดอาจจะสร้างปัญหากับ Windows ได้(ไม่ใช่ไม่ไว้ใจ แต่ความปลอดภัยควรจะมาก่อน) ผมจึงทำตัว Ultra_Run มาไว้สำหรับคนที่อยากจะเพิ่มคำสั่งแบบนี้แต่ไม่อยากจะไปวุ่นวายกับ Registry โดยตรง โดยเพียงแค่เลือกโปรแกรมที่ต้องการแล้วตั้งชื่อย่อที่จะใช้เรียกจาก Start => Run แล้วกด Ultra ก็เรียบร้อยแล้วครับ
เทคนิคน่าสนใจ