เซียนคอมพิวเตอร์

.

1 มกราคม 2555

การเขียน ไฟลล์ Autorun.inf ฉบับเต็ม

ไฟล์ autorun.inf เราเคยรู้จักไฟล์นี้ดีเวลาที่เราใส่ cd-rom ลงไปในไดรฟ์แล้วมันก็จะไปเรียกโปรแกรมขึ้นมาทำงานทันที แต่จริงๆ มันทำอะไรได้มากกว่านั้น ลองมาดูกันค๊าบ ข้อมูลนำมาจากที่นี่ค๊าบhttp://msdn2.microsoft.com/En-US/library/aa969327.aspx
หัวข้อหลักของ autorun จะเรียกว่า key ค๊าบ โดย key จะเขียนเป็น [ชื่อคีย์] แบบนี้ ซึ่งคีย์ใน autorunจะมีดังนี้


    * [AutoRun] Keys
    * [Content] Keys
    * [ExclusiveContentPaths] Keys
    * [IgnoreContentPaths] Keys
    * [DeviceInstall] Keys

มาดูส่วน AutoRun key ก่อนค๊าบ คำสั่งที่ใช้ได้ก็จะมีดังนี้ค๊าบ
    * action
    * icon
    * label
    * open
    * UseAutoPlay
    * shellexecute
    * shell
    * shell\verb

ทีนี้มาดูวิธีใช้แต่ละคำสั่งค๊าบ
คำสั่ง action ค๊าบ
แบบที่ 1
โค๊ด:
action=ActionText
แบบที่ 2
โค๊ด:
action=@[filepath\]filename,-resourceID

คำอธิบายค๊าบ
ActionText คือข้อความที่จะให้แสดงในหน้าจอ AutoPlay (บน WIndows XP ขึ้นไป) ซึ่งคำสั่งนี้จะไปเชื่อมโยงกับคำสั่ง open โดยอัตโนมัติ (หมายความว่า เวลาใส่แผ่นแล้วรันโปรแกรมทันทีเลย จะไม่มีอีกต่อไป จะต้องถามก่อน)
@[filepath\]filename คือชื่อไฟล์และพาธของไฟล์ binary ที่จะให้แสดงข้อความแทน action text
resourceID คือ resourceID ของข้อความที่อยู่ในไฟล์นั้น

หมายเหตุ
คำ สั่ง action ใช้ได้กับ Windows XP sp2 หรือรุ่นถัดมาเท่านั้น มันใช้ได้กับ DRIVE_REMOVABLE และ DRIVE_FIXED เท่านั้น ถ้านำไปใช้กับไดรฟ์ cd หรือ dvd ที่เป็น audio หรือ movie คำสั่งนี้จะไม่สามารถใช้ได้ และคำสั่งนี้ใช้ไม่ได้กับ windows xp sp1 หรือรุ่นก่อนหน้านี้ มันจะไปทำตามคำสั่ง open เท่านั้น

คำสั่ง action นี้ จะแสดงในหน้าจอ Autoplay เวลาที่ใส่สื่อที่มีไฟล์นี้เข้าไปในเครื่อง (เช่น Thumb drive) โดยจะแสดงไอคอนที่ถูกกำหนดโดยคำสั่ง icon ไว้ด้วย และจะลิงค์คำสั่งไปที่คำสั่งที่ถูกกำหนดโดยคำสั่ง open หรือ shellexecute

เมื่อ ใส่คำสั่ง action เข้าไปในคีย์ autorun จะทำให้มันถูกเลือกเป็นตัวแรกอัตโนมัติ เวลาที่หน้าจอ autoplay แสดงขึ้นมา หากไม่ใช้คำสั่งนี้ เวลาใส่สื่อเข้ามาในเครื่อง หน้าจอ autoplay จะไม่แสดงคำสั่งของ open ที่กำหนดไว้เลย

คำสั่ง icon
โค๊ด:
icon=iconfilename[,index]

iconfilename คือชื่อไฟล์ที่เก็บไอคอนไว้ค๊าบ อาจจะใส่พาธด้วยก็ได้ เช่น \folder\to\icon.ico หรือถ้าไฟล์ไอคอนนั้นมีไอคอนหลายภาพ (เช่น อยู่ในไฟล์ icon.exe)  ถ้าต้องการเลือกภาพไอคอนที่ไม่ใช่ไอคอนแรกก็ให้ใส่เลข index ลงไปด้วยค๊าบ ซึ่งเลข index ของไอคอนแรกมีค่าเท่ากับ 0

ตัวอย่างค๊าบ
โค๊ด:
icon=MyProg.exe,1

คำสั่ง label
โค๊ด:
label=LabelText

คำ สั่งนี้ใช้กำหนดชื่อไดรฟ์หรือแผ่น ซึ่งสามารถกำหนดได้มากถึง 32 ตัวอักษร อันแตกต่างจากชื่อไดรฟ์เดิมๆ ที่ได้แค่ 11 ตัวอักษรเท่านั้น และใช้ได้กับเครื่องที่เปิด autorun ไว้เท่านั้น หากปิด autorun ไว้ มันจะแสดงชื่อแผ่นหรือไดรฟ์จากแผ่นหรือไดรฟ์ที่กำหนดไว้ก่อนแล้วเท่านั้น

คำสั่ง open
โค๊ด:
open=[exepath\]exefile [param1 [param2] ...]

