|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『楼 主』:
快速定位文件夹→VBS版
快速定位文件夹→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 楼』:
Quote: | Dim WshSHell,FSO
On 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
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 楼』:
首先还是要肯定一下你的感觉还是很正确的,呵呵 这里我就不在千篇一律的去解释为什么会那样了。
呵呵 如果我是为了讲一个技巧的话,连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 楼』:
什么了得啊。。。只是会VB,VBS能顺点。。。
VB还不如认识的一个高中的朋友。。。
我不知道你用什么,replace和instr什么的字符串之类函数都可以忽略大小写……
|
|
2007-5-3 22:08 |
|
|
baomaboy
银牌会员
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『第
6 楼』:
呵呵 兄就不要谦虚了。
那个怪我没说清楚,他发消息给我说:
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 |
|
|