我想让我的程序运行一次以后,每次开机都自动运行我的程序。(不是手动改注册表)
解决方案 »
- 如何检测一个文件夹里是否有文件夹?
- 模仿OutLook垂直菜单超酷控件及示例
- SQL网络数据库连接问题???
- 谁用过 Microsoft Script Control 啊?这个怎么用啊?
- WebBrowser1处理速度跟不上循环的问题。
- 我用ActiveMovie控件播放VCD文件(*.Dat),我想去掉用户的可控制能力...
- 老板让我写QS9000的收货和退货建立和查询的文档文件。我不会!!!!急死了!!!!谁能帮帮我??给我个例子??我给100分??
- 如何定义一个串口类型,源代码发上,求解
- 关于vb数据库和access 2000的编程问题
- 超高分!答对了以后还会加分的!!!!!!!!!!!!!!!!
- 春节快乐!代码共享:位运算的模块(LoWord、HiWord、取得RGBA分量……)
- 有一句SQL语句我不会写!请各位帮帮忙!
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const REG_SZ = 1 ' Unicode nul terminated string
Private Const HKEY_CURRENT_USER = &H80000001
private sub form_load()
test=app.path & "\" & app.exename & ".exe" '取得执行文件的路径
call regcreatekey(hkey_current_user,key1) '新建一个子键
call regsetvalueex(key1,"自动启动",0&,reg_sz,byval test,len(test)+1)
call regclosekey(key1)
end sub
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Const REG_SZ = 1 ' Unicode nul terminated string
Public Const HKEY_LOCAL_MACHINE = &H80000002'-------------here in another module---------------
Private Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String)
Dim Keyhand As Long
Dim r As Long, i As Integer, StrLen As Long
For i = 1 To Len(strData)
If Asc(Mid$(strData, i, 1)) < 0 Then StrLen = StrLen + 2
If Asc(Mid$(strData, i, 1)) >= 0 Then StrLen = StrLen + 1
Next i
r = RegOpenKey(hKey, strPath, Keyhand)
r = RegSetValueEx(Keyhand, strValue, 0, REG_SZ, ByVal strData, StrLen)
r = RegCloseKey(Keyhand)
End Sub
Public Sub SetAutoRun(Enable As Boolean,RunName as String)
Dim ExeName As String
ExeName = App.Path + "\" + App.ExeName + ".exe auto"
If Enable Then
Call SaveString(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", RunName, ExeName)
Else
Call SaveString(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", RunName, "")
End If
End Sub
然后调用SetAutoRun([True or False],RunName)
来控制自动启动开或关,Runname是注册表中你的值,用你的软件名就行了。