|
baomaboy
银牌会员
    
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『楼 主』:
Microsoft 网络的文件和打印机共享→勾选/取消勾选→VBS版
使用 LLM 解释/回答一下
谢谢eech的测试和lxmxn版主的ncpa.cpl,解决了非经典开始菜单下运行出错的bug。
增加了ronin要求的自动判断勾选状态,本机测试通过,但通用性差,需要的请自行修改。
注:运行参数 i 后没有任何反应是正常状态,因为检测到已经开启共享了不需要执行,反之 参数 u 也一样。
'''NetShare_Power.VBS by baomaboy
'''支持参数 i 开启,u 关闭,如:"wscript.exe NetShare_Power.VBS i"
Dim WshSHell
On Error Resume Next
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set WshShell = WScript.CreateObject("WScript.Shell")
Set Args = WScript.Arguments
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
oReg.GetMultiStringValue HKEY_LOCAL_MACHINE,"SYSTEM\CurrentControlSet\Services\lanmanserver\Linkage","Route", arrValues
For Each strValue In arrValues
DuoString=DuoString&strValue
Next
NetShareState = InStr(DuoString,"{86522D76-E90D-4C8B-957E-FA3603378EA5}")
if Args.Count=0 then
intAnswer = MsgBox("【是】将开启“Microsoft 网络的文件和打印机共享”项,"&Chr(10)&Chr(10)&"【否】将关闭“Microsoft 网络的文件和打印机共享”项。", vbQuestion + vbYesNoCancel, "开/关Microsoft 网络的文件和打印机共享” - baomaboy")
If intAnswer = vbYes and NetShareState = 0 Then
Call Exc
end if
If intAnswer = vbNo and NetShareState <> 0 Then
Call Exc
end if
elseif LCase(Args(0)) = "i" and NetShareState = 0 then
Call Exc
elseif LCase(Args(0)) = "u" and NetShareState <> 0 then
Call Exc
end if
Sub Exc()
WshSHell.Run "control.exe ncpa.cpl"
WScript.Sleep 1000
WshSHell.SendKeys "{DOWN}{UP}"
WScript.Sleep 1000
WshSHell.SendKeys "%FR"
WScript.Sleep 1000
WshSHell.SendKeys "{DOWN}{ }"
WScript.Sleep 1000
WshSHell.SendKeys "{TAB 5}{Enter}"
WScript.Sleep 3000
WshSHell.SendKeys "%FC"
End Sub
Set WshSHell = Nothing
WScript.Quit
Last edited by baomaboy on 2008-3-24 at 11:59 PM ]
此帖被 +4 点积分 点击查看详情 评分人:【 lxmxn 】 | 分数: +4 | 时间:2007-5-13 03:35 |
|
|

好多菩提树,好多明镜台。本来好多物,好多的尘埃。 |
|
2007-5-13 01:09 |
|
|
wudixin96
银牌会员
    
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
|
2007-5-13 10:52 |
|
|
eech
高级用户
   
积分 906
发帖 346
注册 2006-7-10
状态 离线
|
|
2007-5-13 12:58 |
|
|
ronin
中级用户
  
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
|
2007-5-13 14:01 |
|
|
baomaboy
银牌会员
    
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
|
2007-5-13 14:37 |
|
|
ronin
中级用户
  
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
|
2007-5-13 14:47 |
|
|
baomaboy
银牌会员
    
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
|
2007-5-13 15:07 |
|
|
eech
高级用户
   
积分 906
发帖 346
注册 2006-7-10
状态 离线
|
|
2007-5-13 15:46 |
|
|
baomaboy
银牌会员
    
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
|
2007-5-13 16:13 |
|
|
ronin
中级用户
  
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
『第 10 楼』:
使用 LLM 解释/回答一下
baomaboy能不能改成勾选和取消勾选两个VBS?这样才方便批处理调用,在控制开通共享和关闭共享时候要分别调用才行
|
|
2007-5-13 16:39 |
|
|
baomaboy
银牌会员
    
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『第 11 楼』:
使用 LLM 解释/回答一下
Originally posted by ronin at 2007-5-13 16:39:
baomaboy能不能改成勾选和取消勾选两个VBS?这样才方便批处理调用,在控制开通共享和关闭共享时候要分别调用才行
理论上可以啊,一会儿有时间,我改一下,不用两个VBS,加个判断一个VBS就行。
|

好多菩提树,好多明镜台。本来好多物,好多的尘埃。 |
|
2007-5-13 17:01 |
|
|
baomaboy
银牌会员
    
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
|
2007-5-13 17:02 |
|
|
ronin
中级用户
  
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
|
2007-5-13 17:18 |
|
|
baomaboy
银牌会员
    
积分 1513
发帖 554
注册 2005-12-30
状态 离线
|
『第 14 楼』:
使用 LLM 解释/回答一下
Originally posted by ronin at 2007-5-13 17:18:
我觉得用两个和参数调用都可以
是可以,要么两个VBS文件,要么一个VBS文件加参数调用,
嗯 那个 “判断勾选” 可能要读一下注册表或用到WMI,你可以先试试看。我现在没时间,之后再试。
|

好多菩提树,好多明镜台。本来好多物,好多的尘埃。 |
|
2007-5-13 17:47 |
|
|
ronin
中级用户
  
积分 421
发帖 111
注册 2003-8-29
状态 离线
|
|
2007-5-14 10:10 |
|