在网上找了个木马小程序,如下,但是运行时抱错,说“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

解决方案 »

  1.   

    lz只能去游乐园玩旋转木马,除暴安良怕是技术太嫩了。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(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
      

  2.   

    lz你的问题那么简单我已经回答了你有空帮我看看我的问题,真正的难题:
    http://topic.csdn.net/u/20091025/18/4b062f83-9f4b-4cbf-afd4-eab073f05c40.html
      

  3.   

    byval:表示传值参数,byref:表示传址参数。
    下面是注册表操作示例。
    http://download.csdn.net/source/1741635
      

  4.   

    还真有人回答你的问题啊,无语了。
    Private Const HKEY_LOCAL_MACHINE = &H80000002
    这个你要定义下,明白么?
      

  5.   

    汗VB做木马在那个年代还要先在用户电脑上装VB虚拟机、各种控件……得,用VB打包向导来做,安装程序10MB,安装时间5分钟。
      

  6.   

    都说得差不多了.........
    '调用:
    SetMyValue HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", aa, bb
    另外你要定义两个常量:
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const REG_SZ = 1如果运行后没效果的话,你要注意两个问题:
     1.你要有修改注册表的权限(必须要有)。
     2.是否被杀毒软件把你写入的内容删除了。还有,如果你是打开注册表编辑器在那儿等着看结果的话,你在执行代码后要按一下“F5”,刷新窗口内容。
    (当然,你也别找错了“路”!)
      

  7.   

    VB5的多线程支持不稳定,所以在VB6里取消了,完全用ActiveX EXE的单元线程实现了.不过IDE与语法,没什么区别,至少我当时的应用中没发现.
      

  8.   

    的确这样,不过也有点不同。
    比如VB5的工具条、状态条是系统的,VB6的是自己的;VB6增加了不少函数,最好用的是Replace;VB6支持ADO、DHTML,还有MSDN Library。
      

  9.   

    哈哈,当时倒没注意这么多.只知道VB5编译的EXE可以直接在98下运行....然后花了心思研究如何把所有的控件组件都打包到单一文件,结果又学会了资源文件使用,哈哈哈哈.