5

私はPyQtを使用して、Windowsで設定されている場合、起動時に起動できるアプリケーションを開発しています。

私はこのソフトウェアを PyInstaller と共に単一の実行可能ファイルとしてリリースしています。適切な「インストーラー」がありません。

これを達成するための最良の方法はどれですか? ( = 起動時に開始)

考えられる解決策は、スタートアップ フォルダーにリンクを追加することですが、ソフトウェアから実行する必要があります。可能ですか? 他の方法?

スタートアップ フォルダへのユニバーサル パスはありますか? いくつかの権利の問題がありますか?

4

2 に答える 2

7

このコードを試してください(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_()
于 2011-05-31T11:51:44.843 に答える
4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] の下に、任意の名前と値「path_to_your_exec」のレジストリ キーを追加できます。これにはローカル管理者権限が必要ですが、すべてのユーザーに対して機能します。[HKEY_CURRENT_USER] で始まる同じキーは、管理者権限を必要としませんが、現在のユーザーに対してのみ機能します。そのレジストリ パスは、win2k..win7 と同じです。

于 2011-05-31T10:26:55.210 に答える