我已经完成了 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/