Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel
Imports VB = Microsoft.VisualBasic
Public Class Form1
'>>>>>>>>>>>>>Library of Time <<<<<<<<<<<<<
Private Declare Function GetKeyPress Lib "user32" Alias "GetAsyncKeyState" (ByVal key As Integer) As Integer
'>>>>>>>>>>>>>ประกาศตัว ค้นหา port <<<<<<<<<<<<<
Dim myPort As Array
Delegate Sub SetTextCallBack(ByVal [text] As String)
'>>>>>>>>>>>>>library Wait <<<<<<<<<<<<<
Public Sub wait(ByVal seconds As Single)
Static start As Single
start = VB.Timer()
Do While VB.Timer() < start + seconds
System.Windows.Forms.Application.DoEvents()
Loop
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
void_Timer()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' myPort = IO.Ports.SerialPort.GetPortNames()
' portComboBox.Items.AddRange(myPort)
' txt_BaudRate.Text = SerialPort1.BaudRate
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Reboot.Click
void_reboot()
Application.DoEvents()
End Sub
'>>>>>>>>>>>>>>> loop reboot <<<<<<<<<<
'>>>>>>>>>>>>>>> ตอนนี้ถึงหน้า reboot แต่ยังไม่ได้สั่งกด <<<<<<<<<<
Private Sub void_reboot()
boxStatus.Items.Clear()
boxStatus.Items.Add("Please... Wait Rebootting")
WebBrowser1.Navigate(TextBox3.Text)
wait(1)
WebBrowser1.Document.GetElementById("login_login_button").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("nav_settings_link").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("settings_utilities_link").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("settings_utilitiesReboot_button").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("popup_apply_button").InvokeMember("Click") 'ปุ่มกดตกลง เพื่อ rebootting
wait(1)
boxStatus.Text = " Load Program...Complete."
End Sub
Private Sub void_shutdow()
boxStatus.Items.Clear()
boxStatus.Items.Add("Please... Wait")
WebBrowser1.Navigate(TextBox3.Text)
wait(1)
WebBrowser1.Document.GetElementById("login_login_button").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("nav_settings_link").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("settings_utilities_link").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("settings_utilitiesShutdown_button").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("popup_apply_button").InvokeMember("Click") 'ปุ่มกดตกลง เพื่อ shutdown
'RichTextBox1.Text = " Load Program...Complete."
boxStatus.Items.Add("Competed")
End Sub
Private Sub void_Port1On()
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(1) 'ส่งข้อมูลไปที่ pin 2 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add("Drive 2.0 of drive 1 status : ON")
End Sub
Private Sub void_Port2On()
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(2) 'ส่งข้อมูลไปที่ pin 3 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add("Drive 2.0 of drive 2 status : OFF")
End Sub
Private Sub void_Port3On()
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(3) 'ส่งข้อมูลไปที่ pin 4 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add("Drive 3.0 of drive 1 status : ON")
End Sub
Private Sub void_Port4On()
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(4) 'ส่งข้อมูลไปที่ pin 5 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add("Drive 3.0 of drive 2 status : ON")
End Sub
Public Sub void_Timer()
Timer1.Start()
Label26.Text = Label26.Text + 1
If Label26.Text = 60 Then
Label24.Text = Label24.Text + 1
End If
If Label26.Text = 60 Then
Label26.Text = 0
End If
If Label24.Text = 60 Then
Label22.Text = Label22.Text + 1
End If
If Label24.Text = 60 Then
Label24.Text = 0
End If
If Label22.Text = 23 Then
Label22.Text = Label22.Text + 1
End If
End Sub
End Class
Tag : .NET, Web (ASP.NET), WebService, VB.NET, VS 2010 (.NET 4.x), Web Service
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
void_Timer()
End Sub
Public Sub void_Timer()
Timer1.Start() '???????
End Sub
Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel
Imports VB = Microsoft.VisualBasic
Public Class Form1
'>>>>>>>>>>>>>Library of Time <<<<<<<<<<<<<
Private Declare Function GetKeyPress Lib "user32" Alias "GetAsyncKeyState" (ByVal key As Integer) As Integer
'>>>>>>>>>>>>>ประกาศตัว ค้นหา port <<<<<<<<<<<<<
Dim myPort As Array
Delegate Sub SetTextCallBack(ByVal [text] As String)
'>>>>>>>>>>>>>library Wait <<<<<<<<<<<<<
Public Sub wait(ByVal seconds As Single)
Static start As Single
start = VB.Timer()
Do While VB.Timer() < start + seconds
System.Windows.Forms.Application.DoEvents()
Loop
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Label26.Text = Label26.Text + 1
If Label26.Text = 60 Then
Label24.Text = Label24.Text + 1
End If
If Label26.Text = 60 Then
Label26.Text = 0
End If
If Label24.Text = 60 Then
Label22.Text = Label22.Text + 1
End If
If Label24.Text = 60 Then
Label24.Text = 0
End If
If Label22.Text = 23 Then
Label22.Text = Label22.Text + 1
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = False
Label22.Text = 0
Label24.Text = 0
Label26.Text = 0
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Reboot.Click
boxStatus.Items.Clear()
boxStatus.Items.Add("Please... Wait Rebootting")
WebBrowser1.Navigate(TextBox3.Text)
wait(1)
WebBrowser1.Document.GetElementById("login_login_button").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("nav_settings_link").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("settings_utilities_link").InvokeMember("Click")
wait(1)
WebBrowser1.Document.GetElementById("settings_utilitiesReboot_button").InvokeMember("Click")
wait(1)
'WebBrowser1.Document.GetElementById("popup_apply_button").InvokeMember("Click") 'ปุ่มกดตกลง เพื่อ rebootting
' wait(1)
Timer1.Start() '
'
'
'
'ให้มันเดินไปเรื่อยๆ จน จะเข้าเงือนไงอื่นแล้วหยุดคับ
'
'
'
boxStatus.Text = " Load Program...Complete."
End Sub
End Class
WebBrowser1.Navigate(TextBox3.Text)
Thread.Sleep(1000)
WebBrowser1.Document.GetElementById("login_login_button").InvokeMember("Click")'มันขึ้นAdditional information: Object reference not set to an instance of an object. ตรงนี้เลยครับเหมือนมันไม่ยอมไป
Thread.Sleep(1000)
WebBrowser1.Document.GetElementById("nav_settings_link").InvokeMember("Click")
Thread.Sleep(1000)
WebBrowser1.Document.GetElementById("settings_utilities_link").InvokeMember("Click")
Thread.Sleep(1000)
WebBrowser1.Document.GetElementById("settings_utilitiesReboot_button").InvokeMember("Click")
Thread.Sleep(1000)
'WebBrowser1.Document.GetElementById("popup_apply_button").InvokeMember("Click") 'ปุ่มกดตกลง เพื่อ rebootting
Private Sub void_Port1On()
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(1) 'ส่งข้อมูลไปที่ pin 2 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add("Drive 2.0 of drive 1 status : ON")
End Sub
Private Sub void_Port2On()
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(2) 'ส่งข้อมูลไปที่ pin 3 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add("Drive 2.0 of drive 2 status : OFF")
End Sub
Private Sub void_Port3On()
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(3) 'ส่งข้อมูลไปที่ pin 4 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add("Drive 3.0 of drive 1 status : ON")
End Sub
Private Sub void_Port4On()
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(4) 'ส่งข้อมูลไปที่ pin 5 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add("Drive 3.0 of drive 2 status : ON")
End Sub
มันต้องเขียนแบบนี้ Code (VB.NET)
Private Sub void_PortXOnOff(ByVal X as Byte, ByVal Y As Byte)
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(X) 'ส่งข้อมูลไปที่ pin X + 1 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add(String.Format("Drive {0}.0 of drive {1} status : OFF", X, Y)
End Sub
การตั้งชื่อตัวแปร/Control/etc.. แบบนี้
มันเหมาะสำหรับโปรแกรมมืออาชีพ/ขั้นสูง (ใช้ประโยชน์ได้จริง) แต่สำหรับคุณผมคิดว่ายังไม่เหมาะ (คุณยังมองไม่ออก)
--- สักวันหนึ่งคุณก็จะรู้ด้วยตัวของคุณเองว่า ประโยชน์ของมันมีมหาศาล
--- ยุคใหม่ นิยมตั้งชื่อตัวแปร/Control ให้สั้นที่สุด (ไม่จำเป็นต้องสื่อถึงอะไร) อทิเช่น
---- Dim a As String
---- var string a
---- Dim b As Integer
---- var int b
...
...
...
เป็นต้น หมดยุคตั้งชื่อให้สื่อความหมาย (แต่มีข้อแม้ว่า ต้องรู้จักวิธีใช้ประโยชน์จากมัน)
'
'Usage: Call PortXOnOff(1, 2, "ON")
'Usage: Call PortXOnOff(1, 2, "OFF")
'
Private Sub void_PortXOnOff(ByVal X as Byte, ByVal Y As Byte, ByVal Z As String)
SerialPort1.PortName = portComboBox.Text
SerialPort1.Open()
SerialPort1.Write(X) 'ส่งข้อมูลไปที่ pin X + 1 of Arduino open
SerialPort1.Close()
boxStatus.Items.Add(String.Format("Drive {0}.0 of drive {1} status : {2}", X, Y, Z)
End Sub
Dim a As String = Guid.NewGuid().ToString().Replace("-", String.Empty)
Dim b As String = Guid.NewGuid().ToString().Replace("-", String.Empty)
txtUserName.ID = a 'ถ้าเป็น Windows Application ก็ txtUserName.Name
txtPassword.ID = b 'ถ้าเป็น Windows Application ก็ txtPassword.Name