Windows程序开机自启动(图文详解,命令快速打开目录)

开机自启动的两种方式

在Windows中想要开机自启动某些应用,可以把程序的快捷方式放到开始菜单->程序->启动目录下,但是自启动又分为用户自启动和系统自启动,前者针对单个用户,后者针对全部用户生效,用户自启动目录:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,系统自启动目录:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

用户自启动

有些人觉得找到这个目录还真麻烦,这里就讲一下如何使用命令快速的打开用户自启动的目录:
win+R键打开运行窗口,输入shell:startup,回车即可快速打开。(冒号是英文的冒号哦)
在这里插入图片描述
这就使用命令快速的打开了用户自启动的目录,然后把需要开机自启动的程序拖到这里来即可:
在这里插入图片描述
也可以老老实实的打开用户自启动目录:C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,然后把程序拖进来即可。

系统自启动

win+r 打开运行窗口,输入shell:common startup命令,
在这里插入图片描述
按回车即可打开系统的自启动目录,然后把程序拖进来即可。
在这里插入图片描述

也可以老老实实的打开系统自启动目录:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,然后把程序拖进来即可。

显示隐藏项目

有些人可能在找某个文件夹时找不到,这可能是这个文件夹是隐藏的,需要开启"隐藏的项目"这个选项 ,如下:在这里插入图片描述

总结

shell:startup #用户开机自启动(程序开机自启动只针对当前登录的用户)
shell:common startup #系统开机自启动(程序开机自启动针对所有用户,是系统级别的自启动)

### STM32H7 使用 Flash 模拟 EEPROM 的实现方法 #### 1. Flash 存储特性概述 STM32系列微控制器内部集成有Flash存储器,虽然主要用于程序代码的存放,但在特定条件下也可以用来保存少量的关键数据。然而,由于Flash具有有限次数的擦写寿命以及每次擦除操作影响较大区域的特点,在将其作为类似EEPROM用途时需特别注意管理方式[^1]。 #### 2. 数据结构设计 为了有效利用Flash空间并减少磨损,通常会采用双缓冲区策略来组织要持久化的变量集合。即创建两个相同大小的数据页(PageA 和 PageB),每一页都包含版本号(Version)、校验码(Checksum)等元信息字段以便于识别最新有效的记录位置及其完整性验证: ```c typedef struct { uint16_t version; // 版本标记,区分新旧页面 uint16_t checksum; // 校验和,用于检测数据有效性 /* 用户定义的具体参数 */ } Eeprom_Type; ``` #### 3. 初始化过程 首次启动设备时应先扫描上述两页中的内容以决定哪一个是当前活动的工作副本;如果发现两者均为空白则默认初始化PageA为初始状态,并设置相应的标志位防止重复执行此逻辑: ```c void EEPROM_Init(void){ if (Read_Page(&page_a)==FALSE && Read_Page(&page_b)==FALSE){ Write_Defaults_To_Flash(); Set_Active_Page(PAGE_A); }else{ Determine_Active_Page(); } } ``` #### 4. 写入流程优化 考虑到Flash单元一次只能整页擦除而后再按字节编程的实际限制,对于频繁更新的小量数据建议累积至一定规模再统一提交更改请求,从而降低整体功耗与延长使用寿命。具体做法是在RAM里维护一份待同步缓存表单,当满足预设条件(如达到指定数量级或经过固定时间间隔)之后才触发实际物理地址上的覆写动作。 #### 5. 安全机制保障 鉴于意外断电等因素可能导致正在执行的操作失败进而造成数据丢失风险,因此有必要引入额外的安全措施比如冗余备份或多实例轮询切换方案确保即使遇到突发状况也能恢复最近成功的事务记录。 ```c // 假定已存在函数Write_Page()完成向指定flash page写入Eeprom_Type对象的过程 HAL_StatusTypeDef Save_Data(Eeprom_Type *data_ptr){ HAL_StatusTypeDef status; // 切换到备用页面准备写入新的数据集 Toggle_Active_Page(); // 更新目标页面内的所有条目 status = Write_Page(data_ptr); // 成功后刷新对应的指示符指向下一轮迭代起点 if(status==HAL_OK){ Update_Pointer(); } return status; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值