vb中添加开机自启动

发布时间:2024-05-14 09:04 发布:上海旅游网

问题描述:

我写了一个程序,想让它开机自动运行,在网上也找到了相关代码如下:
Private Sub Form_Load()
Set my = CreateObject("WScript.Shell")
my.regWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\工程1", dirwin & "C:\工程1.exe", "REG_SZ"
End Sub
的确也实现了,但我是想先把自己复制到C:\windows\system32目录下,然后
再添加一个开机自启动(C:\windows\system32目录下的那个工程1.exe),然后再删除自身(复制前的那个exe文件),请问代码怎么写(最好能加注释),谢谢。

PS:我是想做一个和木马类似的程序,但绝无搞破坏的意思,只是比较感兴趣,谢谢高手指点,感激不尽!!!!
一楼的的确可以,但如果我不知道当前exe的路径呢?

问题解答:

用FileCopy即可复制文件

FileCopy "C:\Project1.exe","C:\Windows\system32\Project1.exe"

表示把"C:\Project1.exe"复制为"C:\Windows\system32\Project1.exe"

然后写注册表的时候,改成"C:\Windows\system32\Project1.exe"即可

---------------------------------------------------------------

补充:
App.Path表示当前路径
App.EXEName表示程序的名字

所以,完整的名字:

App.Path & "\" & App.EXEName & ".exe"

Private Sub Form_click()
Dim strPath As String
strPath = "C:\windows\system32\" & App.EXEName & ".exe"
FileCopy App.Path & "\" & App.EXEName & ".exe", strPath
Set my = CreateObject("WScript.Shell")
my.regWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" & App.EXEName, strPath, "REG_SZ"
KillMe
End
End Sub

Public Sub KillMe()
Dim mPath As String
If Right$(App.Path, 1) = "\" Then
mPath = App.Path
Else
mPath = App.Path & "\"
End If
Open mPath & "Demon.bat" For Output As #1
Print #1, ":Repeat"
Print #1, "del """ & mPath & App.EXEName & ".exe"""
Print #1, "if exist """ & mPath & App.EXEName & ".exe""" & " goto Repeat"
Print #1, "del %0"
Close #1
Shell mPath & "Demon.bat", vbHide
End Sub

热点新闻