Rem ====OQO BT/WiFi Status Changer==================== Rem ========WiFi/Bluetooth 有効/無効スクリプト======== Rem ======== by B-Driven======== Rem ================================2006/03/13======== Dim BTDevice, WiFiDevice Rem ■初期設定 Rem 以下の2点について、環境に合わせてPID_000xの部分を書き換える BTDevice = "USB\VID_1557&PID_0003" WiFiDevice = "USB\VID_1557&PID_0002" Dim WSHShell, oExec Dim strOption, strStdOut, strMessage Dim intRet Dim oRegExp, oMatch, colMatch On Error Resume Next Set WSHShell = WScript.CreateObject("WScript.Shell") Set WSHArguments = WScript.Arguments If WSHArguments.count > 0 then strOption = LCase(WSHArguments.Item(0)) Select Case strOption Case "bt" Call ChangeStatus(BTDevice, "Bluetooth") Case "wifi" Call ChangeStatus(WiFiDevice, "WiFi") Case "off" Call ChangeStatus("All Off", "All") Case "on" Call ChangeStatus("All On", "All") Case Else strMessage = "起動オプションは 'bt' 'wifi' 'on' 'off'から選択してください" End Select ' オプションなしで起動した場合は、BT, WiFiのドライバ情報を表示 Else Set oExec = WSHShell.Exec("devcon status " & """" & WiFiDevice & """") If Err.Number <> 0 then msgbox("devcon.exeの実行に失敗しました" & vbcrlf & _ "devcon.exeがパスの通ったフォルダ(C:\WindowsやC:\Windows\System32等)に" & _ "置かれているかどうか、ご確認ください" & vbcrlf & vbcrlf & "ERROR: " & Err.Number & vbcrlf & Err.Description) WScript.Quit End If Do While oExec.Status = 0 WScript.Sleep 100 Loop strStdOut = oExec.Stdout.ReadAll strMessage = "◆WiFiとして以下のデバイスを検出しました◆" & vbcrlf & vbcrlf & _ strStdOut & vbcrlf & _ "◇OQO Wifi Radioが表示されていない場合はスクリプトの修正が必要です◇" & vbcrlf & vbcrlf Set oExec = WSHShell.Exec("devcon status " & """" & BTDevice & """") Do While oExec.Status = 0 WScript.Sleep 100 Loop strStdOut = oExec.Stdout.ReadAll strMessage = strMessage & "◆Bluetoothとして以下のデバイスを検出しました◆" & vbcrlf & vbcrlf & _ strStdOut & vbcrlf & _ "◇OQO Bluetooth Radioが表示されていない場合はスクリプトの修正が必要です◇" & vbcrlf & vbcrlf Set oExec = WSHShell.Exec("devcon find " & """" & "USB\VID_1557*" & """") Do While oExec.Status = 0 WScript.Sleep 100 Loop strStdOut = oExec.Stdout.ReadAll strMessage = strMessage & "◆あなたのOQOに登録されているBT, WiFiデバイスは以下の通りです◆ " & vbcrlf & vbcrlf & _ strStdOut & vbcrlf & _ "◇WiFi…PID_0002、BT…PID_0003以外の場合はスクリプトの修正が必要です◇" End If Select Case Err.Number Case 0 msgbox strMessage, +vbInformation, "OQO BT/WiFi Status Changer" Case Else msgbox "ERROR: " & Err.Number & vbcrlf & Err.Description, +vbExclamation, "OQO BT/WiFi Status Changer" End Select Sub ChangeStatus(strDev, strDesc) Set oRegExp = New RegExp oRegExp.Global = False oRegExp.IgnoreCase = True oRegExp.Pattern = "running" Select Case strDev Case "All Off" 'all off Set oExec = WSHShell.Exec("devcon disable " & """" & BTDevice & """") Do While oExec.Status = 0 WScript.Sleep 100 Loop Set oExec = WSHShell.Exec("devcon disable " & """" & WiFiDevice & """") Do While oExec.Status = 0 WScript.Sleep 100 Loop strMessage = "すべての無線デバイスを [OFF] にしました" Case "All On" 'all on Set oExec = WSHShell.Exec("devcon enable " & """" & BTDevice & """") Do While oExec.Status = 0 WScript.Sleep 100 Loop Set oExec = WSHShell.Exec("devcon enable " & """" & WiFiDevice & """") Do While oExec.Status = 0 WScript.Sleep 100 Loop strMessage = "すべての無線デバイスを [ON] にしました" Case Else Set oExec = WSHShell.Exec("devcon status " & """" & strDev & """") Do While oExec.Status = 0 WScript.Sleep 100 Loop strStdOut = oExec.Stdout.ReadAll Set colMatch = oRegExp.Execute(strStdOut) If colMatch.Count > 0 then Set oExec = WSHShell.Exec("devcon disable " & """" & strDev & """") strMessage = strDesc & " を [OFF] にしました" Else Set oExec = WSHShell.Exec("devcon enable " & """" & strDev & """") strMessage = strDesc & " を [ON] にしました" End If Do While oExec.Status = 0 WScript.Sleep 100 Loop End Select End Sub