| 
|  |  
| baomaboy 银牌会员
 
      
 
 
 
 积分 1513
 发帖 554
 注册 2005-12-30
 状态 离线
 | 
| 『楼 主』:
 快速定位文件夹→VBS版
 
使用 LLM 解释/回答一下 
 
 
快速定位文件夹→VBS版
与 快速定位注册表→VBS版  类似。
 
'========================Test Path 
'   C:\\Program Files\\Kaspersky Lab\\Kaspersky Anti-Virus 6.0\\scieplugin.dll,101  
'   D:\Program Files\QQ2007\CoralQQ.exe       
'   D:\Progra~1\QQ2007\CoralQQ.exe       
'   D:\Progra~1\QQ2007\\\\\\\            
'========================== 
 
 
 
 
 |  
                  |  好多菩提树,好多明镜台。本来好多物,好多的尘埃。
 |  |  |  2007-4-29 18:28 |  |  |  |  
| baomaboy 银牌会员
 
      
 
 
 
 积分 1513
 发帖 554
 注册 2005-12-30
 状态 离线
 | 
|  『第 2 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
Dim WshSHell,FSOOn Error Resume Next
 Set WshSHell = WScript.CreateObject("WScript.Shell")
 Set FSO = CreateObject("Scripting.FileSystemObject")
 CloseTime = 5
 FileName = WScript.ScriptName
 FileFullName = WScript.ScriptFullName
 InsPath = FSO.GetSpecialFolder(1)
 InsFullName = FSO.BuildPath(InsPath ,FileName)
 Copyright="玲珑科技"
 QQ="QQ:25926183"
 Email="Email:fty1995@163.com"
 InsTitle="快速定位文件夹"
 InsAnswer="快速定位文件夹"
 RegPath1="HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\shell\QuickTo_Folder\"
 RegValue1="定位文件夹(&W)"
 RegForm1="REG_SZ"
 RegPath2="HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\shell\QuickTo_Folder\command\"
 RegValue2="wscript.exe "&InsFullName
 RegForm2="REG_SZ"
 IF FileFullName <> InsFullName then
 intAnswer = MsgBox("【是】将“"+ InsAnswer +"”加入到网上邻居右键菜单,"&Chr(10)&Chr(10)&"【否】将“"+ InsAnswer +"”从网上邻居右键菜单删除。 ", vbQuestion + vbYesNoCancel, "安装 - "+ InsTitle +" - "+ Copyright)
 If intAnswer = vbYes Then
 WshSHell.RegWrite RegPath1,RegValue1,RegForm1
 WshSHell.RegWrite RegPath2,RegValue2,RegForm2
 FSO.GetFile(FileFullName).Copy(InsFullName)
 WshSHell.popup _
 "添加脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
 "添加注册表项:"+chr(10)+chr(34)+ RegPath1 +chr(34)+chr(10)+ _
 chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
 chr(10) & "Copyright(C)  " + Copyright +"   " & QQ &"   " + Email _
 , CloseTime, "安装成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
 end if
 If intAnswer = vbNo Then
 WshSHell.RegDelete RegPath2
 WshSHell.RegDelete RegPath1
 FSO.DeleteFile InsFullName
 WshSHell.popup _
 "删除脚本文件:"+chr(10)+InsFullName+chr(10)+chr(10)+ _
 "删除注册表项:"+chr(10)+chr(34)+ RegPath1 +chr(34)+chr(10)+ _
 chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" +chr(10)+chr(10)+ _
 chr(10) & "Copyright(C)  " + Copyright +"   " & QQ &"   " + Email _
 , CloseTime, "卸载成功 - "+ InsTitle +" - "+ Copyright, 0 + 64
 End If
 If intAnswer = vbCancel Then
 end if
 ELSE
 FPathStr=UCase(CreateObject("htmlfile").parentWindow.clipboardData.getData("text"))
 Do
 Check = True
 FPathStr = Trim(FPathStr)
 FPathStr=Replace(FPathStr,chr(10),"")
 FPathStr=Replace(FPathStr,chr(13),"")
 FPathStr=Replace(FPathStr,"\\","\")
 FPathArr=split(FPathStr,"\")
 n=0
 FPathTest=""
 if 64 < ASC(Left(FPathStr,1)) < 91 and mid(FPathStr,2,1)=":" and mid(FPathStr,3,1)="\" then
 FOR i=1 To UBound(FPathArr)
 FPathTest = FSO.BuildPath(FPathTest,FPathArr(i))
 FPathi=FSO.BuildPath(FPathArr(0)&"\",FPathTest)
 If (FSO.FolderExists(FPathi)) Then
 n=int(i)
 FPath=FPathi
 else
 n=int(i-1)
 Exit For
 end if
 NEXT
 if n < 1 then
 FolderPath=Left(FPathi,2)
 else
 FolderPath=FPath
 end if
 else
 Check = False
 FolderPath=Inputbox(vbcrlf & "由于剪贴板中的路径无效," & vbcrlf & vbcrlf & "请手工输入你要去的路径:","输入文件夹路径-快速定位文件夹",FPathStr)
 end if
 If FolderPath=False Then WScript.Quit
 FPathStr = UCase(FolderPath)
 Loop Until Check = True
 WshSHell.Run("""" & FolderPath & """")
 End If
 Set WshSHell = Nothing
 Set FSO = Nothing
 Set Args = Nothing
 WScript.Quit(0)
 
 
 Last edited by baomaboy on 2008-3-25 at 12:52 AM ] 
 
 
 | 此帖被 +6 点积分  点击查看详情 | 评分人:【 lxmxn 】 | 分数: +4 | 时间:2007-4-29 23:19 |  | 评分人:【 abczxc 】 | 分数: +2 | 时间:2007-5-3 12:56 | 
 | 
 
 
 
 
 |  
                  |  好多菩提树,好多明镜台。本来好多物,好多的尘埃。
 |  |  |  2007-4-29 18:29 |  |  |  |  
| abczxc 初级用户
 
   
 
 
 
 积分 135
 发帖 53
 注册 2007-4-28
 状态 离线
 | 
| 『第 3 楼』:
 快速定位文件夹→VBS版2
 
使用 LLM 解释/回答一下 
 
 
lz的写脚本真是犀利呀,好啊既有添加菜单,又提供删除菜单功能,真合人意
 但对于上面的脚本,有点功能和大小不成比例的感觉
 下面是利用EXPLORER.EXE /SELECT的/SELECT参数写的
 
 set wshshell = CreateObject("WScript.Shell")
 file=inputbox("Which file do you want to mark?","","C:\WINDOWS\system32\")
 if InStr(file,"\") then
 command = "EXPLORER.EXE /SELECT," & file
 wshshell.run command
 else
 msgbox "path err"
 wscript.quit
 end if
 
 
 
 
 |  |  |  2007-5-3 12:43 |  |  |  |  
| baomaboy 银牌会员
 
      
 
 
 
 积分 1513
 发帖 554
 注册 2005-12-30
 状态 离线
 | 
| 『第 4 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
首先还是要肯定一下你的感觉还是很正确的,呵呵 这里我就不在千篇一律的去解释为什么会那样了。
 呵呵 如果我是为了讲一个技巧的话,连command="EXPLORER.EXE /SELECT," & file都用不到,直接WshSHell.Run file不就行了,因为我考虑到系统不是傻瓜知道自己调用EXPLORER.EXE。如果是个网址我觉得它应该会自动调用浏览器的。我没试,你可以试试看!
 我的代码大多不是在讲一个技巧,而是在扩展一个技巧并能顺利在实际中应用。
 
 也许你还不太明白VBS也许是你没仔细看,
 删除卸载也不知是你读出来的还是使用时发现的,
 剪贴板取值不需要代码吗,
 路径字符串排错也许你没看到或没看懂,
 判断路径中的有效路径这个也许你根本不知道包含在代码中吧,
 也不知道你写出来会是什么样子,
 不过看你昨天还发消息问我进程中"C:\WINDOWS\svchost.exe与你预计的C:\WINDOWS\SVCHOST.EXE大小写不一样该怎么解决",我告诉你用LCase或者UCase函数"你到是行,说“那大小写是随机的那将有多少组合呀,有能忽略大小写的吗“
 我晕 估计这个你更写不出来了,多练些日子吧,呵呵给你推荐个师父slore,他的VBS了得。
 唉 不给你解释了 也许目前你还不能明白。
 
 Last edited by baomaboy on 2007-5-3 at 10:01 PM ]
 
 
 
 
 
 |  
                  |  好多菩提树,好多明镜台。本来好多物,好多的尘埃。
 |  |  |  2007-5-3 21:04 |  |  |  |  
| slore 铂金会员
 
        
 
 
 
 积分 5212
 发帖 2478
 注册 2007-2-8
 状态 离线
 | 
| 『第 5 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
什么了得啊。。。只是会VB,VBS能顺点。。。VB还不如认识的一个高中的朋友。。。
 
 
 我不知道你用什么,replace和instr什么的字符串之类函数都可以忽略大小写……
 
 
 
 
 |  |  |  2007-5-3 22:08 |  |  |  |  
| baomaboy 银牌会员
 
      
 
 
 
 积分 1513
 发帖 554
 注册 2005-12-30
 状态 离线
 | 
| 『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
呵呵 兄就不要谦虚了。 
那个怪我没说清楚,他发消息给我说:
 Dim WshSHell
 Set WshSHell = WScript.CreateObject("WScript.Shell"
 for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process".instances_
 if ps.executablepath="C:\WINDOWS\svchost.exe" then
 WshSHell.Run ("ntsd -c q -p "&ps.handle),vbHide
 end if
 next
 Set WshSHell = Nothing
 WScript.Quit(0)
 上面的C:\WINDOWS\svchost.exe中只要有一个大写,文件名就不同了,所就结束不了,怎么忽略大小写呀,帮帮我呀
 
 
我说加个LCase或者UCase就可以了。谁知过了会他接着问:
 Dim WshSHell
 Set WshSHell = WScript.CreateObject("WScript.Shell"
 for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process".instances_
 if ps.executablepath="C:\WINDOWS\svchost.exe" then
 WshSHell.Run ("ntsd -c q -p "&ps.handle),vbHide
 end if
 next
 Set WshSHell = Nothing
 WScript.Quit(0)
 上面的C:\WINDOWS\svchost.exe中只要有一个大写,文件名就不同了,所就结束不了,怎么忽略大小写呀,帮帮我呀
 
 用LCase或者UCase函数转换一下,好像不行呀,比如:
 C:\WINDOWS\svchost.exe
 C:\windows\svchost.exe
 C:\WINDOWS\Svchost.exe
 那将有多少组合呀,有能忽略大小写的吗
 麻烦下啦,大虾,帮我把原代码写一下,发给我,好吗
 我会感激不尽的
 
 
起因是这个帖 批处理怎么只结束相同进程中的一个呀,谁能告诉我呀 
 Last edited by baomaboy on 2007-5-3 at 10:55 PM ]
 
 
 
 
 |  
                  |  好多菩提树,好多明镜台。本来好多物,好多的尘埃。
 |  |  |  2007-5-3 22:53 |  |  |