คำ สั่งนี้ใช้ในการระบุคำสั่งที่จะให้ทำงานอัตโนมัติเมื่อใส่ไดรฟ์หรือแผ่นเข้า มาในเครื่อง โดยถ้าเป็น windows รุ่นก่อน XP sp2 มันจะทำงานผ่านคำสั่งนี้อัตโนมัติ โดยไม่ถามก่อน หากเป็น sp2 มันจะขึ้นในหน้าจอ autoplay ถ้ากำหนดคำสั่ง action ไว้


คำสั่ง UseAutoPlay
โค๊ด:
UseAutoPlay=1

คำ สั่งนี้ได้รับการแนะนำให้ใช้ใน Windows XP  จึงไม่มีผลต่อ windows รุ่นก่อนหน้านี้ สำหรับระบุว่าให้ใช้ UseAutoPlay V2 ค๊าบ  ถ้ามีการกำหนดคำสั่งนี้ไว้ มันถึงจะเรียกใช้คำสั่งที่กำหนดไว้โดย open หรือ ShellExecute ไว้ค๊าบ ถ้าใช้ ShellExecute ก็ขอให้ใช้ด้วยความระมัดระวังนะค๊าบ หากไม่ได้กำหนดไว้ มันจะไปค้นหาข้อมูลในไดรฟ์ก่อนเรียก autoplay ขึ้นมาค๊าบ

คำสั่ง shellexecute
โค๊ด:
shellexecute=[filepath\]filename[param1, [param2]...]

คำ สั่งนี้ใช้ในการเรียกโปรแกรมขึ้นมาทำงานเช่นเดียวกับ open ค๊าบ แต่แตกต่างที่สามารถกำหนดให้เรียกเปิดไฟล์เอกสารขึ้นมาได้ด้วย  เช่น ให้ไปเปิดไฟล์ html ขึ้นมา มันก็จะไปเรียก browser สำหรับเปิดไฟล์ html ขึ้นมา โดยขึ้นอยู่กับว่าเราไปเซ็ตให้โปรแกรมไหนเป็นโปรแกรมเปิดไฟล์นั้น มันก็จะเปิดโปรแกรมนั้น

คำสั่ง shell
โค๊ด:
shell=verb

คำ สั่งนี้สำหรับกำหนดคำที่ใช้เรียกคำสั่งมาใช้อัตโนมัติ ซึ่งโดยปกติจะเป็นคำว่า autorun หากใส่คำสั่งนี้เข้าไป มันจะเปลี่ยนคำว่า autorun เป็นคำที่เราใส่ลงไปแทนคำว่า verb ค๊าบ ซึ่งคำสั่งนี้มันจะไปอิงตามคำสั่ง shell\verb อีกทีค๊าบ ซึ่งต้องระบุให้เมือนกัน

คำสั่ง shell\verb
โค๊ด:
shell\verb\command=Filename.exe
shell\verb=MenuText

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

อันนี้มีตัวอย่างค๊าบ
โค๊ด:
shell\readit\command=notepad abc\readme.txt
shell\readit=Read &Me

คีย์ Content ค๊าบ
โค๊ด:
[Content]
MusicFiles=Y
PictureFiles=0
VideoFiles=false

จะ มี 3 คำสั่ง ให้ใช้ค๊าบ สำหรับระบุว่ามีข้อมูลอะไรในไดรฟ์หรือแผ่นค๊าบ ซึ่งค่าของแต่ละคำสั่ง สามารถระบุว่าใช้ได้คือ 1, y, yes, t, true ส่วนใช้ไม่ได้คือ 0, n, no, f, false สำหรับคีย์นี้ใช้ได้กับ Windows Vista ขึ้นไปค๊าบ ส่วนรุ่นก่อนหน้าไม่มีผลค๊าบ คำสั่งนี้จะไปทำให้ windows ไม่ต้องค้นหาข้อมูลในไดรฟ์ก่อนที่จะนำขึ้นมาแสดงในหน้าจอ autoplay ค๊าบ

คีย์ ExclusiveContentPaths
โค๊ด:
[ExclusiveContentPaths]
\music
\music\more music
music2

ใช้ สำหรับระบุว่ามีข้อมูลอยู่ในโฟลเดอร์ไหนบ้างค๊าบ (จะได้ไม่เสียเวลาค้นหา) ซึ่งจะอิงกับคีย์ข้างบนค๊าบ ว่าให้ใช้ content ชนิดไหนได้บ้าง ใช้ได้กับ vista ขึ้นไปค๊าบ

คีย์ IgnoreContentPaths
โค๊ด:
[IgnoreContentPaths]
\music
\music\more music
music2

ใช้สำหรับระบุว่ามีโฟลเดอร์ไหนบ้างที่ไม่ให้ autoplay สนใจใฝ่ค้นหาค๊าบ

คีย์ DeviceInstall
โค๊ด:
[DeviceInstall]
DriverPath=directorypath

ใช้ สำหรับระบุว่าไดรเวอร์อยู่ที่ไหนค๊าบ ซึ่งจะเป็นการบังค๊าบให้ตัว hardware wizard ไม่เสียเวลาในการค้นหาไดรเวอร์ทั้งไดรฟ์ค๊าบ คำสั่งนี้ใช้ได้ใน Windows XP เท่านั้น

อันนี้เป็นตัวอย่างค๊าบ
โค๊ด:
[DeviceInstall]
DriverPath=drivers\video
DriverPath=drivers\audio

ลองนำไปประยุกต์ใช้กันนะค๊าบ

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

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