在Windows XP中有一個錯誤,其效果需要在Explorer進程中調用Status謂詞。由於WScript/CScript不是資源管理器進程的子節點,任何嘗試調用狀態動詞的嘗試都是徒勞的,儘管沒有任何明顯的錯誤。由於以下腳本已在Vista x64中進行測試和工作,因此該錯誤在更高版本中似乎已得到修復。
Set objShell = CreateObject("Shell.Application")
Set objShellFolder = objShell.Namespace(0).ParseName("::{7007ACC7-3202-11D1-AAD2-00805FC1270E}").GetFolder
For Each objShellFolderItem in objShellFolder.Items
Set colShellFolderItemVerbs = objShellFolderItem.Verbs
For Each objShellFolderItemVerb in colShellFolderItemVerbs
strVerb = objShellFolderItemVerb.Name
If (strVerb = "C&onnect/Disconnect") Then
objShellFolderItem.InvokeVerb("Properties")
objShellFolderItem.InvokeVerb("Status")
MsgBox "Press OK to close and exit"
WScript.Quit(0)
End If
Next
Next
選項1
這是否意味着你的運氣嗎?不是完全。我有兩個不同的建議給你。第一個使用一點小技巧。狀態是任何網絡連接處於連接狀態時的默認操作。打開您的網絡連接,右鍵單擊想要監視的連接並選擇創建快捷方式。您可以在任何地方放置快捷方式。默認情況下,它將在您的桌面上被命名爲「無線網絡連接 - Shortcut.lnk」。在命令行中鍵入或通過腳本中的Run或Exec方法進行輸入,將完成您所需的操作。我試圖通過腳本來完成這些工作,但遇到了問題tryint來自動創建快捷方式動詞。
選項2
第二個選擇是也有點一種解決方法,但如果你的3G連接使用撥號網絡可能工作。命令行rundll32.exe rnaui.dll,RnaDial {name of connection to establish}
將打開要連接的對話框,但是,如果已連接,則會打開連接的「狀態」對話框。然後,您可以嘗試這樣的腳本:
Set objShell = CreateObject("Shell.Application")
Set objShellFolder = objShell.Namespace(0).ParseName("::{7007ACC7-3202-11D1-AAD2-00805FC1270E}").GetFolder
For Each objShellFolderItem in objShellFolder.Items
strConnection = objShellFolderItem.Name
strCommandLine = "rundll32.exe rnaui.dll,RnaDial " & Chr(34) & strConnection & Chr(34)
Set colShellFolderItemVerbs = objShellFolderItem.Verbs
For Each objShellFolderItemVerb in colShellFolderItemVerbs
strVerb = objShellFolderItemVerb.Name
If (strVerb = "C&onnect/Disconnect") Then
objShellFolderItem.InvokeVerb("Properties")
CreateObject("WScript.Shell").Run strCommandLine
MsgBox "Press OK to close and exit"
WScript.Quit(0)
End If
Next
Next
選項3
最後一個選項是使用WMI來顯示你的網絡連接的信息。這是一種更傳統的腳本方法。
無論如何,我希望這可以幫上忙。不要忘記根據需要更改動詞。他們確實從一個版本的Windows改變到下一個版本。
我試過_Option 1_,但仍然是同樣的問題。它從另一個Explorer進程啓動時不會顯示。就像你說的那個bug一樣。有沒有關於這個bug的詳細討論?我搜索了微軟網站,但找不到任何。 對於_Option 2_,不幸的是,它僅適用於撥號網絡。我還沒有測試過,但我需要所有類型的連接/啓用網絡的狀態。 至於_Option 3_,這不是我所需要的。抱歉。 但是,謝謝你讓我知道那個bug,所以我至少知道這不是我身邊的錯誤。 – Jay 2012-07-13 02:20:12