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

กระทู้สนทนา
คิดว่าทุกคนที่เข้ามาอ่านคงเคยใช้การเรียกโปรแกรมจาก Start => Run กันมาแล้ว ซึ่งที่เราใช้กันบ่อยๆก็จะเป็น CMD,Regedit และ msconfig โดยความสะดวกของมันคือ เราสามารถที่จะใส่แต่ชื่อโปรแกรมโดยไม่จำเป็นต้องใส่ .exe ต่อท้าย รวมถึงไม่จำเป็นต้องระบุ Path แบบเต็มๆ เช่น C:WINDOWSsystem32cmd.exe ในกรณี cmd หรือในกรณีของ msconfig ก็จะเป็น C:WINDOWSpchealthhelpctrbinariesmsconfig.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:WindowsSystem32 ครับ

ดังนั้นโปรแกรมใดๆก็ตามที่อยู่ใน Folder Windows และ WindowsSystem32 หรือ 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 และ WindowsSystem32 เมื่อพบแล้วก็จะเปิดตัวโปรแกรมนั้นๆให้เราครับ

แถมนิดนึงในส่วนที่ผมคิดว่าน่าสนใจดีคือ ในการจัดลำดับความสำคัญนั้น 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 ขึ้นมาครับ อย่างที่บอกล่ะครับว่าตามลำดับอาวุโส งานนี้ไม่มีเด็กเส้น

คลิกเพื่อดูภาพขนาดจริง




เอาล่ะครับ หลังจากเกริ่นมาซะยาวมาเข้าเรื่องกันซะที เราเข้าใจกันแล้วนะครับว่าสำหรับไฟล์ที่อยู่ใน System Path สามารถเรียกใช้ได้ทันทีโดยไม่ต้องระบุ Path และ นามสกุล หลายคนคงมีคำถามว่าแล้วเจ้า Msconfig.exe ที่เราเรียกใช้กันบ่อยๆล่ะก็ไม่ได้อยู่ใน Folder Windows หรือ WindowsSystem32 นี่นา มันอยู่ใน C:WINDOWSpchealthhelpctrbinaries แน่ะ ทำไมเรียกได้โดยไม่ต้องระบุ Path กับนามสกุลเหมือนกันล่ะ นี่ล่ะครับที่มาของเรื่องนี้

สำหรับเจ้า Msconfig.exe นั้นเมื่อไม่ได้อยู่ใน Default System Path ของ Windows (ผมเองก็ไม่เข้าใจว่าทำไม Microsoft เอาไปแอบไว้ซะลึกขนาดนั้น ไว้เข้าใจแล้วคงจะได้มาเล่าสู่กันฟังอีกที) แต่ต้องการให้ทำการเรียกแบบไม่ต้องระบุ Path+นามสกุล ได้เหมือนชาวบ้านเค้า จึงต้องทำการเพิ่มค่าไว้ใน Registry ครับจะได้เรียกใช้ง่ายๆเหมือนตัวอื่นๆเค้า โดย Registry ที่ว่าจะอยู่ตรง HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionApp Paths ครับ ลองดูรูปประกอบนะครับ

คลิกเพื่อดูภาพขนาดจริง




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

PIC_A68_IZNZAZ.jpg


ไฟล์รูปภาพ : (82 Kb.)
PIC_A68_IZNZAZ.jpg
>> คลิกเพื่อเปิดดูรูป <<




หวังว่าบทความนี้น่าจะมีประโยชน์สำหรับคนที่อยากจะใช้การพิมพ์คำสั่งแบบนี้ในการเรียกใช้โปรแกรมที่ต้องการ หรือใช้กับบางโปรแกรมที่เก็บไว้ลึกลับซับซ้อนต้องเข้า Folder หลายชั้นกว่าจะเจอ ไอ้ครั้นจะทำเป็น Shortcut แปะไว้บน Desktop ก็รบกวนสายตา แถมยังมาบัง Wallpaper สวยๆของเราอีก วิธีนี้ก็น่าจะเป็นทางเลือกหนึ่งนะครับ

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

สังคมยังอยู่ได้ เพราะคนไทยยังแบ่งปัน

แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่