การส่งข้อความแจ้งคอมพิวเตอร์ เปิด และ shutdown ผ่าน Line notify ด้วย Visual Studio

การส่งข้อความแจ้งคอมพิวเตอร์ เปิด และ shutdown ผ่าน Line notify ด้วย Visual Studio

สำหรับในโครงการนี้ผมได้วางเป้าหมายไว้ว่า ผมต้องสามารถตรวจสอบการทำงานของคอมพิวเตอร์ในเรื่องของการเปิดขึ้นมาทำงานและการ Shutdown ในระยะไกลโดยการทำงานจะต้องเงียบและไร้ร่องรอย
ก็ได้ทำการทดลองการส่งข้อความผ่าน LINE ในรูปแบบต่างๆ และมาจบตรงที่การใช้โค้ด LINE notify ด้วย Visual Studio ( Visual Studio 2015) ในส่วนตัวของ CODE เราก็สามารถหาได้จากเว็บไซต์ต่างๆ เพียงแต่นำมาประติดประต่อ ประกอบเข้าด้วยกันเพื่อให้ทำงานตามที่เราต้องการ
สิ่งแรกที่เราต้องทำเลยคือ สร้าง LINE กลุ่มใน App Line ในสมาร์ทโฟนของเราก่อนนะครับ
(หลายๆท่านที่มีพื้นฐานอยู่แล้วหรือยังไม่มีก็สามารถดูรายละเอียดจากเว็บไซต์ต่างๆที่เขานำเสนอเกี่ยวกับเรื่องนี้ได้นะครับ แต่ในส่วนของผมเองคือผมอยากจะทำเป็นข้อมูลของผมเพื่อเก็บเอาไว้และให้ทุกท่านที่สนใจได้ดูรายละเอียดไปพร้อมๆ กัน)

1

และที่สำคัญคือเราต้อง Add LINE Notify ของเราเข้ามาด้วยนะครับ ไม่อย่างนั้นมันจะฟ้องแบบนี้ครับ
image

การ Add ทำตามนี้ครับ กดเลือก Line กลุ่มของเรา จากนั้นเลือกตามรูป

หลังจากเสร็จ ขั้นตอนนี้แล้วเข้าไปสร้าง LINE notify โดยเข้าไปที่ https://notify-bot.line.me/th/
จากนั้นคลิกปุ่มเข้าสู่ระบบ
image

และป้อนอีเมลและรหัสผ่านที่เราใช้ใน LINE ของสมาร์ทโฟนและกดปุ่มเข้าสู่ระบบ
image

หลังจากนั้น ข้อความเข้าสู่ระบบ จะเปลี่ยนเป็นชื่อ Line ปกติของเราที่ใช้งานอยู่ ใน สมาร์ทโฟน คลิกไปที่หน้าของฉัน ให้คลิกไปที่ปุ่มออก Token ก็จะเจอหน้าต่าง ออก Token ใส่ชื่อที่เราต้องการเมื่อมีการแจ้งเตือนเข้าไป แล้วคลิกเลือก ชื่อ Line กลุ่มที่เราได้สร้างจากสมาร์ทโฟนมาก่อนหน้านี้ เสร็จแล้วคลิกปุ่ม ออก Token

ระบบจะออกหมายเลข Token ให้เรา ให้ Copy เก็บเอาไว้เพื่อใช้ในการเขียนโค้ด และกดปุ่มปิด
image
LINE ก็จะแสดงผลลัพธ์บริการที่เชื่อมต่อให้เราได้ทราบ
image

จากนั้นก็ให้ออกจากระบบ เป็นอันเสร็จสิ้นการสร้างไลน์กลุ่ม
image

สำหรับการประยุกต์ใช้งาน ผมมี code ตัวอย่างการใช้งานจริงแต่ต้องเปิดด้วยโปรแกรม Visual Studio (2015 ) นะครับ และอีกอย่างฝ่ายผมก็ยังไม่ได้ทำ Package ตัวเต็มเอาไว้ทุกท่านที่ลองใช้งานก็สามารถปรับตัว code ได้ตามใจชอบไม่ว่าจะเป็นเรื่องของเวลาหรือข้อความที่จะส่งผ่าน Line

Download

สำหรับโฟลเดอร์ ตามรูปผมจะเก็บไว้ในไดร์ C
image

สำหรับไฟล์ .exe ที่จะให้ทำงาน จะอยู่ในตำแหน่งนี้ครับ
C:\LineMessage\COMOFF\WindowsApplication1\bin\Debug\COMOFF.exe
C:\LineMessage\COMON\WindowsApplication1\bin\Debug\COMON.exe

ส่วนไฟล์ที่ใช้แก้ไขจะอยู่ในตำแหน่งนี้
C:\LineMessage\COMOFF\WindowsApplication1.sln
C:\LineMessage\COMON\WindowsApplication1.sln

