在网上找了个木马小程序,如下,但是运行时抱错,说“byref参数类型不符”,
出错的地方在Private Sub Command1_Click()处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
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
Sub SetMyValue(hKey As Long, strPath As String, strValue As String, strData As String)
Dim keyHandle
Dim lResult As Long
lResult = RegCreateKey(hKey, strPath, keyHandle)
lResult = RegSetValueEx(keyHandle, strValue, 0, REG_SZ, ByVal strData, Len(strData))
lResult = RegCloseKey(keyHandle)
End SubPrivate Sub Command1_Click()
Dim aa As String
Dim bb As String
aa = Text1
bb = Text2
SetMyValue HKEY_LOCAL_MACHINE, SoftWare \ Microsoft \ Windows \ CurrentVersion \ Run, aa, bb
End Sub
出错的地方在Private Sub Command1_Click()处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
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
Sub SetMyValue(hKey As Long, strPath As String, strValue As String, strData As String)
Dim keyHandle
Dim lResult As Long
lResult = RegCreateKey(hKey, strPath, keyHandle)
lResult = RegSetValueEx(keyHandle, strValue, 0, REG_SZ, ByVal strData, Len(strData))
lResult = RegCloseKey(keyHandle)
End SubPrivate Sub Command1_Click()
Dim aa As String
Dim bb As String
aa = Text1
bb = Text2
SetMyValue HKEY_LOCAL_MACHINE, SoftWare \ Microsoft \ Windows \ CurrentVersion \ Run, aa, bb
End Sub
解决方案 »
- richtextbox1控件问题
- VB6中的控件有没有类似DOCK的属性?
- 关于testbox输入类型的判断问题!!
- 发送过来的数据中有空格,怎么办
- 问CreateObject(SQLDMO.SQLServer)的错误
- 窗体显示问题
- 请问在VB 创建一个文件一般是如何实现的?
- 我在设计窗体时,把picture控件放到另一个picture上面了?怎么把它挪到form上,也就是以form为父控件
- 如何让程序在windows启动时运行(桌面出现前),就像windows的网络登陆对话框
- 关于MDI窗体菜单的问题
- 如何在word表格中填入文字?
- 在If语句里,为什么我的程序不能选择一个正确的要求并得出结果呢?
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
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 Sub SetMyValue(ByVal hKey As Long, ByVal strPath As String, ByVal strValue As String, ByVal strData As String)
Dim keyHandle As Long
Dim lResult As Long
lResult = RegCreateKey(hKey, strPath, keyHandle)
lResult = RegSetValueEx(keyHandle, strValue, 0, REG_SZ, ByVal strData, Len(strData))
lResult = RegCloseKey(keyHandle)
End Sub Private Sub Command1_Click()
Dim aa As String
Dim bb As String
aa = Text1.Text
bb = Text2.Text
SetMyValue HKEY_LOCAL_MACHINE, "SoftWare\Microsoft\Windows\ CurrentVersion\Run", aa, bb
End Sub
http://topic.csdn.net/u/20091025/18/4b062f83-9f4b-4cbf-afd4-eab073f05c40.html
下面是注册表操作示例。
http://download.csdn.net/source/1741635
Private Const HKEY_LOCAL_MACHINE = &H80000002
这个你要定义下,明白么?
'调用:
SetMyValue HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", aa, bb
另外你要定义两个常量:
Const HKEY_LOCAL_MACHINE = &H80000002
Const REG_SZ = 1如果运行后没效果的话,你要注意两个问题:
1.你要有修改注册表的权限(必须要有)。
2.是否被杀毒软件把你写入的内容删除了。还有,如果你是打开注册表编辑器在那儿等着看结果的话,你在执行代码后要按一下“F5”,刷新窗口内容。
(当然,你也别找错了“路”!)
比如VB5的工具条、状态条是系统的,VB6的是自己的;VB6增加了不少函数,最好用的是Replace;VB6支持ADO、DHTML,还有MSDN Library。