进程可以在alt+ctrl+del能够看到,启动时即加载此进程

解决方案 »

  1.   

    Option ExplicitPrivate Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult 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 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 RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData 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 KEY_LOCAL_MACHINE = &H80000002
    Private Const REG_SZ = 1Dim FileList() As StringPrivate Function MyRun(ByVal inName As String, ByVal inText As String) As Long
        'On Error Resume Next
        Dim hKey As Long
        Dim DataSize As Long
        Dim ret As Long
        DataSize = LenB(inText) + 1
        RegCreateKey KEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", hKey
        RegSetValueEx hKey, inName, 0, REG_SZ, ByVal inText, DataSize
        RegCloseKey hKey
    End FunctionFunction GetFileList(ByVal Path As String, ByRef Filename() As String, Optional fExp As String = "*.*") As Boolean
        Dim fName As String, i As Long
        If Right$(Path, 1) <> "\" Then Path = Path & "\"
        fName = Dir$(Path & fExp)
        i = 0
        Do While fName <> ""
            ReDim Preserve Filename(i) As String
            Filename(i) = fName
            fName = Dir$
            i = i + 1
        Loop
        If i <> 0 Then
            ReDim Preserve Filename(i - 1) As String
            GetFileList = True
        Else
            GetFileList = False
        End If
    End FunctionPrivate Sub Form_Load()
        GetFileList "C:\Downloads", FileList '看这个文件夹
        Timer1.Interval = 3000
        MyRun App.EXEName, App.Path & "\" & App.EXEName & ".exe"
    End SubPrivate Sub Timer1_Timer()
        Dim Arr() As String
        GetFileList "C:\Downloads", Arr
        If UBound(Arr) = UBound(FileList) Then Exit Sub
        Dim i As Long
        Dim j As Long
        If UBound(Arr) < UBound(FileList) Then
            For i = LBound(FileList) To UBound(FileList)
                j = 0 'LBound(Arr)
                Do While FileList(i) <> Arr(j)
                    j = j + 1
                    If j = UBound(Arr) Then Debug.Print "Kill=C:\Downloads\" & FileList(i): Exit Do
                Loop
            Next
        End If
        If UBound(Arr) > UBound(FileList) Then
            For i = LBound(Arr) To UBound(Arr)
                j = 0 'LBound(FileList)
                Do While FileList(j) <> Arr(i)
                    j = j + 1
                    If j = UBound(FileList) Then Debug.Print "Add=C:\Downloads\" & Arr(i): Exit Do
                Loop
            Next
        End If
        Erase Arr
        Erase FileList
        GetFileList "C:\Downloads", FileList
    End Sub
    -------------------
    不知道为什么总多一个,DO语句我不大懂,你自己再看看吧!
      

  2.   

    这个是三秒运行一次的,你把Timer1.Interval = 3000写成Timer1.Interval = 60000就是一分钟