Crates.io | auto-launch |
lib.rs | auto-launch |
version | 0.5.0 |
source | src |
created_at | 2022-01-14 19:10:47.426223 |
updated_at | 2023-09-10 10:25:41.649184 |
description | Auto launch any application or executable at startup. Supports Windows, macOS, and Linux. |
homepage | |
repository | https://github.com/zzzgydi/auto-launch.git |
max_upload_size | |
id | 514005 |
size | 37,856 |
Auto launch any application or executable at startup. Supports Windows, Mac (via AppleScript or Launch Agent), and Linux.
How does it work? See Teamwork/node-auto-launch for details.
If you find any bugs, welcome to PR or issue.
The parameters of AutoLaunch::new
are different on each platform.
See the function definition or the demo below for details.
AutoLaunchBuilder
helps to eliminate the constructor difference on various platforms.
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();
}
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 supports two ways to achieve auto launch (via AppleScript or Launch Agent).
When the use_launch_agent
is true, it will achieve by Launch Agent, otherwise by AppleScript.
Note:
app_path
should be a absolute path and exists. Otherwise, it will cause an error when enable
.app_name
should be same as the basename of app_path
, or it will be corrected automatically.--hidden
and --minimized
in args
are valid, which means that hide the app on launch.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();
}
On Windows, it will add registry entries under \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
and \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run
.
It will also detect if startup is disabled inside Task Manager or the Windows settings UI, and can re-enable after being disabled in one of those.
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 License. See the License file for details.
The project is based on node-auto-launch.