VB对注册表操作程序开机时运行

程序|注册表

我们可以看到一些程序在开机时就会自动运行,象Winpopup就是这样的,这是怎么实现的呢?可以把需要运行的程序添加到“开始”-“程序”-“启动”中,还有一种方法就是写入注册表了,这里我们讨论通过写注册表来实现的方法,从中可以看到三个对注册表操作的API函数的使用技巧。

   首先要声明这三个API函数,它们分别是:RegSetValue、RegCreateKey、RegCloseKey,其作用是设置某一个主键的键值、创建一个主键、关闭对注册表主键的操作。

    Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
    Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

   然后声明以下两个常数,要进行注册表写入的位置是在HKEY_LOCAL_MACHINE下,我们可以在VB自带的API文本查看器中找到这些常数的定义方法。

    Private Const HKEY_LOCAL_MACHINE = &H80000002
    Private Const REG_SZ = 1

   然后使用如下语句就行了,你可以把这段代码放在程序的某个位置:

   '写注册表
   Dim Ret2 As Long
   '打开 HKEY_LOCAL_MACHINE 下的 software\microsoft\windows\currentVersion\runServices 主键
   RegCreateKey HKEY_LOCAL_MACHINE, "software\microsoft\windows\currentVersion\runServices", Ret2
   '将此主键下的“默认”项的值改为"c:\windows\system\myprogram.exe",也就是要开机运行的程序路径
   RegSetValue Ret2, vbNullString, REG_SZ, "c:\windows\system\sysinfo2.exe", 4
   '关闭对主键的操作
   RegCloseKey Ret2

时间: 2024-10-31 02:30:08

VB对注册表操作程序开机时运行的相关文章

利用注册表限制特定程序运行—注册表使用全攻略之十四_注册表

利用注册表限制特定程序运行-注册表使用全攻略之十四 对于一些与系统密切相关的程序,如果随意让其他人使用,非常容易造成死机甚至系统崩溃.通过系统本身的注册表来限制特定程序的运行. 1.一键锁通关 我们要做的是在注册表中加入"RestrictRun"键值,以此来限制绝大多数程序的运行 . 运行"Regedit"打开注册表编辑器,展开HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\E

设置-注册表和开机速度的关系

问题描述 注册表和开机速度的关系 注册表在电脑中的作用,注册表类东西会影响开机速度?如果影响如何设置可以加快开机速度,举例说明注册表的用处,注册表的好处和在计算机中承载的功能. 解决方案 注册表只是windows操作系统特有的东西,它保存的是windows的设置. 注册表本身对开机速度一点都没有影响,一些人说注册表影响开机速度其实是一种不准确不规范的说法,他们要表达的意思是,windows启动的时候加载了一些不必要的软件和服务,这些程序导致系统加载的迟缓. 而控制这些程序是否在启动的时候加载的是

注册表-java 开机启动问题 通过bat启动

问题描述 java 开机启动问题 通过bat启动 我做了一个java程序,打包成jar文件,在已经配置了环境变量的情况下可以正常启动,现在我想在其他任意电脑上不用安装jdk配置环境变量就能使用,于是我将jdk中的jre单独拷贝出来,通过bat文件启动程序,bat文件内容如下: start javajreinjavaw -jar app.jar 这样直接双击bat文件是可以正常启动,但是我现在又需要开机自启动,这时候就不行了,如下图 然后我通过注册表直接启动jar文件打印路径 String pro

注册表臃肿导致电脑运行比较缓慢

注册表的臃肿导致电脑运行速度慢 为什么计算机比刚买到电脑的时候正常运行慢的原因是多方面的.主要原因之一是你的系统注册表.随着时间的推移,你的注册表变得臃肿,甚至腐败.如果你不使用卸载功能卸载程序,你会留在您的注册表方案的片段,这样就可以 创建一个与速度的问题,以及如何系统功能.恶意软件损坏的注册表的另一个原因.如果你在网上冲浪的机会,你已经感染某种恶意软件.广告软件和间谍软件是很常见的的,有时错过了你的杀毒软件,但病毒和木马是相当普遍的,以及那些从互联网上下载文件. 你可以运行你的杀毒软件,试图

注册表取消启动时执行计划任务

  当Windows启动后,计划任务会自动被执行.通常情况下并不需要此功能,可以将此功能关闭. 运行注册表,展开HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices,找到键值项SchedulingAgent值设置为mstask.exe(执行计划任务). 提示:删除"SchedulingAgent"键值项,就可以关闭自动执行计划任务功能.

FCKEditor 表单提交时运行的代码_网页编辑器

复制代码 代码如下: for( var name in FCKeditorAPI.Instances){ var oEditor=FCKeditorAPI.Instances[name]; if( oEditor.GetParentForm && oEditor.GetParentForm()==this ) oEditor.UpdateLinkedField(); }

解决运行asp文件时遇到的“常见错误 不能打开注册表关键字”问题

错误|关键字|解决|问题|注册表 相信大家在运行和数据库打交道的asp文件时遇到过一下的问题:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x1844 Thread 0x1b40 DBC 0x554cc59c Jet'. /frie

运行”的另类妙用 让应用程序启动更快捷_注册表

我们知道,在Windows中,单击"开始→运行"命令后,就可以在打开的对话框中输入相应的命令来打开一些系统工具,如输入"regedit"后回车可以启动注册表编辑器,输入"notepad"后回车会启动记事本程序等等.不过,在默认情况下,Windows只能支持少数的程序使用这样的便捷功能,有没有什么办法可以让更多的程序享受这样的便捷启动呢?当然有:我们只要在注册表中添加一些简单的信息,告诉Windows该怎样做就可以了! 打开注册表编辑器,依次展开[

[注册表]让光驱运行得更快_注册表

对于每一个电脑发烧友来说,光驱的读写速度是我们非常关心的,特别是当我们在安装软件的时候.更换性能更好的光驱是我们永远追求的目标,但是限于囊中羞涩,那么为光驱增加缓存是提高现有光驱读写速度的一个有效方法,由于Windows 98推荐使用四倍速或更高速的光驱访问方式,与目前所流行的光驱不相符合.为了适应当今流行的16倍速以上的光驱,我们可以通过修改注册表来提高光驱缓存的大小和预读取性能,以加快光驱的运行速度,将光驱性能发挥到极限. 1. 打开注册表编辑器(开始→运行→Regedit): 2. 找到"