ดูในส่วนของตัว code นี้ผมจะไม่ขอพูดถึงนะครับทุกท่านสามารถเข้าไปดูและศึกษาเองได้แต่สิ่งที่ผมพูดถึงก็คือ เราจะทำยังไงให้มันส่งข้อความตอนที่คอมพิวเตอร์เปิดและทำยังไงให้ส่งข้อความเมื่อคอมพิวเตอร์ shutdown ซึ่งในส่วนนี้ผมมีไอเดียในการทำดังนี้ครับ

ตัวอย่าง Code COMON

Imports System.IO
Imports System.Net
Imports System.Text


Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs)



    End Sub

    Private Function internetConnection() As Boolean
        Dim req As System.Net.WebRequest = System.Net.WebRequest.Create("http://www.google.co.th")
        Dim resp As System.Net.WebResponse
        Try
            resp = req.GetResponse()
            resp.Close()
            req = Nothing
            Return True
        Catch ex As Exception
            req = Nothing
            Return False

        End Try
    End Function

    Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated
        If internetConnection() = False Then
            Me.Close()
        Else


            Dim request = DirectCast(WebRequest.Create("https://notify-api.line.me/api/notify"), HttpWebRequest)
            Dim postData = String.Format("message={0}", "COMPUTER XXX เปิดเข้าสู่หน้า Desktop แล้ว")
            Dim data = Encoding.UTF8.GetBytes(postData)

            request.Method = "POST"
            request.ContentType = "application/x-www-form-urlencoded"
            request.ContentLength = data.Length
            request.Headers.Add("Authorization", "Bearer QerWyEZdBShylI3iTTxKz1Pk8Zo1vLy2NQaxxxFgYLM")

            Using stream = request.GetRequestStream()
                stream.Write(data, 0, data.Length)
            End Using

            Dim response = DirectCast(request.GetResponse(), HttpWebResponse)
            Dim responseString = New StreamReader(response.GetResponseStream()).ReadToEnd()
            End
        End If
    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub
End Class

1 สร้างไฟล์ Run อัตโนมัติใน registry เมื่อคอมพิวเตอร์เปิดขึ้นมาทำงาน คลิกขวาที่เมนู start เลือก Run และพิมพ์คำสั่ง regedit เข้าไป
image
จะปรากฏหน้าต่าง registry editor ให้คลิกไปตามตำแหน่งที่ผมให้ไว้
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
image

ให้เราดูพื้นที่ทางด้านขวาคลิกขวาเลือก New และเลือก String value
image

จะมีหน้าต่าง Edit String ปรากฏขึ้นมาช่อง Value name ให้ใส่ชื่อตามต้องการในที่นี้ผมจะใส่ชื่อเป็น COMRUN ส่วน Value Data ก็คือที่อยู่ของไฟล์นามสกุล.exe ของ COMRUN นั่นเอง
image

ตำแหน่งที่อยู่ของไฟล์ COMRUN. exe ก็คือตำแหน่งนี้
C:\LineMessage\COMON\WindowsApplication1\bin\Debug\COMON.exe
ให้เรา Copy ไปวางไว้ในช่อง Value Data ได้เลย เมื่อทำเสร็จแล้วชื่อจริงก็จะปรากฏออกมาดังรูป
image

  1. สำหรับขั้นตอนนี้จะเป็นการส่งข้อความเมื่อเรากดปุ่ม shutdown ซึ่งในคอมพิวเตอร์ทั่วไปก็จะมีปุ่ม shutdown ในเมนู start และหน้า log on อยู่แล้ว ดังนั้นถ้าเราต้องการจะจำกัดให้ผู้ใช้งานสามารถกดปุ่ม Shutdown ที่เราสร้างขึ้นได้อย่างเดียวเท่านั้น เราต้องทำการ เอาปุ่ม Shutdown ที่อยู่ในเมนู start และหน้า log on ออกไป มีวิธีการดังนี้

2.1 การเอาปุ่ม Shutdown หน้า log on ออก ให้เราเข้าไปที่ registry Edit (วิธีการเข้าเหมือนข้อที่ 1) จากนั้นให้คลิกไปตามตำแหน่งที่ผมให้ไว้ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System หา EDIT DWord ชื่อ shutdownwithoutlogon คลิกขวาเลือก Modity… ที่ช่อง valve data เปลี่ยนตัวเลขจาก 1 เป็น 0 และกดปุ่ม OK และลอง Sign Out ดู จะเห็นว่าปุ่ม Shutdown หายไปแล้ว
image

2.2 การเอาปุ่ม Shutdown จากเมนู start และ ปุ่ม อื่นๆออก มีวิธีการทำดังนี้ คลิกขวาที่เมนู start เลือก Run และพิมพ์คำสั่ง gpedit.msc เข้าไป จะปรากฏหน้าต่าง Local Group policy editor ทำตามลูกศรชี้

image

แล้วกดปุ่ม OK ทดสอบเข้าไปที่เมนู start เลือกปุ่ม Shutdown จะเห็นว่าไม่มีคำสั่งในการ Shutdown และคำสั่งอื่นๆแล้ว

image

จากนั้นเราจะทำ Shortcut icon ของ COMOFF.EXE เข้ามาที่หน้า desktop และใส่รูปไอคอนตามนี้
image

