#启动 #启动 #登录 #登录项

auto-launch

在启动时自动启动任何应用程序或可执行文件。支持Windows、macOS和Linux。

6个版本 (重大更改)

0.5.0 2023年9月10日
0.4.0 2022年9月10日
0.3.0 2022年8月24日
0.2.0 2022年1月15日
0.1.1 2022年1月14日

#162认证

Download history 2490/week @ 2024-04-23 1957/week @ 2024-04-30 2317/week @ 2024-05-07 3757/week @ 2024-05-14 2482/week @ 2024-05-21 4796/week @ 2024-05-28 1734/week @ 2024-06-04 2062/week @ 2024-06-11 2160/week @ 2024-06-18 2400/week @ 2024-06-25 3264/week @ 2024-07-02 3403/week @ 2024-07-09 2551/week @ 2024-07-16 2723/week @ 2024-07-23 4285/week @ 2024-07-30 5381/week @ 2024-08-06

15,532 每月下载量
用于 2 crates

MIT 许可证

27KB
347

Auto Launch

Crates.io API reference License

在启动时自动启动任何应用程序或可执行文件。支持Windows、Mac(通过AppleScript或启动代理)和Linux。

它是如何工作的?请参阅Teamwork/node-auto-launch获取详细信息。

如果您发现任何错误,请欢迎PR或问题报告。

用法

在不同平台上,AutoLaunch::new的参数不同。请参阅函数定义或下面的示例以获取详细信息。

AutoLaunchBuilder有助于消除各个平台上的构造函数差异。

use auto_launch::*;

fn main() {
    let auto = AutoLaunchBuilder::new()
        .set_app_name("the-app")
        .set_app_path("/path/to/the-app")
        .set_use_launch_agent(true)
        .build()
        .unwrap();

    auto.enable().unwrap();
    auto.is_enabled().unwrap();

    auto.disable().unwrap();
    auto.is_enabled().unwrap();
}

Linux

use auto_launch::AutoLaunch;

fn main() {
    let app_name = "the-app";
    let app_path = "/path/to/the-app";
    let auto = AutoLaunch::new(app_name, app_path, &[] as &[&str]);

    // enable the auto launch
    auto.enable().is_ok();
    auto.is_enabled().unwrap();

    // disable the auto launch
    auto.disable().is_ok();
    auto.is_enabled().unwrap();
}

macOS

macOS支持两种方式来实现自动启动(通过AppleScript或启动代理)。当use_launch_agent为true时,将通过启动代理实现,否则将通过AppleScript。

注意:

  • app_path应该是绝对路径并且存在。否则,在enable时将导致错误。
  • 如果使用AppleScript,则app_name应与app_path的基本名称相同,否则将自动更正。
  • 如果使用AppleScript,则args中的--hidden--minimized是有效的,这意味着在启动时隐藏应用程序。
use auto_launch::AutoLaunch;

fn main() {
    let app_name = "the-app";
    let app_path = "/path/to/the-app.app";
    let auto = AutoLaunch::new(app_name, app_path, false, &[] as &[&str]);

    // enable the auto launch
    auto.enable().is_ok();
    auto.is_enabled().unwrap();

    // disable the auto launch
    auto.disable().is_ok();
    auto.is_enabled().unwrap();
}

Windows

在Windows上,它将在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run下添加注册表项。

它还会检测启动是否在任务管理器或Windows设置UI中禁用,并在其中一个被禁用后重新启用。

use auto_launch::AutoLaunch;

fn main() {
    let app_name = "the-app";
    let app_path = "C:\\path\\to\\the-app.exe";
    let auto = AutoLaunch::new(app_name, app_path, &[] as &[&str]);

    // enable the auto launch
    auto.enable().is_ok();
    auto.is_enabled().unwrap();

    // disable the auto launch
    auto.disable().is_ok();
    auto.is_enabled().unwrap();
}

许可证

MIT许可证。有关详细信息,请参阅许可证文件

鸣谢

该项目基于node-auto-launch

依赖关系

~0.4–1.2MB
~23K SLoC