Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เรียกใช้สคริปต์ Python อัตโนมัติเมื่อเริ่มต้น windows หรือไม่


การต่อท้ายสคริปต์ Python กับการเริ่มต้น windows โดยทั่วไปบ่งชี้ว่าสคริปต์ python จะทำงานเมื่อ windows บูทขึ้น สามารถทำได้โดยกระบวนการสองขั้นตอน -

ขั้นตอนที่ #1:การต่อท้ายหรือเพิ่มสคริปต์ไปยังโฟลเดอร์เริ่มต้นของ windows

หลังจากการบูทของ windows มันรัน (เทียบเท่ากับการดับเบิลคลิก) แอปพลิเคชั่นทั้งหมดที่อยู่ในโฟลเดอร์หรือไดเร็กทอรีเริ่มต้น

ที่อยู่

C:\Users\current_user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\

ตามค่าเริ่มต้น ไดเร็กทอรีหรือโฟลเดอร์ AppData ภายใต้ current_user จะถูกซ่อนไว้ ซึ่งเปิดใช้งานไฟล์ที่ซ่อนอยู่เพื่อรับมัน และวางทางลัดของสคริปต์ในที่อยู่ที่กำหนดหรือตัวสคริปต์เอง นอกจากนี้ ค่าเริ่มต้นของไฟล์ .PY จะต้องตั้งค่าเป็น python IDE มิฉะนั้น สคริปต์อาจเปิดขึ้นเป็นข้อความแทนที่จะดำเนินการ

ขั้นตอน #2:การต่อท้ายหรือเพิ่มสคริปต์ใน Windows Registry

กระบวนการนี้อาจมีความเสี่ยงหากไม่สำเร็จอย่างถูกต้อง ซึ่งรวมถึงการแก้ไขคีย์รีจิสทรีของ Windows HKEY_CURRENT_USER จากสคริปต์หลามเอง รีจิสทรีนี้ประกอบด้วยรายการโปรแกรมที่ต้องดำเนินการเมื่อผู้ใช้เข้าสู่ระบบ เส้นทางรีจิสทรี

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

ด้านล่างคือโค้ด Python

# Python code to append or add current script to the registry
# module to modify or edit the windows registry
importwinreg as reg1
importos

defAddToRegistry() −

   # in python __file__ is denoeted as the instant of
   # file path where it was run or executed
   # so if it was executed from desktop,
   # then __file__ will be
   # c:\users\current_user\desktop
   pth1 =os.path.dirname(os.path.realpath(__file__))
   # Python file name with extension
   s_name1="mYscript.py"
   # The file name is joined to end of path address
   address1=os.join(pth1,s_name1)
   # key we want to modify or change is HKEY_CURRENT_USER
   # key value is Software\Microsoft\Windows\CurrentVersion\Run
   key1 =HKEY_CURRENT_USER
   key_value1 ="Software\Microsoft\Windows\CurrentVersion\Run"
   # open the key to make modifications or changes to
   open=reg1.OpenKey(key1,key_value1,0,reg1.KEY_ALL_ACCESS)
   # change or modifiy the opened key
   reg1.SetValueEx(open,"any_name",0,reg1.REG_SZ,address1)
   # now close the opened key
   reg1.CloseKey(open)
# Driver Code
if__name__=="__main__":
AddToRegistry()