home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 September / PCWorld_2004-09_cd.bin / software / vyzkuste / stehujemewin / stehujemewin.exe / pcwVLink.vbs < prev    next >
Text File  |  2004-07-07  |  7KB  |  238 lines

  1.  
  2. Dim DroppedLink(100)
  3. Dim DroppedFold(100)
  4. dim drop(200)
  5. dim ziel
  6. dim inside
  7. dim counter
  8. dim Del_List
  9. SET MyShell = Wscript.CreateObject("Wscript.Shell")
  10. SET MyFiles = CreateObject("Scripting.FileSystemObject")
  11. Set AppShell = CreateObject("Shell.Application")
  12.  
  13. on error resume next
  14. set args = WScript.Arguments
  15. if args.Count=0 then
  16.     AlleEntfernen
  17. else
  18.    for x=0 to args.count-1
  19.          err.clear
  20.         set temp=MyFiles.Getfolder(args(x))
  21.         if err.number=0 then
  22.             ok = ok + 1 
  23.             drop(ok)=args(x)
  24.         end if
  25.    next
  26. end if
  27.  
  28. on error goto 0
  29.  
  30. if ok=0 then
  31.   msgbox "pcwVLink p°ijφmß pouze slo₧ky.",," pcwVLink: Chyba"
  32.   wscript.quit
  33. end if
  34.  
  35. for x=1 to ok
  36.     if instr(drop(x),".{000") then
  37.         ldrop=ldrop+1
  38.         DroppedLink(ldrop)=drop(x)
  39.     else
  40.         fdrop=fdrop+1
  41.         DroppedFold(fdrop)=drop(x)
  42.     end if
  43. next
  44.  
  45. for x=1 to ldrop
  46.     EintragEntfernen DroppedLink(x)
  47.     if x=ldrop then
  48.     if Del_list="" then
  49.         msgbox counter & "  VLink(y) byly (logicky) odstran∞ny. " & chr(13) & "Slo₧ka(y) VLink byla(y) prßzdn(ß)Θ a proto byly odstran∞ny i fyzicky.",, "pcwVLink: Odstranit VLink(y)"
  50.     else
  51.         msgbox counter & "  VLink(y) byly (logicky) odstran∞ny. " & chr(13) & chr(13) & "Nßsledujφcφ slo₧ky VLink nebyly prßzdnΘ, a proto nemohly b²t odstran∞ny: " & Del_List,,"pcwVLink: Odstranit VLink(y)"
  52.     end if
  53.     end if
  54. next
  55.  
  56. if fdrop > 0 then
  57.     on error resume next
  58.     err.clear
  59.     Set ziel = Appshell.BrowseForFolder(0, "Vyberte cφlovou slo₧ku pro umφst∞nφ virtußlnφch odkaz∙.",  &H0001, 17)
  60.  
  61.     i=instr(ziel,":")
  62.     if i>0 then 
  63.         ziel = mid(ziel,i-1,2)
  64.     else 
  65.         ziel = ziel.ParentFolder.ParseName(ziel.Title).Path
  66.     end if
  67.  
  68.     if ziel="" then
  69.         msgbox "Provedenφ odmφtnuto." & chr(13) & "Bu∩ jste zav°eli dialogovΘ okno, " & chr(13) & "nebo se vybranß slo₧ka pro vytvo°enφ odkazu nehodφ",16," pcwVLink"        
  70.         wscript.quit
  71.     end if
  72. end if
  73.  
  74. for x=1 to fdrop
  75.     EintragNeu DroppedFold(x)
  76.     if x=fdrop then
  77.         msgbox x & " Nov²(Θ) VLink(y) byly " & ziel & " umφst∞ny." & chr(13) & "Po klepnutφ na OK se zobrazφ v²sledek v Pr∙zkumnφku."  & chr(13) & chr(13) & "VLink(y) jsou prßzdnΘ slo₧ky s Class-ID," & chr(13) & "kterΘ pouze odkazujφ na vlastnφ cφlovΘ slo₧ky." & chr(13) & "Pro odstran∞nφ takov²ch slo₧ek pou₧φvejte rovn∞₧ tento skript." & chr(13) & "Odstranφ se tφm definitivn∞ i ·daje v registru.",," pcwVLink: Nov²(Θ) VLink(y)"
  78.         myshell.run "explorer.exe /n," & ziel
  79.     end if
  80. next
  81.  
  82. '______________________________________________________________________
  83.  
  84. Sub AlleEntfernen()
  85.    i=MsgBox ("Chcete odstranit vÜechny existujφcφ VLinky?" & chr(13) & Chr(13) & "Pokud chcete odstranit pouze n∞kter² odkaz, upus¥te jej myÜφ na ikonu skriptu." & chr(13) & "Nov²(Θ) VLink(y) vytvo°φte upuÜt∞nφm po₧adovanΘ slo₧ky na ikonu skriptu.",257," pcwVLink: Odstranit vÜe")
  86.     if i<>1 then AlleAuflisten
  87.     on error resume next
  88.     counter = 0
  89.     for i=1000 to 2000
  90.         clsid="HKCR\CLSID\{00000000-00AB-FE1B-0ECC-00000000" & i & "}\"
  91.         err.clear
  92.         vlink=myshell.regread (clsid & "Shell\Open\VLink")
  93.          if err.number=0 then
  94.             counter = counter + 1
  95.             myshell.regdelete clsid & "Shell\Open\ddeexec\"
  96.             myshell.regdelete clsid & "Shell\Open\Command\"
  97.             myshell.regdelete clsid & "Shell\Open\"
  98.             myshell.regdelete clsid & "Shell\"
  99.             myshell.regdelete clsid & "DefaultIcon\"
  100.             myshell.regdelete clsid
  101.             inside=""
  102.             subfolders vlink
  103.             if inside="" then
  104.                 set try2kill=MyFiles.GetFolder(vlink)
  105.                 try2kill.delete
  106.             else
  107.                 No_Del=No_Del & chr(13) & inside
  108.             end if
  109.           end if
  110.      Next 
  111. if counter=0 then
  112.     msgbox "Neexistuje(φ) ₧ßdn²(Θ) VLink(y).",," pcwVLink: Nenφ co d∞lat ..."
  113.     wscript.quit
  114. end if
  115. if No_Del="" then
  116.     msgbox counter & "  VLink(y) byly (logicky) odstran∞ny: " & chr(13) & chr(13) & "Slo₧ka(y) VLink byla(y) prßzdn(ß)Θ a proto byly odstran∞ny i fyzicky.",, "pcwVLink: Odstranit VLink(y)"
  117. else
  118.     msgbox counter & "  VLink(y) byly (logicky) odstran∞ny. " & chr(13) & chr(13) & "Nßsledujφcφ slo₧ky VLink nebyly prßzdnΘ, a proto nemohly b²t odstran∞ny: " & No_Del,, "pcwVLink: Odstranit VLink(y)"
  119. end if
  120. wscript.quit
  121. End Sub
  122.  
  123. '______________________________________________________________________
  124.  
  125. Sub EintragEntfernen(byval vlink)
  126.     on error resume next
  127.     i=instr(vlink,"{0000000")
  128.     clsid="HKCR\CLSID\" & mid(vlink,i) & "\"
  129.     No_Ext=left(vlink,i-2)
  130.     vtrue=myshell.regread (clsid & "Shell\Open\VTrue")
  131.     i=msgbox (No_Ext & " odstranit?" & chr(13) & "Odkaz ukazuje na " & vtrue ,1, " pcwVLink: Odstranit VLink(y)")
  132.     if i=1 then 
  133.         counter = counter + 1 
  134.         myshell.regdelete clsid & "Shell\Open\ddeexec\"
  135.         myshell.regdelete clsid & "Shell\Open\Command\"
  136.         myshell.regdelete clsid & "Shell\Open\"
  137.         myshell.regdelete clsid & "Shell\"
  138.         myshell.regdelete clsid & "DefaultIcon\"
  139.         myshell.regdelete clsid
  140.         inside=""
  141.         subfolders vlink
  142.         if inside="" then
  143.             set try2kill=MyFiles.GetFolder(vlink)
  144.             try2kill.delete
  145.         else
  146.             Del_List=Del_List & "  " & inside
  147.         end if
  148.     end if
  149. End Sub
  150.  
  151. '______________________________________________________________________
  152.  
  153. Sub EintragNeu(ByVal vtrue)
  154.     on error resume next
  155.     err.clear    
  156.     counter = 1000
  157.     do
  158.         regkey="HKCR\CLSID\{00000000-00AB-FE1B-0ECC-00000000" & counter & "}\"
  159.         myshell.regread regkey
  160.         counter = counter + 1
  161.     loop while err.number=0
  162.  
  163.     endung=replace(regkey,"HKCR\CLSID\","")
  164.     endung=replace(endung,"\","")
  165.     nurname=vtrue    
  166.     
  167.     do
  168.         i=instr(nurname,"\")
  169.         nurname=mid(nurname,i+1)
  170.     loop while i > 0
  171.  
  172.     if nurname="" then nurname="Disk (" & left(vtrue,1) & ")"
  173.     vlink = ziel & "\" & nurname & "." & endung
  174.     vlink=replace(vlink,"\\","\")
  175.     err.clear
  176.     myfiles.createfolder(vlink)
  177.     if err.number > 0 then
  178.         msgbox "Po₧adovan² V-Link nelze vytvo°it.",48," pcwVLink. Chyba"        
  179.         wscript.quit
  180.     end if
  181.     myshell.regwrite regkey,"VLink","REG_SZ"
  182.     myshell.regwrite regkey & "NeverShowExt","","REG_SZ"
  183.     myshell.regwrite regkey & "Shell\","","REG_SZ"
  184.     myshell.regwrite regkey & "Shell\Open\","TrueName","REG_SZ"
  185.     myshell.regwrite regkey & "Shell\Open\VTrue",vtrue,"REG_SZ"
  186.     myshell.regwrite regkey & "Shell\Open\VLink",vlink,"REG_SZ"
  187.     myshell.regwrite regkey & "Shell\Open\Command\","explorer.exe /idlist,%I,%L","REG_SZ"
  188.     myshell.regwrite regkey & "Shell\Open\ddeexec\","[ViewFolder(" & chr(34) & "%1" & chr(34) & "," & chr(34) & VTrue & chr(34) & ",%S)]","REG_SZ"
  189.     myshell.regwrite regkey & "DefaultIcon\","shell32.dll,8","REG_SZ"
  190. End Sub
  191.  
  192. '______________________________________________________________________
  193.  
  194. Sub SubFolders(ByVal vlink)
  195.     set Folder=MyFiles.GetFolder(vlink)
  196.    set dat=Folder.Files
  197.     for each datei in dat
  198.         inside=vlink
  199.     next 
  200.  
  201.    Set MoreFolders = Folder.SubFolders
  202.      For Each AktuellerOrdner In MoreFolders
  203.           set dat=AktuellerOrdner.Files
  204.             for each datei in dat
  205.                 inside=vlink
  206.             next 
  207.           SubFolders AktuellerOrdner
  208.      Next 
  209. End Sub
  210.  
  211.  
  212. '______________________________________________________________________
  213.  
  214. Sub AlleAuflisten()
  215.     on error resume next
  216.     counter = 0
  217.     x=0
  218.     for i=1000 to 2000
  219.         clsid="HKCR\CLSID\{00000000-00AB-FE1B-0ECC-00000000" & i & "}\"
  220.         err.clear
  221.         vlink=myshell.regread (clsid & "Shell\Open\VLink")
  222.         y=instr(vlink,"{0000")
  223.         vlink=left(vlink,y-2)
  224.          if err.number=0 then
  225.             counter = counter + 1
  226.             x = x + 1
  227.             All_List=All_List & chr(13) & vlink
  228.         end if
  229.     if x > 25 then
  230.         x = 0
  231.         msgbox all_list,," pcwVLink: Seznam"
  232.         all_list=""
  233.     end if
  234.     next
  235. if x > 0 then msgbox all_list,," pcwVLink: Seznam"
  236. wscript.quit
  237. end sub
  238.