P.S. 文章标题最好改一下,以利搜寻功能
1.
可以用 HttpWebRequest 和 HttpWebResponse 来测试网站的回应
除此之外,在连接完成后,可以进一步取得网页 或是 作其他的 request
底下的 tryConnect 连接成功会传回 true
复制程式
Private Function tryConnect()
Dim httpReq As Net.HttpWebRequest = Net.WebRequest.Create("http://www.google.com")
Dim httpRes As Net.HttpWebResponse
httpReq.Method = "GET"
'尝试连接
Try
httpRes = httpReq.GetResponse
Catch ex As Net.WebException
MessageBox.Show(ex.Message)
Return False
End Try
'检查 StatusCode (正确的话通常是 200 = Net.HttpStatusCode.OK)
If httpRes.StatusCode = Net.HttpStatusCode.OK Then
MessageBox.Show("OK")
Return True
Else
MessageBox.Show("Oops!! Status code = " & httpRes.StatusCode)
Return False
End If
End Function
2. 最简单的办法是用 REGEX (regular expression)
第一行的 pattern 是 \[.+\][\r\n]+(.+=[^\r\n]+)[\r\n]
\[ -> [
.+ -> 任何字元
\] -> ]
[\r\n]+ -> 超过一次以上的 CrLf
[^\r\n]+ -> 一次以上的非 CrLf 的字元
用刮号 () 是为了取得想要的部分而已,即是 以下 code 中 match(i).Groups(1).Value 抓到的值
要测试 regex 有许多软体可以测试,除了维基提供的
regex 编辑器还有 Notepad++ 的插件
RegEx Helper和免费版非常好用的的
Rad Software Regular Expression Designer和不是免费版但却很高级的
Expresso其实大部分的文字编辑器搜寻部分就有 Regex 的功能 (ex. Sublime Text, Notepad++, EmEditor, gVIM, Emacs, UltraEdit, TextMate, ...)
几乎所有程式设计软体也都有内建的 Regex
复制程式
Private Function tryParse(ByVal s As String)
Dim pattern As String = "\[.+\][\r\n]+(.+=[^\r\n]+)[\r\n]" '[XXX] <CrLf> XXX=XXX <CrLf>
Dim match As System.Text.RegularExpressions.MatchCollection = System.Text.RegularExpressions.Regex.Matches(s, pattern)
If 0 <> match.Count Then '如果 match 成功
For i As Integer = 0 To match.Count - 1
Dim val As String = match(i).Groups(1).Value
MessageBox.Show(val)
Next
Return True
Else
Return False
End If
End Function
3. 参考程式码
复制程式
Private Function stopService(ByVal s As String)
'Reference: http://www.vbforums.com/showthread.php?678233-RESOLVED-Stopping-a-Service-using-VB.Net
Dim sc As New System.ServiceProcess.ServiceController
sc.ServiceName = s
sc.MachineName = Environment.MachineName
Try
If sc.Status = ServiceProcess.ServiceControllerStatus.Stopped Then '服务早就停止
Return True
Else
sc.Refresh()
sc.Stop()
sc.WaitForStatus(ServiceProcess.ServiceControllerStatus.Stopped)
Return True
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Return False
End Try
End Function
Private Function startService(ByVal s As String)
'Reference: http://www.vbforums.com/showthread.php?678233-RESOLVED-Stopping-a-Service-using-VB.Net
Dim sc As New System.ServiceProcess.ServiceController
sc.ServiceName = s
sc.MachineName = Environment.MachineName
Try
If sc.Status = ServiceProcess.ServiceControllerStatus.Running Then '服务早就在跑
Return True
Else
sc.Refresh()
sc.Start()
sc.WaitForStatus(ServiceProcess.ServiceControllerStatus.Running)
Return True
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Return False
End Try
End Function
Examples:
例如想关掉 Remote Registry 服务
可以用 Win7 的工作管理员中的服务列表查 名称是 RemoteRegistry
或是用软体
System Explorer 来查
注意 description 是 "Remote Registry" 有一个空格
而真正的 name 是 "RemoteRegistry" 没有空格
呼叫函式要用 name 而不是 description
stopService("RemoteRegistry") 来关闭服务
startService("RemoteRegistry") 来重新执行服务
处理成功函式会传回 true