整体思路是利用第三方平台,传递CMD的相关命令,然后Windows获取后执行就行了。
去巴法科技&巴法云-巴法设备云-巴法物联网云平台注册一个账户,控制台添加一个项目,然后记录下名称。左上角有你注册的密钥也一起复制下来,替换下面的代码。
然后利用iPhone的快捷指令,添加通过网页返回数据的方式:https://apis.bemfa.com/va/getpushmsg?uid=你的密钥&topic=对应的项目名称&type=3&msg=相关的cmd代码&wemsg=1
Imports System.IO
Imports System.Net
'安装Newtonsoft
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Public Class Form1
Dim showi As Integer
Dim topic As String '添加的设备名称
Dim cmd As String
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dim msg As String
Static i As Integer
Dim cmdlog As String
Try
Dim request As HttpWebRequest = WebRequest.Create("https://apis.bemfa.com/va/getmsg?uid=你的令牌&topic=" & topic & "&type=3")
request.Method = "GET"
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
msg = sr.ReadToEnd
'把P定义为Object然后用ctype将JsonConvert.DeserializeObject(json字符串)弄出来的东西转换成JObject,就可以得到Json对象了
Dim p As Object = CType(JsonConvert.DeserializeObject(msg), JObject)
Dim str As String = ""
If i <> Val(p("data")(0)("unix").ToString) Then
i = Val(p("data")(0)("unix").ToString)
str = ""
str = p("data")(0)("msg").ToString
If InStr(str, "sendT") = 0 Then '确定是需要执行的而不是返回信息
RichTextBox1.Text = str & vbCrLf & RichTextBox1.Text
cmdlog = runCmd(str)
sendT("sendT:" & str)
sendT("sendT命令返回数据:" & cmdlog)
End If
End If
Catch ex As Exception
RichTextBox1.Text = ex.ToString & vbCrLf & RichTextBox1.Text
End Try
End Sub
Public Function runCmd(ByVal strCMD As String) As String
Dim p As New Process
With p.StartInfo
.FileName = "cmd.exe"
.Arguments = "/c " + strCMD
.UseShellExecute = False
.RedirectStandardInput = True
.RedirectStandardOutput = True
.RedirectStandardError = True
.CreateNoWindow = True
End With
p.Start()
runCmd = p.StandardOutput.ReadToEnd()
p.Close()
End Function
Public Function sendT(ByVal SRTtext As String) As String
topic = My.Computer.FileSystem.ReadAllText(Application.StartupPath & "\topic.txt")
Me.Text = topic
Dim request As HttpWebRequest = WebRequest.Create("https://apis.bemfa.com/va/getpushmsg?uid=你的令牌&topic=" & topic & "&type=3&msg=" & SRTtext & "&wemsg=" & SRTtext)
request.Method = "GET"
Dim sr As StreamReader = New StreamReader(request.GetResponse().GetResponseStream)
sendT = sr.ReadToEnd
End Function
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim msg As String
msg = sendT("0")
Dim p As Object = CType(JsonConvert.DeserializeObject(msg), JObject)
If Trim(p("message").ToString).ToUpper = "OK" And Trim((p("data").ToString)) = "0" Then
Timer1.Enabled = True
RichTextBox1.Text = "通讯正常,启动监控"
End If
End Sub
Private Sub 显示ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 显示ToolStripMenuItem.Click
showi = 1
Me.Show()
End Sub
Private Sub 退出ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 退出ToolStripMenuItem.Click
End
End Sub
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Me.Hide()
e.Cancel = True
End Sub
Private Sub Form1_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged
If showi = 0 Then
If Me.Visible Then Me.Visible = False
End If
End Sub
End Class