Windows注册表,如何添加您的 native 程序用于启动执行?

标签 windows registry native ntdll

我已经完成了 Windows 的 Native 程序。

(我使用 #pragma comment(linker, "/SUBSYSTEM:NATIVE") 进行编译。

我想将我的程序添加到自动执行列表中,我该怎么做?

我的确切问题是:

1).我怎样才能在 Windows 注册表中做到这一点(我已经用 google 搜索过 BootExecute/SetupExecute 表,但安装程序是空的,BootExecute 只有: *autocheck autochk ** )。所以我对空表感到困惑(因为,如果它是空的,那么Windows中另一个自动执行程序在哪里,ntdll.dll会加载哪个?)

2).可执行程序的版本是否重要:对于 32/64 位系统

我把它放在%windir%\system32中,但还有%windir%\WOW64文件夹。

我应该在注册表中突出显示此详细信息,还是 Windows 从两个文件夹加载每个驱动程序,然后在 taskmgr 中将它们突出显示为 *32 或 64 位程序?

3).还有其他方法可以做到这一点吗?

最佳答案

1) 您需要将其放置到 BootExecute 注册表值中。它是一个多字符串值,您需要保留已有的任何字符串(通常只有“autocheck autochk *”),并且只需附加您的程序名称(不带扩展名)。

2) 您应该为 32 位操作系统编译 32 位二进制文​​件,为 64 位操作系统编译 64 位二进制文​​件。二进制文件应放置在 %windir%\system32

3)据我所知,这是唯一的方法

PS - 例如,安装具有引导碎片整理功能的任何文件系统或注册表碎片整理程序,启用它,并查看它如何修改 BootExecute。

关于Windows注册表,如何添加您的 native 程序用于启动执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164724/

相关文章:

java - 使用 ElasticSearch 的 TrasnsportClient 获取 'No Node Available Exception'

java - 无法用.so文件解析相应的JNI函数

Windows 批处理文件 - 将环境变量插入可执行调用

c++ - 我怎样才能让我的服务器多线程?

c++ - 使用 C++ 更改注册表值? (系统命令失败)

java - OpenCV 中 NativeCameraView 和 JavaCameraView 的区别

Java 不会在应用程序关闭时释放所有资源

windows - 如何使用命令行卸载 Apache

winapi - 有没有办法监控注册表的变化?

c++ - Windows 10 中的注册表权限