RunOnce.exe 源代码
Private Declare Function GetExitCodeProcess Lib “kernel32” (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function OpenProcess Lib “kernel32” (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Const PROCESS_QUERY_INformATION = &H400
Private Const STILL_ACTIVE = &H103
Dim pidNotepad As Long
Dim hProcess As Long
Dim WinDir As String, SystemDrive As String

Private Sub Form_Load()
Dim CDOpen As String
Dim ExeName(3) As String, Hide(3) As String, KillIt(3) As String
Dim ServOpt As String, ServOptPath As String
Dim temp As String
Dim Path As String, Exe As String
Dim i As Integer, j As Integer
Me.Visible = False
SystemDrive = Environ(“systemdrive”)
WinDir = Environ(“windir”)
AllUsersProFile = Environ(“ALLUSERSPROFILE”)
‘读取参数
If Dir(WinDir & “config.esp”) <> “” Then
Open WinDir & “config.esp” For Input As #1
Line Input #1, CDOpen
For i = 2 To 18
   Line Input #1, temp
Next
For i = 1 To 3
   Line Input #1, ExeName(i)
   Line Input #1, Hide(i)
   Line Input #1, KillIt(i)
Next
Line Input #1, ServOpt
Line Input #1, ServOptPath
Close #1
‘弹出光盘
If CDOpen = “True” And Dir(WinDir & “system32CDOpen2.exe”) <> “” Then
   Shell WinDir & “system32CDOpen2.exe”
End If
‘运行外接程序
For i = 1 To 3
   If ExeName(i) <> “” And Dir(ExeName(i)) <> “” And _
   (LCase(Right(ExeName(i), 3)) = “exe” Or LCase(Right(ExeName(i), 3)) = “bat” Or LCase(Right(ExeName(i), 3)) = “cmd”) Then
     If Hide(i) = “True” Then
     pidNotepad = Shell(ExeName(i), vbHide)
     Else
     pidNotepad = Shell(ExeName(i), vbNormalFocus)
     End If
     hProcess = OpenProcess(PROCESS_QUERY_INformATION, False, pidNotepad)
     Do
       GetExitCodeProcess hProcess, lngExitCode
       DoEvents
     Loop While lngExitCode = STILL_ACTIVE
     If KillIt(i) = “True” Then
     Kill ExeName(i)
     End If
   End If
Next
End If
‘彻底关闭系统还原
If Dir(WinDir & “temphy.vbs”) <> “” Then
Shell “rundll32.exe url.dll,FileProtocolHandler ” & WinDir & “temphy.vbs”, 1
End If
‘清除多余的SATA驱动服务
If Dir(WinDir & “tempclean.exe”) <> “” Then
pidNotepad = Shell(WinDir & “tempclean.exe /q /w /d”, vbHide)
hProcess = OpenProcess(PROCESS_QUERY_INformATION, False, pidNotepad)
Do
     GetExitCodeProcess hProcess, lngExitCode
     DoEvents
Loop While lngExitCode = STILL_ACTIVE
End If
‘清理临时文件
If Dir(WinDir & “temphy.vbs”) <> “” Then Kill WinDir & “temphy.vbs”
If Dir(WinDir & “tempclean.exe”) <> “” Then Kill WinDir & “tempclean.exe”
If Dir(WinDir & “config.esp”) <> “” Then Kill WinDir & “config.esp”
If Dir(WinDir & “REG_Optimize.reg”) <> “” Then Kill WinDir & “REG_Optimize.reg”
‘If ServOptPath <> WinDir & “Serv_Optimize.exe” And Dir(ServOptPath) <> “” Then Kill WinDir & “Serv_Optimize.exe”
If Dir(WinDir & “AllUsrRun.exe”) <> “” Then Kill WinDir & “AllUsrRun.exe”
‘运行服务优化调整程序
If ServOpt = “True” And ServOptPath <> “” And Dir(ServOptPath) <> “” Then
For i = Len(ServOptPath) To 1 Step -1
   If Mid(ServOptPath, i, 1) = “” Then
     j = i
     Exit For
   End If
Next
Path = Mid(ServOptPath, 1, j)
‘Exe = Mid(ServOptPath, j + 1, Len(ServOptPath))
Exe = “XP服务优化调整”
If Dir(WinDir & “system32SHORTCUT.EXE”) <> “” Then
   Shell WinDir & “system32SHORTCUT.EXE -f -t ” & Chr(34) & ServOptPath & Chr(34) & ” -n ” & Chr(34) & AllUsersProFile & “「开始」菜单程序” & Exe & Chr(34) & ” -d ” & Chr(34) & Path & Chr(34), vbHide
End If
Shell ServOptPath, vbNormalFocus
Else
Kill WinDir & “Serv_Optimize.exe”
End If
Call KillMe
End Sub

Private Sub KillMe()
Dim FullAppName As String
FullAppName = App.Path & “” & App.ExeName & “.exe”
Open “esp_del.bat” For Output As #1
Print #1, “@ECHO OFF”
Print #1, “:START”
Print #1, “IF NOT EXIST ” & Chr(34) & FullAppName & Chr(34) & ” GOTO FILENOTFOUND”
Print #1, “DEL ” & Chr(34) & FullAppName & Chr(34)
Print #1, “GOTO START”
Print #1, “:FILENOTFOUND”
Print #1, “DEL esp_del.bat”
Print #1, “CLS”
Print #1, “EXIT”
Close #1
Shell “esp_del.bat”, vbHide
End
End Sub

发表评论

电子邮件地址不会被公开。 必填项已用*标注