home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / CHIP / Tipsy / CreateSendTo / createSendTo.vbs
Text File  |  2006-12-22  |  4KB  |  137 lines

  1.  
  2. Option Explicit
  3.  
  4. Dim listArgs
  5.  
  6. Dim objWSHShell
  7. Dim objShortcut
  8.  
  9. Dim zProgram
  10. Dim zName
  11. Dim zSpecialFolder
  12.  
  13. ' Klucz w Rejestrze integruj╣cy skrypt w menu kontekstowym
  14. Const constRegKey = "HKEY_CLASSES_ROOT\exefile\shell\Zintegruj w menu Wy£lij do\"
  15. Const constRegKeyFolder = "HKEY_CLASSES_ROOT\Folder\shell\Zintegruj w menu Wy£lij do\"
  16.  
  17. Const constRegKeyUninstall = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\createSendTo\"
  18.  
  19. ' Tworzymy obiekty
  20. Set objWSHShell = WScript.CreateObject("WScript.Shell")
  21.  
  22. ' Je┐eli brak argumentu (=integruj z menu)
  23. ' W innym wypadku zako±cz instalacjΩ
  24. Set listArgs = WScript.Arguments
  25.  
  26. If listArgs.Count = 0 Then
  27.  
  28.    ' Je┐eli nie ma ┐adnego parametru: Instaluj 
  29.    installSkript
  30.    
  31. Else
  32.    
  33.    zProgram = listArgs(0)
  34.    
  35.    If zProgram = "-deinstall" Then
  36.  
  37.       ' Deinstalacja skryptu
  38.       deinstallSkript
  39.    
  40.    Else
  41.  
  42.       ' Podaj folder Wy£lij do
  43.       zSpecialFolder = objWSHShell.SpecialFolders("SendTo") 
  44.  
  45.       ' Pytanie o nazwe 
  46.       zName = InputBox("Podaj nazwe elementu, kt≤ry ma siΩ znaleƒµ w menu ""Wy£lij do"" ")
  47.  
  48.             If (MsgBox("Dodaj " & zName & " do ""Wy£lij do""?", vbYesNo + vbQuestion, "Czy tak?")=vbYes) Then
  49.  
  50.          Set objShortcut = objWSHShell.CreateShortcut (zSpecialFolder & "\" & zName & ".lnk")
  51.          objShortcut.TargetPath = zProgram 
  52.          objShortcut.Save
  53.          Set objShortcut = nothing
  54.  
  55.       End If
  56.       
  57.    End If   
  58.    
  59. End If
  60.    
  61. Set listArgs = nothing
  62. Set objWSHShell = nothing
  63.  
  64. ' Koniec skryptu
  65. Wscript.Quit
  66.  
  67.  
  68.  
  69.  
  70. '
  71. ' Funkcjaon: installSkript()
  72. ' ---------------------------
  73.  
  74. Function installSkript ()
  75.  
  76.    If (MsgBox("Czy zintegrowaµ skrypt z menu kontekstowym?", vbYesNo + vbQuestion, "Instalowaµ?")=vbYes) Then
  77.    
  78.       ' Dodanie do menu pliku EXE, katalogu lub napΩdu
  79.       objWshShell.RegWrite constRegKey & "command\", """" & WScript.Fullname & """ """ & WScript.ScriptFullName & """ ""%1"""
  80.       objWshShell.RegWrite constRegKeyFolder & "command\", """" & WScript.Fullname & """ """ & WScript.ScriptFullName & """ ""%1"""
  81.  
  82.       ' Informacje o instalcji
  83.       objWshShell.RegWrite constRegKeyUninstall & "DisplayName", "VBSkrypt CreateSendTo"
  84.       objWshShell.RegWrite constRegKeyUninstall & "DisplayVersion", "2.0"
  85.       objWshShell.RegWrite constRegKeyUninstall & "HelpLink", "http://www.chip.pl"
  86.       objWshShell.RegWrite constRegKeyUninstall & "Publisher", "CHIP"
  87.       objWshShell.RegWrite constRegKeyUninstall & "UninstallString", """" & WScript.Fullname & """ """ & WScript.ScriptFullName & """ ""-deinstall"""
  88.       
  89.       ' Gotowe!
  90.       MsgBox "Skrypt """ & WScript.ScriptName & """ zosta│ dodany!"
  91.       
  92.    End If
  93.       
  94. End Function
  95.  
  96. '
  97. ' Funkcja: deinstallSkript()
  98. ' ---------------------------
  99.  
  100. Function deinstallSkript ()
  101.  
  102.    If (MsgBox("Czy usun╣µ skrypt?", vbYesNo + vbQuestion, "Usun╣µ?")=vbYes) Then
  103.    
  104.       ' Usuwanie z menu kontekstowego
  105.       objWshShell.RegDelete constRegKey & "command\"
  106.       objWshShell.RegDelete constRegKey 
  107.  
  108.       objWshShell.RegDelete constRegKeyFolder & "command\"
  109.       objWshShell.RegDelete constRegKeyFolder 
  110.       
  111.       ' Kasowanie informacji o instalacji
  112.       objWshShell.RegDelete constRegKeyUninstall 
  113.       
  114.    End If
  115.    
  116. End Function
  117.  
  118.  
  119. '
  120. ' Funkcja: RegKeyExists()
  121. ' -----------------------
  122.  
  123. Function RegKeyExists (zRegKey)
  124.  
  125.    Dim zValue
  126.  
  127.    On Error Resume Next
  128.  
  129.    zValue = objWshShell.RegRead(zRegKey)
  130.    If err.number <> 0 Then
  131.       RegKeyExists = False
  132.    Else
  133.       RegKeyExists = True
  134.    End If   
  135.  
  136. End Function 
  137.