ActiveX是一种组件技术,在Windows系统中,注册在注册表里边,被其它的应用程序调用。ActiveX自启动的方式是将应用程序链接到相应的注册表位置来完成自启动的功能。
ActiveX被注册在注册表中,具体的位置是:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components\ 以CLASSID的方式存储在该键值下,目标CLASSID也称为GUID(全局唯一标识符),在这个键值下边存在一个StubPath的子健,这个子健的内容就是在开机的时候需要自启动的应用程序,我们在实现的过程中也是通过写注册表的方式在这个键值下边写入目标应用程序的路径(在实现的时候可以使用GUID生成工具或者可以在已经存在的GUID上略加修改,就可以使用)
实现例程
实现结果:
需要注意的是,在第一次运行成功之后,该注册表键值会被系统自动复制到HKEY_CURRENT_USER项下,这样在第二次重启的时候使用ActiveX来自启动的程序就不会被启动。因此,在程序的最后可以将已经注册的注册表值删除掉,否则在下次运行的时候就不会自启动。
注:
1、在网上看到很多人在实现的过程中都会将,目标程序复制到系统目录下之后再实现自启动,尝试使用任意路径发现也可以实现
2、在进行注册表操作的时候,需要注意编码方式,在实现的过程中,因为编码方式的问题导致,设置StubPath值的时候,发现会变成乱码,这个也是需要注意的。
3、在运行的时候,可以将程序运行的权限提升至管理员权限,在属性里边设置,UAC级别设置为requireAdministrator