2012-01-16 27 views
5

Tôi đang cố gắng làm cho tập lệnh python của tôi chạy khi khởi động nhưng tôi nhận được thông báo lỗi truy cập windowserror bị từ chối, nhưng tôi có thể làm cho chương trình khởi động khi khởi động vì teamviewer (chương trình bên thứ ba tôi đã tải xuống) chạy mọi lúc tôi khởi động lại máy tính của tôi vì vậy tôi biết rằng tôi có thể làm cho chương trình của tôi chạy lúc khởi động (tôi có thể đang làm điều gì đó khác biệt, vì vậy nếu bạn có thể làm sáng tỏ những gì teamviewer đang làm khác đi để kịch bản của nó chạy lúc khởi động Hữu ích).Làm cách nào để thêm tập lệnh python vào sổ đăng ký khởi động?

Đây là kịch bản của tôi

import _winreg, webbrowser 
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Run') 
_winreg.SetValueEx(key,'pytest',0,_winreg.REG_BINARY,'C:\Users\"USERNAME"\Desktop\test.py') 
key.Close() 
webbrowser.open('www.youtube.com') 

Bất kỳ đầu vào được đánh giá cao.

+3

Tại sao bạn không chỉ đơn giản là thêm nó vào thư mục startup của bạn? Nếu các tệp '.py' được liên kết với trình thông dịch python, điều đó sẽ hoạt động tốt – wim

+0

Bạn có nghĩa là" chạy khi tôi đăng nhập vào máy tính của mình "hoặc" chạy trong nền "không? py2exe có thể được sử dụng để tạo các Dịch vụ chạy khi máy tính khởi động. Việc đặt tập lệnh của bạn trong thư mục khởi động sẽ hoạt động nếu bạn muốn nó chạy cho tài khoản người dùng của mình. –

Trả lời

5
import webbrowser 
webbrowser.open('www.youtube.com') 

Loại bỏ tất cả nội dung _winreg đó. Thay vào đó, bạn (giả sử nhấp đúp vào tệp py mở bảng điều khiển) chỉ cần đặt nó vào thư mục khởi động (C:\Users\yourusername\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup trên Windows 7 và C:\Documents and Settings\yourusername\Start Menu\Programs\Startup trong XP). Điều này làm việc vì Windows cố gắng mở tất cả các tệp trong thư mục khởi động và nếu Python mở PY theo mặc định, Windows sẽ mở bảng điều khiển Python. Hãy thử khởi động lại, điều đó sẽ hoạt động.

1

Baboon: Tôi đăng một chút muộn, nhưng dường như bạn đã bỏ sót phần cuối của mã ở đây.

Khi bạn mở một chìa khóa bạn cần phải thêm các quyền người dùng, nếu bạn không _winreg mặc định là "ĐỌC":

Dưới đây là một đoạn trích từ trang web python http://docs.python.org/2/library/_winreg.html#access-rights

sam là một số nguyên chỉ định mặt nạ truy cập mô tả quyền truy cập bảo mật mong muốn cho khóa. Mặc định là KEY_READ. Xem Quyền truy cập cho các giá trị được phép khác.

Dưới đây là các mã điều chỉnh:

import _winreg, webbrowser 
    key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Run',_winreg.KEY_SET_VALUE) 
    _winreg.SetValueEx(key,'pytest',0,_winreg.REG_BINARY,'C:\Users\"USERNAME"\Desktop\test.py') 
    key.Close() 
webbrowser.open('www.youtube.com') 
Các vấn đề liên quan