🐛 Fixed bug
This commit is contained in:
53
internal/services/startup_service.go
Normal file
53
internal/services/startup_service.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"github.com/wailsapp/wails/v3/pkg/services/log"
|
||||
)
|
||||
|
||||
// StartupService 开机启动服务
|
||||
type StartupService struct {
|
||||
configService *ConfigService
|
||||
logger *log.LoggerService
|
||||
impl StartupImplementation
|
||||
initError error
|
||||
}
|
||||
|
||||
// StartupImplementation 开机启动实现接口
|
||||
type StartupImplementation interface {
|
||||
SetEnabled(enabled bool) error
|
||||
Initialize() error
|
||||
}
|
||||
|
||||
// NewStartupService 创建开机启动服务实例
|
||||
func NewStartupService(configService *ConfigService, logger *log.LoggerService) *StartupService {
|
||||
service := &StartupService{
|
||||
configService: configService,
|
||||
logger: logger,
|
||||
impl: newStartupImplementation(logger),
|
||||
}
|
||||
|
||||
// 初始化平台特定实现
|
||||
service.initError = service.impl.Initialize()
|
||||
|
||||
return service
|
||||
}
|
||||
|
||||
// SetEnabled 设置开机启动状态
|
||||
func (s *StartupService) SetEnabled(enabled bool) error {
|
||||
// 检查初始化是否成功
|
||||
if s.initError != nil {
|
||||
return s.initError
|
||||
}
|
||||
|
||||
// 设置系统开机启动
|
||||
if err := s.impl.SetEnabled(enabled); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 更新配置文件
|
||||
if s.configService != nil {
|
||||
s.configService.Set("general.startAtLogin", enabled)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user