จากนั้นก็ให้เริ่มทดสอบโดยการกดปุ่ม shutdown จากการตั้งเวลาในตัวโปรแกรมผมจะตั้งเวลาไว้ 10 วินาทีเราก็จะได้รับข้อความว่า คอมพิวเตอร์มีการ Shutdown จากนั้นคอมพิวเตอร์จะ shutdown และเปิดคอมพิวเตอร์ขึ้นมาใหม่และเมื่อถึงหน้า desktop เราก็จะได้รับข้อความตามผลลัพธ์ในรูปครับ
image

1 Likes

น่าสนใจมากครับพี่ ขอบคุณที่แชร์ครับ

ยินดีครับและขอบคุณ https://eleceasy.com มากๆ เลยที่เปิดช่องทางและพื้นที่ให้ผมได้มีโอกาสแบ่งปันไอเดียต่างๆ ในส่วนทุกโพสต์ที่ผมโพสต์ไปอาจจะยังไม่ละเอียดมากนัก เนื่องจากบางอย่างผมเองก็ไม่สามารถที่จะอธิบายรายละเอียดที่ลึกลงไปได้ ถ้าสมาชิกที่สนใจได้อ่านในโพสต์ของผมและมีคำถาม ก็สามารถถามได้นะครับส่วนในเรื่องโค้ดผมให้ได้ทุกตัวไม่ได้หวงแต่อย่างใด (R&D + C&D ต้องมีคู่กัน )

1 Likes

ยินดีครับ ผมก็มีอยู่หลายโปรเจค ก็ทยอยลงเรื่อยๆ เผื่อจะเป็นประโยชน์กับคนอื่นๆ สืบไป ครับ

:grin:

1 Likes

โอ้ววว พอดีมีปัญในการทำงานนิดหน่อย ปัญหาผมคือผม มีการรีโมด สั่งงานจาก คอม1 ไป คอม2 ซึ่งโปรแกรมที่ใช้เป็นฟรีแวร์ คือ chrome remote desktop ประเด็นคือเวลาใช้งานสั่งเครื่อง ลูก เครื่องลูกต้องเปิด chrome อยู่ด้วยถึงรีโมดได้ ตอนแรกผมเปิดไว้ลองปิดดูมันก็ยังโมดได้เลยปิดไปพอมาอีกวัน เครื่องลูกกลับไม่ ออนไลน์สะงั้น

คำถามคือผมอยากใช้ line สั่งให้ เครื่องลูก เปิด chrome ขึ้นมาได้ไหม ถ้าได้ เราสามารถกำหนด url ที่สั่งให้เปิดได้ไหมครับ

ขอบคุณครับ

อัพเดทครับ สรุป เราไม่ต้องเปิด chrome ก็ได้แค่เปิดเครื่อง เมื่อวานกลับไปดูปรากฎว่า ลืมเปิดสวิตช์ที่ปลั๊กแบตเลยหมดและดับไปครับ แต่ก็ยังอยากทราบแนวคิดที่เกรินไว้ อยู่ดีครับ

จุดประสงค์คือ เมื่อคอมพิวเตอร์เปิดขึ้นมาแล้ว ให้เปิดเว็บไซต์ที่เราต้องการออกมาใช่ไหมครับ

คือคอมนั้นเปิดอยู่ครับ แต่ลืมเปิดโปรแกรมสำคัญซึ่งก็คือ chrome ใช้ line สั่งให้เปิด โปรแกรม เบราว์เซอร์ chrome ครับ

ใช้​ anydesk.เปิด​ ก็ได้ครับ​ หรือว่ามันง่ายไป​ อิ.อิ…

ธรรมดาเราไม่ทำครับพี่ 555

เดียวว่างๆ จะลองทำดูครับ เสร็จแล้วจะเอามาแชร์ ถ้ามันทำได้อะนะ ครับ

เท่าที่ คิดได้ครับ ก็ดีไปอีกแบบ ลดการพึ่งพา Blynk นี่ทำ สติ๊กเกอร์ เป็นรูปปุุ่ม On off ของ สวิทซ์ แมกเนติกตัวที่ 1 2 3… แทนการพิมพ์ได้อีก โอ้ว…สุดบรรยาย โปรเจคนี้น่าสนใจครับ

ผมไม่แน่ใจว่าเราสามารถอัพโหลดสติ๊กเกอร์ของเราได้ฟรีไหมนะครับ น่าสนใจจริงๆ หรือถ้าง่ายๆ ก็ส่งเป็น emoji ที่มีให้อยูแล้ว สนุกเลยทีนี้ ทางฝั่ง pc อ่านค่า emoji แล้วทำงานตามคำสั่งที่เขียนไว้ใน VS จบข่าว 555

รหัส emoji คำสั่ง
:wave: :wave: เปิด
:pray: :pray: ปิด
:+1: :+1: บวกค่า 1
:-1: :-1: ลบค่า 1
:crossed_fingers: :crossed_fingers: พัก
1 Likes

เป็นแนวคิดที่น่าสนใจมากครับ ขอเก็บเข้าคลังก่อน…