Thaiadmin

การเขียน Autorun.inf ฉบับเต็มๆ

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ ทัชชี่น่ารัก

  • *****
  • 961
  • 39
  • เพศ: ชาย
  • The Friendship for You can Touch
    • ทัชชี่
การเขียน Autorun.inf ฉบับเต็มๆ
« เมื่อ: 27 มิถุนายน 2007, 12:01:34 »
ว่าจะเขียนมานานแล้ว พอดีวันนี้สบโอกาสเลยมาเขียนให้อ่านกันครับ

ไฟล์ 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
โค๊ด: [Select]
action=ActionTextแบบที่ 2
โค๊ด: [Select]
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
โค๊ด: [Select]
icon=iconfilename[,index]
iconfilename คือชื่อไฟล์ที่เก็บไอคอนไว้ครับ อาจจะใส่พาธด้วยก็ได้ เช่น \folder\to\icon.ico หรือถ้าไฟล์ไอคอนนั้นมีไอคอนหลายภาพ (เช่น อยู่ในไฟล์ icon.exe)  ถ้าต้องการเลือกภาพไอคอนที่ไม่ใช่ไอคอนแรกก็ให้ใส่เลข index ลงไปด้วยครับ ซึ่งเลข index ของไอคอนแรกมีค่าเท่ากับ 0

ตัวอย่างครับ
โค๊ด: [Select]
icon=MyProg.exe,1
คำสั่ง label
โค๊ด: [Select]
label=LabelText
คำสั่งนี้ใช้กำหนดชื่อไดรฟ์หรือแผ่น ซึ่งสามารถกำหนดได้มากถึง 32 ตัวอักษร อันแตกต่างจากชื่อไดรฟ์เดิมๆ ที่ได้แค่ 11 ตัวอักษรเท่านั้น และใช้ได้กับเครื่องที่เปิด autorun ไว้เท่านั้น หากปิด autorun ไว้ มันจะแสดงชื่อแผ่นหรือไดรฟ์จากแผ่นหรือไดรฟ์ที่กำหนดไว้ก่อนแล้วเท่านั้น

คำสั่ง open
โค๊ด: [Select]
open=[exepath\]exefile [param1 [param2] ...]
คำสั่งนี้ใช้ในการระบุคำสั่งที่จะให้ทำงานอัตโนมัติเมื่อใส่ไดรฟ์หรือแผ่นเข้ามาในเครื่อง โดยถ้าเป็น windows รุ่นก่อน XP sp2 มันจะทำงานผ่านคำสั่งนี้อัตโนมัติ โดยไม่ถามก่อน หากเป็น sp2 มันจะขึ้นในหน้าจอ autoplay ถ้ากำหนดคำสั่ง action ไว้


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

คำสั่ง shellexecute
โค๊ด: [Select]
shellexecute=[filepath\]filename[param1, [param2]...]
คำสั่งนี้ใช้ในการเรียกโปรแกรมขึ้นมาทำงานเช่นเดียวกับ open ครับ แต่แตกต่างที่สามารถกำหนดให้เรียกเปิดไฟล์เอกสารขึ้นมาได้ด้วย  เช่น ให้ไปเปิดไฟล์ html ขึ้นมา มันก็จะไปเรียก browser สำหรับเปิดไฟล์ html ขึ้นมา โดยขึ้นอยู่กับว่าเราไปเซ็ตให้โปรแกรมไหนเป็นโปรแกรมเปิดไฟล์นั้น มันก็จะเปิดโปรแกรมนั้น

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

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

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

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

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

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

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

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

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

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

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

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

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


ไม่คิดว่ามันจะเยอะขนาดนี้นะเนี่ย เพราะเห็นส่วนใหญ่ใช้แค่ open กะ icon เท่านั้นเอง....

ออฟไลน์ analyser

  • *****
  • 497
  • 16
  • เพศ: ชาย
    • BitcoinThaialnd
Re: การเขียน Autorun.inf ฉบับเต็มๆ
« ตอบกลับ #1 เมื่อ: 19 กันยายน 2007, 13:33:19 »
 O0