ฟอรั่ม PSsix

Would you like to react to this message? Create an account in a few clicks or log in to continue.

ฟอรั่มของบล็อก http://pssix.blogspot.com


3 posters

    ประกาศผลการแข่ง

    POS
    POS
    PSsix
    PSsix


    ประกาศผลการแข่ง - Page 2 Empty ประกาศผลการแข่ง - Page 2 Empty ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 1152
    ความนิยม : 326
    เข้าร่วมเมื่อ : 19/07/2010

    ประกาศผลการแข่ง - Page 2 Empty ประกาศผลการแข่ง

    ตั้งหัวข้อ by POS 22/04/11, 09:32 am

    First topic message reminder :

    กระทู้ต้นเหตุ [You must be registered and logged in to see this link.]

    การแข่งขันสร้างโปรแกรมตรวจหาไวรัสที่ Registry [You must be registered and logged in to see this link.]

    ลำดับการส่ง (ตัวเลขต่อท้าย คือตัวเลขเวลาที่ส่ง ซึ่งเสร็จภายในระยะเวลา 1 วันทั้งคู่)

    [You must be registered and logged in to see this image.]


    โค้ดคำสั่งของคุณ Aut

    Code:
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 496, 314, 192, 124)
    $Edit1 = GUICtrlCreateEdit("", 16, 8, 465, 257)
    $Button1 = GUICtrlCreateButton("Button1", 16, 280, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Button2", 392, 280, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    Global $rrr = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", $r3 = 0

    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
          Case $Button1
             RegDelete("HKEY_CURRENT_USER\123")
             For $i = 1 To 100
                $rvar = RegEnumVal($rrr, $i)
                If @error Then ExitLoop
                $rread = RegRead($rrr, $rvar)
                RegWrite("HKEY_CURRENT_USER\123", $rvar, "REG_SZ", $rread)
             Next
             GUICtrlSetData($Edit1, "สำรองแล้วนะ" & @CRLF)
          Case $Button2
             GUICtrlSetData($Edit1, "หาไวรัส..." & @CRLF)
             For $i = 1 To 100
                $r1 = RegEnumVal($rrr, $i)
                If @error Then ExitLoop

                For $i2 = 1 To 100
                   $r2 = RegEnumVal("HKEY_CURRENT_USER\123", $i2)
                   If @error Then ExitLoop
                   If StringInStr($r1, $r2) Then $r3 = 1
                Next

                If $r3 = 0 Then GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & "เจอไวรัสคือ " & $r1 & @CRLF)
                $r3 = 0
             Next
             GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & "เสร็จ")
       EndSwitch
    WEnd


    โค้ดคำสั่งของคุณ sak20102005

    Code:
        #AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
        #NoTrayIcon
       #include <GuiEdit.au3>
        #include <ButtonConstants.au3>
        #include <EditConstants.au3>
        #include <GUIConstantsEx.au3>
        #include <WindowsConstants.au3>
       #Include <File.au3>

        Global $hForm, $hEdit, $Button1, $Button2, $title = 'RegVirScan'
        Global $nMsg, $i, $REV, $RR, $Button3, $PID, $newtitle = 'RegVirScanning...'
       Global $tiptxt = 'See message RegVirScan.log to the desktop'&@CRLF&'ถ้าแสกนครั้งเดียว กรุณาแสกนซ้ำอีกครั้ง'
       Global $iconfile = @ScriptDir&'\scan.ico', $readreg
       Global $hkeynum = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
       Global $hkeyread = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
       $hForm = GUICreate($title, 496, 314, -1, -1)
        GUISetIcon($iconfile, -1, $hForm)
       $hEdit = GUICtrlCreateEdit("", 16, 8, 465, 257)
        GUICtrlSetData(-1, "")
        $Button1 = GUICtrlCreateButton("Scan", 16, 280, 75, 25, $WS_GROUP)
        GUICtrlSetCursor(-1, 0)
       $Button2 = GUICtrlCreateButton("Open log", 405, 280, 75, 25, $WS_GROUP)
       GUICtrlSetCursor(-1, 0)
       GUICtrlCreateLabel("Design by:sak20102005", 186, 282, 118, 17)
        GUICtrlSetState(-1, $GUI_DISABLE)

       GUISetState(@SW_SHOW)

        While 1
            $nMsg = GUIGetMsg()
            Switch $nMsg
                Case $GUI_EVENT_CLOSE
                    For $x = 255 To 0 Step -3
                   WinSetTrans($title, "", $x)
                   Sleep(1)
                Next
                   Exit
             Case $Button1
                virautorun()
                $PID = ProcessExists("notepad.exe")
                If $PID Then ProcessClose($PID)
                WinSetTitle($title,"", $newtitle)
                If _GUICtrlEdit_GetText($hEdit) <> '' Then _GUICtrlEdit_SetText($hEdit, '')
                For $i = 1 to 100
                    $REV = RegEnumVal($hkeynum, $i)
                    $RR = RegRead($hkeyread, $REV)
                    If @error <> 0 Then ExitLoop
                   _GUICtrlEdit_AppendText($hEdit, @CRLF & $RR)
                       Sleep(500)
                Next
                   WinSetTitle($newtitle, "", $title)
                   ToolTip($tiptxt, 365, 350, "Scan complete.", 1, 1)
                   _FileWriteLog(@DesktopDir & "\RegVirScan.log", _GUICtrlEdit_GetText($hEdit))
                   Sleep(4000)
                   ToolTip("")
             Case $Button2
                If FileExists(@DesktopDir & "\RegVirScan.log") Then
                   ShellExecute(@DesktopDir & "\RegVirScan.log")
                Else
                   MsgBox(0, "", "Can not found File.log")
                EndIf
            EndSwitch
        WEnd

       Func virautorun()
          If Not RegRead($hkeyread, "Virustest") = 'Virus.exe' Then
             MsgBox(0, "", "No, virus.")
             ToolTip("Write Virus to registry. You try Scan.", 365, 350, "")
             RegWrite($hkeyread, "VirusTest", "REG_SZ", "Virus.exe")
          Else
             MsgBox(0, "", "Virus processing..")
          EndIf
       EndFunc



    ########ผลการทดสอบการทำงานของโปรแกรมต่อด้านล่างครับ##################
    sak20102005
    sak20102005
    ระงับสมาชิก
    ระงับสมาชิก


    ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 96
    ความนิยม : 4
    เข้าร่วมเมื่อ : 07/04/2011

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by sak20102005 22/04/11, 07:09 pm


    Global $rrr = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", $r3 = 0

    เขียนโปรแกรมได้เยี่ยมมาก ทั้งโปรแกรม ประกาศตัวแปรไว้ตัวเดียว ..ไม่รู้เหตุผลเหมือนกัน


    แก้ไขล่าสุดโดย sak20102005 เมื่อ 22/04/11, 11:45 pm, ทั้งหมด 1 ครั้ง
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by aut 22/04/11, 07:22 pm

    sak20102005 พิมพ์ว่า:If StringInStr($r1, $r2) Then

    นี่เหรอคำสั่งเปรียบเทียบไฟล์ของท่าน เด็กๆเข้าใช้กัน

    ผมเขียนคำสั่งธรรมดา ที่ไม่ใช่ไวรัสเข้าไป โปรแกรมท่านฟ้องว่าเป็นไวรัสเฉยเลย

    ----------------------------------------------------------------------------------
    Global $rrr = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", $r3 = 0

    เขียนโปรแกรมยังไง ทั้งโปรแกรม มีประกาศตัวแปรไว้ตัวเดียว ถ้าโปรแกรมเมอร์ตัวจริงมาเห็น คงหัวเราะ ก๊ากกกๆๆๆๆ+++++


    แต่ละอย่างแสดงความกากออกมาอย่างหมดสิ้น

    If StringInStr($r1, $r2) Then

    มันใช่คำสั่งเปรียบเทียบไฟล์ที่ไหนกากจิง ดูคำสั่งบันทัดนี้ยังดูไม่ออกเลิกเขียนโปรแกรมเถอะนาย ไปดูจุดประสงของโปรแกรมก่อนดิท่าน pos ให้ทำไร เขาให้หา Registry ที่เพิ่มขึ้นมา แล้วเราผิดตงไหน บอกมาดิ
    แล้วเราผิดตงไหน บอกมาดิ คำสั่งนี้ไม่หาค่าที่เพิ่มขึ้นมาตงไหน
    แล้วเราผิดตงไหน บอกมาดิ คำสั่งนี้ไม่หาค่าที่เพิ่มขึ้นมาตงไหน
    แล้วเราผิดตงไหน บอกมาดิ คำสั่งนี้ไม่หาค่าที่เพิ่มขึ้นมาตงไหน
    แล้วเราผิดตงไหน บอกมาดิ คำสั่งนี้ไม่หาค่าที่เพิ่มขึ้นมาตงไหน

    พอเราถามนายจะแถหาเรื่องอื่นเรือยเป็นไรมากเปล่านายตอบที่เราถามมาดิ


    แล้วนี่อีกดูไงว่าตัวแปรตัวเดียว กาก อีกแล้วตัวแปรสองตัวยังมองไม่ออก นายนะโคดของโคดกากเลย อยู่มาได้งัยถึงตอนนี้เป็นเรากินไบกอนแล้วไปเกิดใหม่แย้ว อ้อเพิ่งจารู้นะโปรแกรมเมอตัวจิงต้องประกาศตัวแปรเยอะๆ เหอ เหอ บ้าเป่าวะ เขาใช้ที่จำเป็นเท่านั้น โคด กาก รู้ไหมตัวแปรเยอะเกิดไรคงไม่รู้อีกโคดกากจิงนายนี่

    Global $rrr = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", $r3 = 0





    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by aut 22/04/11, 07:29 pm

    เอามาแต่ละอย่างแสดงถึงความเป็นคนกลวงโลกไม่รู้จิงอะไรสักอย่าง เฮ้อ..... กูเถียงกับคนสติดีหรือเป่าวะ แม่งไปลงดันหาของอีกสักรอบดีก่า

    sak20102005
    sak20102005
    ระงับสมาชิก
    ระงับสมาชิก


    ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 96
    ความนิยม : 4
    เข้าร่วมเมื่อ : 07/04/2011

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by sak20102005 22/04/11, 07:58 pm

    อามาแต่ละอย่างแสดงถึงความเป็นคนกลวงโลกไม่รู้จิงอะไรสักอย่าง เฮ้อ..... กูเถียงกับคนสติดีหรือเป่าวะ แม่งไปลงดันหาของอีกสักรอบดีก่า

    มาแข่งเขียนบทความให้ความรู้ผู้อื่นกับผมไม๊ ใครไม่สามารถเขียนบทความให้ความรู้ได้

    แสดงว่า กากก ได้แต่คุยโม้โอ้อวดไปวันๆ ถ้าท่านรู้จริงเรื่อง ลูป เรื่อง อาร์เรย์ ทำไมไม่เขียนมาล่ะ

    ถ้าผมอ่านแล้วประทับใจ ผมอาจจะเปลี่ยนใจมาเรียกท่านว่าอาจารย์ก็ได้

    แต่ตอนนี้ขอเรียกว่าอาเจียนไปก่อน


    แก้ไขล่าสุดโดย sak20102005 เมื่อ 22/04/11, 11:48 pm, ทั้งหมด 1 ครั้ง
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by aut 22/04/11, 08:05 pm

    เหอ เหอ แต่ละอย่าง กากของจิงเหมือนเด็กที่ต่อยแพ้แล้วบอกมึงไปสู้กับพี่กูไหม เขียนโปรแกรมแพ้เถียงก็แพ้พยายามหาทางเอาเปียบเอาแบบที่ตัวเองชนะแน่ๆ เรียกอารัยดีที่ทำแบบนี้อ่า ขี้แพ้ชวนตี อ่านะแพ้เรื่องหนึ่งก็ท้าอีกเรื่องนุง เหอ เหอ ไม่เอาโคดเรามาวิจานแล้วเยอ แล้วคำถามที่เราถามไปอ่านะไม่เห็นมาตอบเลย ไม่รู้จิงใช่เป่า น่าสงสารอ่านะขาดโอกาสทางสังคังขนาดหนักเลยนาย อยากให้คนยกย่องไปทำอย่างอื่นเถอะแบบนี้ไม่รุ่งอะ เด๋วนายเจอคนเก่งระดับเมพสามโลกแบบเรามาทัก นายก็หน้าแหกอีกเรือยอ่านะ
    sak20102005
    sak20102005
    ระงับสมาชิก
    ระงับสมาชิก


    ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 96
    ความนิยม : 4
    เข้าร่วมเมื่อ : 07/04/2011

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by sak20102005 22/04/11, 08:18 pm

    em218 เดี๋ยวบทบทความอื่นแทนให้


    แก้ไขล่าสุดโดย sak20102005 เมื่อ 22/04/11, 11:50 pm, ทั้งหมด 2 ครั้ง
    sak20102005
    sak20102005
    ระงับสมาชิก
    ระงับสมาชิก


    ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 96
    ความนิยม : 4
    เข้าร่วมเมื่อ : 07/04/2011

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by sak20102005 22/04/11, 08:35 pm


    ระดับเมพสามโลกอะไรของท่านน่ะ คงจะหมายการถึงคุยโม้โอ้อวดไปวันๆ

    ใครเขียนอะไรผิดไว้ไม่ได้ เถหาเรื่องทันที ถ้าผมเขียนบทความให้ความรู้ต่อไปไม่ได้

    ท่าน Pos เขาต้องโทษท่านว่า ท่านคือต้นเหตุที่ทำให้เว็บเขาขาดคนเขียนบทความดีดีให้

    แล้วให้ท่านมาเขียนบทความแทน ถ้าท่านไม่เขียน ก็จะไม่มีใครเขียนให้อีกแล้ว

    ถ้าตราบใดที่ท่านยังไม่หยุด กาาก



    แก้ไขล่าสุดโดย sak20102005 เมื่อ 22/04/11, 11:52 pm, ทั้งหมด 2 ครั้ง
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by aut 22/04/11, 08:40 pm

    sak20102005 พิมพ์ว่า:
    ท่านนี่เป็นคนที่ไม่ชอบ ประกาศตัวแปรเอาเสียเลยนะ

    ไม่เอาถ่านแล้วยังหวงขี้เถ้าอีก เคยเข้าไปเปิดดูไฟล์สคริ๊ป includ ที่เขาเขียนไว้
    ในโปรแกรมAutoitบ้างไม๊ ตัวแปรเป็นตับเลย
    ท่านอธิบายได้หรือเปล่าว่าทำไมเขาถึงต้องใช้ตัวแปรหลายๆตัว
    ทำไม่ใช้ตัวแปรแค่ตัวเดียวอย่างท่าน

    บ้าเป่าเขาประกาศเพราะจำเป็นต้องใช้ นายจะประกาศเพื่อเลียนแบบเขาแล้วคิดว่าจาเก่งเหรอ อานนี้ไม่ตางจากนกแก้วที่เลียนแบบคนพูด กากมากที่คิดแบบนี้ เหอ เหอ คงมีแต่นายคนเด๋วม้างที่เขียนโปรแกรมประกาศตัวแปรเพราะเลียนแบบคนอื่น ไม่รู้ว่าต้องประกาศตอนไหนยังไง แบบนี้แสดงความโง่ออกมาอย่างชัดเจนเลย ถ้านายไม่เชื่อเราไปถามในบอด autoit เลยก็ด้าย หรือไม่ก้าถาม เตือนไว้ก่อนอ่านะ พวกฝารั่งบอดนอกมันดุไม่ใจดีหรอกถามงี่เง่าโดนด่าก่านี้อีก เหอ เหอ
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by aut 22/04/11, 08:49 pm

    sak20102005 พิมพ์ว่า:
    ไอ้ระดับเมพสามโลกอะไรของท่านน่ะ คงจะหมายการถึงคุยโม้โอ้อวดไปวันๆ

    ใครเขียนอะไรผิดไว้ไม่ได้ เถหาเรื่องทันที ถ้าผมเขียนบทความให้ความรู้ต่อไปไม่ได้

    ท่าน Pos เขาต้องโทษท่านว่า ท่านคือต้นเหตุที่ทำให้เว็บเขาขาดคนเขียนบทความดีดีให้

    แล้วให้ท่านมาเขียนบทความแทน ถ้าท่านไม่เขียน ก็จะไม่มีใครเขียนให้อีกแล้ว

    ถ้าตราบใดที่ท่านยังไม่หยุด กาาก
    --------------------------------------------------------------------------------------------
    ขอแจ้งท่าน Pos ไว้ตรงนี้เลยว่า ผมไม่เขียนบทความต่อให้แล้วนะ เพราะมีคนมาคอยรบกวน
    ใครที่มีความรู้สามรถเขียนบทความต่อจากผมได้ เชิญตามสบายเลยนะครับ.




    อานนี้ก็โคดกาก เหอ เหอ คิดว่าตัวมันเองมีความสำคัยขนาดนั้นเลยเหยอ ไม่มีครายมาห้ามนายหลอกจะเขียนไม่เขียนต่างกันตงไหนไนเมื่อเขียนก็เขียนผิดอธิบายมั่วซัวผิดซะมาก ไม่เขียนอะเป็นบุญของคนอื่นที่หลงมาอ่านแล้ว กากเอ้ย เหอ เหอ มอบปืนใหญ่หยายบาซูก้าไปอีก

    oIIIIIIIo อานนี้หยายมากมาย เอาไปอมเล่นนะนายเผื่อจะฉลาดเป็นเมพสามโรคอย่างเราม้าง
    sak20102005
    sak20102005
    ระงับสมาชิก
    ระงับสมาชิก


    ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 96
    ความนิยม : 4
    เข้าร่วมเมื่อ : 07/04/2011

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by sak20102005 22/04/11, 09:00 pm

    อานนี้ก็โคดกาก เหอ เหอ คิดว่าตัวมันเองมีความสำคัยขนาดนั้นเลยเหยอ ไม่มีครายมาห้ามนายหลอกจะเขียนไม่เขียนต่างกันตงไหนไนเมื่อเขียนก็เขียนผิดอธิบายมั่วซัวผิดซะมาก ไม่เขียนอะเป็นบุญของคนอื่นที่หลงมาอ่านแล้ว กากเอ้ย เหอ เหอ มอบปืนใหญ่หยายบาซูก้าไปอีก

    oIIIIIIIo อานนี้หยายมากมาย เอาไปอมเล่นนะนายเผื่อจะฉลาดเป็นเมพสามโรคอย่างเราม้าง

    กาาก มากๆ กากก ไม่มีใครเกิน คำพูดแต่ละคำ เหมือนคนไร้การศึกษา.
    aut
    aut
    PSsix Powerful Scripting Class
    PSsix Powerful Scripting Class


    PSsix Game Coder
    จำนวนข้อความ : 472
    ความนิยม : 126
    เข้าร่วมเมื่อ : 24/07/2010

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by aut 22/04/11, 09:02 pm

    อุ๊ย เจอผู้มีกากศึกษาเข้าแย้ว เอาไปบรรเทาปวดไข่อีกอานนะ oIIIIIIIo
    POS
    POS
    PSsix
    PSsix


    ประกาศผลการแข่ง - Page 2 Empty ประกาศผลการแข่ง - Page 2 Empty ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 1152
    ความนิยม : 326
    เข้าร่วมเมื่อ : 19/07/2010

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by POS 23/04/11, 06:27 am

    พอเถอะครับต่างคนต่างว่ากัน ก็ไม่สามารถจบ ถือว่าผมขอให้จบตรงนี้อย่าโฟสต่ออีกครับ

    ผมจะไม่ล็อกกระทู้เพราะน่าจะพูดกันรู้เรื่องแล้วนะครับ และจะปล่อยข้อความทิ้งไว้ เผื่อวันหน้าอารมณ์เย็นขึ้นกลับมาดูจะเห็นว่าเรื่องที่พิมพ์ๆ กันไป มันไม่มีอะไรเลย ดูจะเป็นเรื่องขำเสียอีก(อย่าโกรธผม) บางครั้งบางเรื่องที่ผ่านเข้ามาในชีวิต อาจทำให้คุณอารมณ์เสียหงุดหงิด อาจทำให้โกรธจนลืมเหตุผลในการตอบโต้ แต่เมื่อเวลามันผ่าน ก็ต้องปล่อยมันไป ไม่มีใครอยู่ได้ด้วยการเก็บความโกรธไว้ชั่วชีวิตครับ

    ขอจบเพียงเท่านี้ สวัสดี
    sak20102005
    sak20102005
    ระงับสมาชิก
    ระงับสมาชิก


    ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 96
    ความนิยม : 4
    เข้าร่วมเมื่อ : 07/04/2011

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by sak20102005 23/04/11, 04:02 pm

    ปรับปรุงโค๊ดมาให้ใหม่ ตัดลูกเล่นออก โค๊ดหดเหลือนิดเดียว
    เปลี่ยนคำสั่งลูปจาก While, For เป็น Do, While
    ลองนำไปศึกษาเปรียบเทียบหลักการเขียนโค๊ดคำสั่งกันดูครับ

    Code:
    #include <GuiEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <File.au3>

    Local $hkeynum = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
    Local $hkeyread = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
    Local $hForm = GUICreate("RegVirScan", 496, 314, -1, -1)
    Local $hEdit = GUICtrlCreateEdit("", 16, 8, 465, 257)
    Local $Btn_scan = GUICtrlCreateButton("Scan", 16, 280, 75, 25, $WS_GROUP)
    Local $Btn_open = GUICtrlCreateButton("Open log", 405, 280, 75, 25, $WS_GROUP)
    GUISetState()

    Do
       Local $nMsg = GUIGetMsg()
       Switch $nMsg
       Case $Btn_scan
          Local $i = 0
          While $i < 100
             $i += 1
             Local $REV = RegEnumVal($hkeynum, $i)
             Local $RR = RegRead($hkeyread, $REV)
             If @error <> 0 Then ExitLoop
             _GUICtrlEdit_AppendText($hEdit, @CRLF&'Value name:'&$REV&@CRLF&'Value data:'&$RR&@CRLF)
          WEnd
              _FileWriteLog(@DesktopDir & "\RegVirScan.log", _GUICtrlEdit_GetText($hEdit))
        Case $Btn_open
             ShellExecute(@DesktopDir & "\RegVirScan.log")
       EndSwitch
    Until $nMsg = $GUI_EVENT_CLOSE  ;Or use = -3
    ------------------------------------------------------------------------------------------------------
    ผมไม่ได้เจาะจงสอนใครโดยเฉพาะนะ อย่าเข้าใจผิดกัน แต่ผมมีความรู้อยู่บ้างนิดหน่อย
    แค่อ่านตำรา Programming แค่ 10 เข่ง เท่านั้น จะเห็นได้ว่า ถ้าอยากมีความรู้ก็ต้องลงทุนกันบ้าง
    บวกไอเดียของตนเองลงไปใน Project ที่สร้างบ่อยๆ อะไรๆ? ก็เกิดขึ้นได้เสมอ
    ------------------------------------------------------------------------------------------------------
    อธิบายโค๊ด:

    #include <GuiEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <File.au3>

    หมายถึง คำสั่งที่เขาเขียนไว้เป็นไฟล์.au3สำเร็จรูปแล้วเก็บไว้ในโปรแกรมAutoit
    เพื่อใช้อ้างอิงกับคำสั่งที่เราเขียนขึ้นมาใหม่ ถ้าไม่มีไฟล์เหล่านี้ ท่านจะต้องเขียนคำสั่งเพิ่มขึ้น ยาวเป็นกิโล
    ถ้าใครไปเปิดดูคำสั่งในไฟล์ที่เขาเขียนไว้ จะเห็นแนวทางการเขียนคำสั่งชัดเจนขึ้น (ประกาศตัวแปรไว้เป็นตับ)
    -------------------------------------------------------------------------------------------------
    เช่น ถ้ามีการอ้างอิงคำสั่ง #Include <File.au3> จะผูกติดอยู่กับคำสั่งที่เราต้องใช้เขียนเหล่านี้

    _FileCountLines
    _FileCreate
    _FileListToArray
    _FilePrint
    _FileReadToArray
    _FileWriteFromArray
    _FileWriteLog
    _FileWriteToLine
    _PathFull
    _PathGetRelative
    _PathMake
    _PathSplit
    _ReplaceStringInFile
    _TempFile
    -----------------------------------------------------------------------------------------
    Local $hkeynum = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
    Local $hkeyread = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'

    หมายถึง การประกาศและสร้างตัวแปร (Operator Variable) Hkey ของ Registry ขึ้นมา เดี๋ยวเราจะได้นำไปลูป

    การเขียนคำสั่งโดยไม่ประกาศตัวแปร ระบบจะไม่รู้ว่า ข้อมูลที่เราเขียนขึ้นเป็นชนิดอะไร
    หน่วยความจำในระบบจะถูกใช้อย่างสิ้นเปลือง และเราก็ไม่ค่อยรู้สึกถึงความเปลี่ยนแปลงนั้น จึงไม่ค่อยประกาศตัวแปรกัน
    มีความความรู้สึกแต่เพียงว่า ถ้าเกิด Error! ขึ้นเมื่อใด จะต้องไปค้นหาดูว่า ตัวแปรตัวไหนที่ทำให้เกิด Error!
    เมื่อประกาศแล้วก็หาย Error! ก็เท่านั้น.
    -----------------------------------------------------------------------------------------
    Local $i = 0
    While $i < 100
    $i += 1
    Local $REV = RegEnumVal($hkeynum, $i)
    Local $RR = RegRead($hkeyread, $REV)
    If @error <> 0 Then ExitLoop
    _GUICtrlEdit_AppendText($hEdit, @CRLF&'Value name:'&$REV&@CRLF&'Value data:'&$RR&@CRLF)
    WEnd
    _FileWriteLog(@DesktopDir & "\RegVirScan.log", _GUICtrlEdit_GetText($hEdit))

    ขออธิบายโค๊ดคำสั่งนี้แบบรวดเดียวจบเลยก็แล้วกัน

    RegEnumVal หมายถึง เป็นคำสั่งที่ใช้สำหรับดึงข้อมูลต่างๆที่เป็น Value name เท่านั้น ออกมาจาก registry
    แต่ไม่ได้ Value data ออกมา ทีนี้จะทำอย่างไร? มีอยู่ทางเดียว (แต่อาจมีหลายวิธี) ที่จะได้ Value data ออกมา
    คือ ต้องนำตัวแปรของคำสั่ง RegEnumVal ไปหาค่า value data โดยใช้คำสั่ง RegRead
    ฉนั้น.. ตัวแปร $REV เมื่อนำไปลูป จะได้ค่าออกมาเป็น ข้อมูลต่างๆที่เป็น Value name ออกมา
    ส่วนตัวแปร $RR เมื่อนำไปลูป จะได้ค่าออกมาเป็น ข้อมูลต่างๆที่เป็น Value data ออกมา
    ในระหว่างลูป ข้อมูลจะถูกทยอยส่งมาแสดงผลที่ Edit ด้วยคำสั่ง _GUICtrlEdit_AppendText
    เมื่อได้ข้อมูลจนครบแล้ว ก็จะสั่งเขียน-บันทึกข้อมูลเก็บไว้เปรียบเทียบอีกครั้งหนึ่ง ด้วยคำสั่ง _FileWriteLog
    -----------------------------------------------------------------------------------------
    แง่คิด:

    บางท่านคิดว่า ผู้ที่แนะนำแนวทางการ Programming ได้ เขาจะต้องเป็นผู้เชี่ยวชาญ ฉลาดรอบรู้
    เปล่าเลย เขามีสติปัญญาเท่าๆกันกับบุคคลทั่วไป แต่เขาได้ถูกฝึกมาเพื่อให้สามารถถ่ายทอดความรู้ได้เท่านั้น
    ไม่ได้รู้ไปเสียทั้งหมด บางอย่างก็ต้องอ้างอิงตำรา หรือ help ออกมา คนสอนมีอยู่หน้าที่เดียวคือ
    ทำอย่างไร? ที่จะถ่ายทอดความรู้ออกมา แล้ว คนที่เรียนรู้ เข้าใจบทเรียนได้ง่ายๆ
    เพราะแต่ละคน ระดับสติปัญญาย่อมไม่เท่ากัน.


    sak20102005
    sak20102005
    ระงับสมาชิก
    ระงับสมาชิก


    ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 96
    ความนิยม : 4
    เข้าร่วมเมื่อ : 07/04/2011

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by sak20102005 25/04/11, 12:58 am

    ผมมีเพื่อนโปรแกรมเมอร์เป็นชาวต่างประเทศอยู่หลายท่าน(เพิ่งจะรู้จัก)

    ทึ่งในความสามารถในการเขียนโค๊ด AutoIt เลยนำโค๊ดมาลงให้ดู

    ถ้ามีอะไรดีดีมีประโยชน์ ต่อการพัฒนาโปรแกรมเมอร์ไทย จะนำมาลงให้อีก

    TaskMgr
    Code:

    #include <array.au3>

    $tag_SYSTEM_THREADS=    "double KernelTime;" & _
                                "double UserTime;" & _
                                "double CreateTime;" & _
                                "ulong  WaitTime;" & _
                                "ptr    StartAddress;" & _
                                "dword  UniqueProcess;" & _
                                "dword  UniqueThread;" & _
                                "long  Priority;" & _
                                "long  BasePriority;" & _
                                "ulong  ContextSwitchCount;" & _
                                "long  State;" & _
                                "long  WaitReason"

    $tag_SYSTEM_PROCESSES=  "ulong  NextEntryDelta;" & _
                                "ulong  Threadcount;" & _
                                "ulong[6];" & _
                                "double CreateTime;" & _
                                "double UserTime;" & _
                                "double KernelTime;" & _
                                "ushort Length;" & _
                                "ushort MaximumLength;" & _
                                "ptr    ProcessName;" & _
                                "long  BasePriority;" & _
                                "ulong  ProcessId;" & _
                                "ulong  InheritedFromProcessId;" & _
                                "ulong  HandleCount;" & _
                                "ulong[2];" & _
                                "uint  PeakVirtualSize;" & _
                                "uint  VirtualSize;" & _
                                "ulong  PageFaultCount;" & _
                                "uint  PeakWorkingSetSize;" & _
                                "uint  WorkingSetSize;" & _
                                "uint  QuotaPeakPagedPoolUsage;" & _
                                "uint  QuotaPagedPoolUsage;" & _
                                "uint  QuotaPeakNonPagedPoolUsage;" & _
                                "uint  QuotaNonPagedPoolUsage;" & _
                                "uint  PagefileUsage;" & _
                                "uint  PeakPagefileUsage;" & _
                                "uint64 ReadOperationCount;" & _
                                "uint64 WriteOperationCount;" & _
                                "uint64 OtherOperationCount;" & _
                                "uint64 ReadTransferCount;" & _
                                "uint64 WriteTransferCount;" & _
                                "uint64 OtherTransferCount"

    $t=TimerInit()
    $temp=_WinAPI_ThreadnProcess()
    $temp[0][0]=TimerDiff($t)
    $temp[0][1]="PID"
    $temp[0][3]="WorkingSetSize"
    $temp[0][2]="ParentPID"
    $temp[0][4]="IsSuspended"
    _ArrayDisplay($temp, "Non-indented.")
    $t=TimerInit()
    $temp=_WinAPI_ThreadnProcess(1)
    $temp[0][0]=TimerDiff($t)
    $temp[0][1]="PID"
    $temp[0][3]="WorkingSetSize"
    $temp[0][2]="ParentPID"
    $temp[0][4]="IsSuspended"
    _ArrayDisplay($temp, "Indented proclist showing relations between processes.")
    $temp=0

    Func _WinAPI_ThreadnProcess($indent=0)
        Local $ret=dllcall("ntdll.dll", "int", "ZwQuerySystemInformation","int", 5, "int*", 0, "int", 0, "int*",0)
        Local $Mem=DllStructCreate("byte[" & $ret[4] & "]")
        Local $ret=dllcall("ntdll.dll", "int", "ZwQuerySystemInformation","int", 5, "ptr", DllStructGetPtr($MEM), "int", DllStructGetSize($MEM), "int*",0)
        Local $SysProc=DllStructCreate($tag_SYSTEM_PROCESSES, $ret[2])
        Local $SysProc_ptr=$ret[2]
        Local $SysProc_Size=DllStructGetSize($SysProc)
        Local $SysThread=DllStructCreate($tag_SYSTEM_THREADS)
        Local $SysThread_Size=DllStructGetSize($SysThread)
        Local $buffer, $i, $lastthread, $m=0, $NextEntryDelta, $k, $temp, $space, $l
        Local $avArray[10000][7]
        While 1

            $buffer=DllStructCreate("char[" & DllStructGetData($SysProc, "Length") & "]", DllStructGetData($SysProc, "ProcessName"))
            for $i=0 to DllStructGetData($SysProc, "Length")-1 step 2
                $avArray[$m][0]&=DllStructGetData($buffer, 1, $i+1)
            Next

            $avArray[$m][1]=DllStructGetData($SysProc, "ProcessId")
            $avArray[$m][3]=DllStructGetData($SysProc, "WorkingSetSize")/(1024) & " kB"
            $avArray[$m][2]=DllStructGetData($SysProc, "InheritedFromProcessId")
            $avArray[$m][4]=1
            $avArray[$m][5]=DllStructGetData($SysProc, "CreateTime")

            for $i=0 to DllStructGetData($SysProc, "Threadcount")-1
                $SysThread=DllStructCreate($tag_SYSTEM_THREADS, $SysProc_ptr+$SysProc_Size+$i*$SysThread_Size)
                if DllStructGetData($SysThread, "WaitReason") <> 5 Then
                    $avArray[$m][4]=0
                    ExitLoop
                Endif
          next
            $NextEntryDelta=DllStructGetData($SysProc, "NextEntryDelta")
            if NOT $NextEntryDelta Then ExitLoop
                $SysProc_ptr+=$NextEntryDelta
                $SysProc=DllStructCreate($tag_SYSTEM_PROCESSES, $SysProc_ptr)
            $m+=1
            ContinueLoop
        WEnd
        Redim $avArray[$m+1][7]
        If $indent =1 Then
            $temp = $avArray
            $space = ""
            For $i = 1 To UBound($temp, 1) - 1
                For $m = 0 To UBound($temp, 1) - 1
                    For $k = 1 To UBound($temp, 1) - 1
                        If $temp[$k][0] Then
                            If ($i - $m) < 1 Then
                                $space = ""
                                $avArray[$i][0] = $temp[$k][0]
                                $avArray[$i][1] = $temp[$k][1]
                                $avArray[$i][2] = $temp[$k][2]
                                $avArray[$i][3] = $temp[$k][3]
                                $avArray[$i][4] = $temp[$k][4]
                                $avArray[$i][5] = $temp[$k][5]
                                $temp[$k][0] = 0
                                ContinueLoop 3
                            Else
                                If $temp[$k][2] = $avArray[($i - $m - 1)][1] Then
                                    While 1
                                        If $avArray[($i - $m - 1)][1] < 5 Then ExitLoop
                                If $temp[$k][5] > $avArray[($i - $m - 1)][5] Then ExitLoop
                                        ContinueLoop 2
                                    WEnd
                                    $space = ""
                                    For $l = 1 To $avArray[($i - $m - 1)][6] + 1
                                        $space &= "  "
                                    Next
                                    $avArray[$i][0] = $space & $temp[$k][0]
                                    $avArray[$i][1] = $temp[$k][1]
                                    $avArray[$i][2] = $temp[$k][2]
                                    $avArray[$i][6] = $avArray[($i - $m - 1)][6] + 1
                                    $avArray[$i][3] = $temp[$k][3]
                                    $avArray[$i][4] = $temp[$k][4]
                                    $avArray[$i][5] = $temp[$k][5]
                                    $temp[$k][0] = 0
                                    ContinueLoop 3
                                EndIf
                            EndIf
                        EndIf
                    Next
                Next
            Next
            $temp=0
        EndIf

        ReDim $avArray[ubound($avArray,1)][5]
        Return $avArray
    EndFunc
    --------------------------------------------------------------------------
    Bandwidth Monitor

    Code:

    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    GUICreate("Bandwidth Monitor",220,100,0,0,-1,$WS_EX_TOOLWINDOW)
    WinSetOnTop("Bandwidth Monitor", "", 1)
    $label1 = GUICtrlCreateLabel ( "Waiting for data...", 10, 5,200,20)
    $progressbar1 = GUICtrlCreateProgress (10,20,200,20,$PBS_SMOOTH)
    $label2 = GUICtrlCreateLabel ( "Waiting for data...", 10, 50,200,20)
    $progressbar2 = GUICtrlCreateProgress (10,65,200,20,$PBS_SMOOTH)

    GUISetState ()

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"
    $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
    $inmax = 0
    $outmax = 0
    $lastin = 0
    $lastout = 0

    Do
        $colItems = $objWMIService.ExecQuery _
       ("SELECT BytesReceivedPersec,BytesSentPersec FROM Win32_PerfRawData_Tcpip_NetworkInterface", "WQL", _
       $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
        If IsObj($colItems) then
            For $objItem In $colItems
                $newin = $objItem.BytesReceivedPersec
                $newout = $objItem.BytesSentPersec
                if $lastin = 0 and $lastout = 0 Then
                    $lastin = $newin
                    $lastout = $newout
                endif
                $in = $newin - $lastin
                $out = $newout - $lastout
                $lastin = $newin
                $lastout = $newout
                if $in <> 0 and $out <> 0 Then
                 if $in > $inmax then $inmax = $in
                 if $out > $outmax then $outmax = $out
                 $inP = int(($in / $inmax) * 100)
                 $outP = int(($out / $outmax) * 100)
                 $intext = "Bytes In/Sec: " & int($in) & " [" &$inP & "% of record]" & @CRLF
                 $outtext = "Bytes Out/Sec: " & int($out) & " [" &$outP & "% of record]" &@CRLF
                    GUICtrlSetData ($progressbar1,$inP)
                 GUICtrlSetData ($label1,$intext)
                    GUICtrlSetData ($progressbar2,$outP)
                    GUICtrlSetData ($label2,$outtext)
             EndIf
             ExitLoop
            Next
        EndIf
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    sak20102005
    sak20102005
    ระงับสมาชิก
    ระงับสมาชิก


    ประกาศผลการแข่ง - Page 2 Empty
    จำนวนข้อความ : 96
    ความนิยม : 4
    เข้าร่วมเมื่อ : 07/04/2011

    ประกาศผลการแข่ง - Page 2 Empty Re: ประกาศผลการแข่ง

    ตั้งหัวข้อ by sak20102005 25/04/11, 08:17 pm

    อันนี้โค๊ดของผมออกแบบเอง Net Meter ใช้วิธี Ping กับ เว็บ Google ซึ่งมีอยู่ทั่วโลก.
    ถ้า Ping กับ Google ไม่ได้ อย่าหวังที่จะออนไลน์ได้ เหมาะสำหรับใช้กับ Mobile Net Modem.
    Send คือ ข้อมูลแพ็คเกจรวม ตัวเลขจะเปลี่ยนแปลงไปเรื่อยๆ.
    em218

    Code:

    #NoTrayIcon
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>

    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)

    Global $curr

    Local $hWnd = GUICreate("Net Meter", 265, 19, 750, 713, _
    BitOR($WS_MINIMIZEBOX,$WS_SYSMENU,$WS_POPUP,$WS_GROUP,$WS_CLIPSIBLINGS), _
    BitOR($WS_EX_OVERLAPPEDWINDOW,$WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
    GUISetIcon(@WindowsDir&"\Network Diagnostic\xpnetdiag.exe", -1, $hWnd)
    Local $hProgress = GUICtrlCreateProgress(2, 2, 262, 17, -1, BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUISetState(@SW_SHOW)

    TraySetClick(1+16)
    Local $infoitem = TrayCreateItem("Info")
    TrayItemSetOnEvent(-1,"ShowInfo")
    TrayCreateItem("")
    Local $exititem = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"ExitScript")
    TraySetIcon(@WindowsDir&"\Network Diagnostic\xpnetdiag.exe", -1)
    TraySetState()

    Do
       If @IPAddress1 <> '127.0.0.1'Then
            $curr = Ping("[You must be registered and logged in to see this link.] 4000)
          GUICtrlSetData($hProgress, $curr/100*10)
          ToolTip("Status:Online IP:"&@IPAddress1&" Send:"&$curr&".ms" ,752, 695, "")
          If $curr <= 0 Or GUICtrlRead($hProgress) <= 0 Then
              ToolTip("No,signal..Please wait! ", 820, 695, "")
             GUICtrlSetData($hProgress, 0)
          Else
               GUICtrlSetData($hProgress, $curr/100*10)
          EndIf
       Else
            ToolTip("Status:Offline IP:"&@IPAddress1&" Send:"&$curr&"0.ms" ,775, 695, "")
           GUICtrlSetData($hProgress, 0)
        EndIf
    Until GUIGetMsg() = -3

    Func ShowInfo()
        Msgbox(4096,"Net Meter","Create by:sak2005", 0, $hWnd)
    EndFunc

    Func ExitScript()
        Exit
    EndFunc
    ------------------------------------------------------------------------------------------------------
    อันนี้ปรับปรุงมาให้ใหม่ สามารถใช้เม๊าท์จับ GUI เคลื่อนย้ายไปไว้ตรงไหนก็ได้.

    Code:
    #NoTrayIcon
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <SendMessage.au3>

    Opt("TrayOnEventMode",1)
    Opt("TrayMenuMode",1)

    Global Const $SC_DRAGMOVE = 0xF012
    Global $curr

    Local $hGUI = GUICreate("Net Meter", 228, 35, -1, -1, _
    BitOR($WS_MINIMIZEBOX,$WS_SYSMENU,$WS_POPUP,$WS_GROUP,$WS_CLIPSIBLINGS), _
    BitOR($WS_EX_OVERLAPPEDWINDOW,$WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
    GUISetBkColor(0x000000, $hGUI)
    GUISetIcon(@WindowsDir&"\Network Diagnostic\xpnetdiag.exe", -1, $hGUI)
    GUICtrlSetCursor(-1, 3)
    Local $Progress = GUICtrlCreateProgress(1, 16, 225, 17)
    GUICtrlSetCursor(-1, 3)
    Local $Label = GUICtrlCreateLabel(@TAB&"Sending Data Please wait!", 1, 1, 298, 15)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetCursor(-1, 3)
    GUISetState(@SW_SHOW)

    TraySetClick(1+16)
    Local $infoitem = TrayCreateItem("Info")
    TrayItemSetOnEvent(-1,"ShowInfo")
    TrayCreateItem("")
    Local $exititem = TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1,"ExitScript")
    TraySetIcon(@WindowsDir&"\Network Diagnostic\xpnetdiag.exe", -1)
    TraySetState()

    While 1
       Local $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_PRIMARYDOWN
             _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0)
          Case 0
             If @IPAddress1 <> '127.0.0.1'Then
                 $curr = Ping("[You must be registered and logged in to see this link.] 4000)
                 GUICtrlSetData($Progress, $curr/100*10)
                 GUICtrlSetData($Label,"Status:Online IP:"&@IPAddress1&" Send:"&GUICtrlRead($Progress)*10&".ms")
             Else
                GUICtrlSetData($Progress, $curr/100*10)
                 GUICtrlSetData($Label,"Status:Offline IP:"&@IPAddress1&" Send:"&GUICtrlRead($Progress)*10&".ms")
             EndIf
       EndSwitch
    WEnd

    Func ShowInfo()
        Msgbox(4096,"Net Meter","Create by:sak2005", 0, $hGUI)
    EndFunc

    Func ExitScript()
        Exit
    EndFunc


      เวลาขณะนี้ 26/04/24, 08:45 pm