PyQt: лучший способ сделать трюк «начать при загрузке» для моей программы в Windows

Я использую PyQt для разработки приложения, которое в Windows, если оно установлено в настройках, должно начинаться с загрузки.

Я выпускаю это программное обеспечение с PyInstaller как один исполняемый файл; У меня нет надлежащего «установщика».

Каков наилучший способ достичь этого? (= запуск при загрузке)

Возможным решением является добавление ссылки в папку автозагрузки, но я должен сделать это из программного обеспечения: это возможно? Другие способы?

Существует универсальный путь к папке автозагрузки? Могу ли я иметь проблему с некоторыми правами?

попробуйте этот код (он работает для меня с py2exe):

import sys from PyQt4.QtCore import QSettings from PyQt4.QtGui import (QApplication, QWidget, QCheckBox, QPushButton, QVBoxLayout) RUN_PATH = "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run" class MainWidget(QWidget): def __init__(self,parent=None): super(MainWidget, self).__init__(parent) self.settings = QSettings(RUN_PATH, QSettings.NativeFormat) self.setupUi() # Check if value exists in registry self.checkbox.setChecked(self.settings.contains("MainWidget")) def setupUi(self): self.checkbox = QCheckBox("Boot at Startup", self) button = QPushButton("Close", self) button.clicked.connect(self.close) layout = QVBoxLayout(self) layout.addWidget(self.checkbox) layout.addWidget(button) def closeEvent(self, event): if self.checkbox.isChecked(): self.settings.setValue("MainWidget",sys.argv[0]); else: self.settings.remove("MainWidget"); event.accept() if __name__ == '__main__': app = QApplication(sys.argv) w = MainWidget() w.show() app.exec_() 

Вы можете добавить раздел реестра в раздел [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run], с любым именем и значением "path_to_your_exec". это потребует права локального администратора, но будет работать для всех пользователей. Тот же ключ, но начиная с [HKEY_CURRENT_USER], не потребует прав администратора, но будет работать только для текущего пользователя. Этот путь реестра одинаковый для win2k..win7