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 在 认证
15,532 每月下载量
用于 2 crates
27KB
347 行
Auto Launch
在启动时自动启动任何应用程序或可执行文件。支持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\Run
和HKEY_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