当前位置: 首页 > news >正文

java实现桌面程序开机自启动

问题:

最近用java写一个桌面闹钟程序,需要实现开机自启动功能

解决办法:

jna官网:https://github.com/java-native-access/jna?tab=readme-ov-file

使用jna库可以轻松实现

下载jna-5.15.0.jar和jna-platform-5.15.0.jar这两个库文件,加入到工程

下面给出是工具类

package org.lionsoul.dclock.util;import com.sun.jna.platform.win32.Advapi32Util;
import com.sun.jna.platform.win32.WinReg;public class RegistryUtil {public static void addStartup(String name, String path){Advapi32Util.registrySetStringValue(WinReg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", name, path);}public static void deleteStartup(String name){Advapi32Util.registryDeleteValue(WinReg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", name);}public static boolean isStartWithSystem(String name) {String dhRegister = getReg("Software\\Microsoft\\Windows\\CurrentVersion\\Run", name);//        String dClock = WinRegistry.getString(WinRegistry.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", name);System.out.println("isStartWithSystem dhRegister :" + dhRegister);if (dhRegister != null && dhRegister.length() > 0){return true;}return false;}public static String getReg(String key, String valueName) {String value;try {value = Advapi32Util.registryGetStringValue(WinReg.HKEY_CURRENT_USER, key, valueName);} catch (Exception e) {value = "";}return value;}}

调用的代码:

if (RegistryUtil.isStartWithSystem(__APP_NAME) ) {RegistryUtil.deleteStartup(__APP_NAME);
} else {RegistryUtil.addStartup(__APP_NAME, System.getProperty("user.dir") + "\\DHClock.cmd");
}

http://www.lryc.cn/news/457417.html

相关文章:

  • Vuex 使用实例
  • 深度分离卷积
  • JSONL 文件的检查和修订器
  • 输电线路悬垂线夹检测无人机航拍图像数据集,总共1600左右图片,悬垂线夹识别,标注为voc格式
  • 杭电合集小tips
  • Python的输入输出函数
  • 如何进行搭建与部署云主机?
  • Biomamba求职| 国奖+4篇一作SCI
  • Python 工具库每日推荐 【Pandas】
  • 电影选票选座系统|影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
  • matlab初学习记录
  • protobuf之Message
  • 【redis-06】redis的stream流实现消息中间件
  • 二、MySQL的数据目录
  • 2024.10月7~10日 进一步完善《电信资费管理系统》
  • vue2项目的路由使用history模式,刷新会导致页面404的问题
  • pytest框架之fixture测试夹具详解
  • 【浏览器】如何正确使用Microsoft Edge
  • 打印1000年到2000年之间的闰年
  • nn.Identity()
  • Java 快速排序
  • 51单片机的智能衣柜【proteus仿真+程序+报告+原理图+演示视频】
  • SAP_FI_表ACDOCA取代的表
  • 论文《OneLLM:One Framework to Align All Modalities with Language》
  • Ubuntu 22.04.4 LTS更换下载源
  • html嵌入百度地图
  • 【网络】详解TCP协议中的可靠传输
  • 【Python实例】Python读取并绘制nc数据
  • swift使用llama3.2-vision微调xray数据集
  • 学习小课堂