ฟอรั่ม 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


4 posters

    รวมผลงาน บทความ+โปรแกรม ของ sak2005

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


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 08/05/11, 12:28 am

    เก็บรวมรวมผลงานของ sak2005 มาไว้ที่นี่ ใครสนใจก็เข้ามาศึกษาค้นคว้าได้

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

    ------------------------------------------------------------------------------------------------------------

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

    จะไม่มีการตอบปัญหาให้กับผู้ใดในกระทู้ผู้อื่น ยกเว้นถ้ามาโฟสท์ถามไว้ที่นี่ ถ้าตอบได้ ก็จะตอบให้
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 08/05/11, 01:21 am

    วิธีการลงทะเบียนโปรแกรมอัตโนมัติในรูปแบบต่างๆ

    มีหลายท่านสนใจที่จะเรียนรู้ว่า เวลาสั่งติดตั้งโปรแกรมอัตโนมัติ โดยใช้พารามิเตอร์ SilentMode

    เสร็จแล้ว เขามีวิธีลงทะเบียนโปรแกรมอัตโนมัติต่อท้ายยังไง?

    โดยที่ไม่ต้องนั่งลงทะเบียนให้โปรแกรมภายหลัง คือทำแบบรวดเร็วจบเลย

    เพราะโดยปกติ การติดตั้งโปรแกรมแบบอัตโนมัติ โดยใช้พารามิเตอร์

    ไม่มีใครสามารถที่จะลงทะเบียนไปพร้อมๆกับการติดตั้งอัตโนมัติได้

    ต้องเขียนสคริ๊ปคำสั่งขึ้นใช้งานเองเป็นพิเศษถึงจะทำได้

    ยกเว้นการใช้วิธีรันไฟล์ .reg ต่อท้าย หรือวิธีอื่นๆที่ดีกว่า เช่น . ใช้โปรแกรม MultiSet หรือ WPI

    แต่ถึงกระนั้น ทั้ง MultiSet และ WPI ก็ยังไม่สามารถลงทะเบียนแบบอัตโนมัติได้อยู่ดี

    ถ้าไม่นำไฟล์ .reg เข้าประยุกต์ใช้งานร่วม

    ---------------------------------------------------------------------------------------

    ดาวน์โหลดโปรแกรมตัวช่วยได้ที่นี่ : โปรแกรม CMenu : Download คลิกที่นี่

    Pass: 5002kas

    HP:http://users.tpg.com.au/mpheath/cmenu/



    แก้ไขล่าสุดโดย newsak2005 เมื่อ 08/05/11, 03:31 am, ทั้งหมด 2 ครั้ง
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 08/05/11, 01:50 am

    วิธีใช้งานโปรแกรม : CMenu

    เมื่อท่านติดตั้งโปรแกรมเสร็จเรียบร้อยแล้ว โปรแกรม CMenu

    จะไปปรากฏให้ท่านเลือกใช้งานในเมนูคลิ๊กขวาของวินโดว์ (ConTextMenu)

    เรามาดูกันว่า แต่ละออฟชั่นของ CMenu ใช้งานยังไง? และใช้ทำประโยชน์อะไรได้บ้าง?

    ใครที่ยังไม่ได้ลงโปรแกรม AutoIt v3 และ SciTe4 ไว้ จัดการหามาลงไว้ได้เลยครับ

    เพราะ CMenu ใช้งานร่วมกับ AutoIt v3 ได้เป็นอย่างดี

    และจะมีการสอนการใช้งาน AutoIt v3 เบื้องต้นไปในตัวด้วย จะเน้นเรื่องวิธีการเขียนสคริ๊ปคำสั่งให้เป็นหลัก

    เพราะถัาไม่รู้หลักหรือเทคนิคการเขียนคำสั่ง จะไม่มีทางเรียนรู้ Autoit v3 ให้เจริญก้าวหน้าไปได้.

    คนที่เจริญก้าวหน้าจากการเรียน Autoit v3 จะสามารถคิดและเขียนโปรแกรมต่างๆได้อย่างรวดเร็ว

    สามารถออกแบบดีไซด์โค๊ดคำสั่งได้ทุกรูปแบบ ไม่ว่าจะเขียนออกมาเป็นโปรแกรมอะไร?

    สามารถเข้าใจในความหมายของคำสั่งที่เขียนว่า เขียนสั่งควบคุมให้อะไร?ทำงาน , แบบไหน? , อย่างไร?
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Clip1

    ตั้งหัวข้อ by newsak2005 08/05/11, 12:42 pm

    ใช้สำหรับหาค่า Parameter ของโปรแกรมที่จะทำการติดตั้งแบบอัตโนมัติ

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

    -----------------------------------------------------------------------------------------------------------------------------

    ถ้าโปรแกรมใดๆหาค่า Parameter ไม่ได้ จะปรากฏหน้าต่างนี้ขึ้นมา ท่านสามารถนำไปประยุกต์ สุ่มหาค่า Parameter อีกครั้งได้

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

    ----------------------------------------------------------------------------------------------------------------------------

    ส่วนการใช้งานออฟชั่นอื่นๆ ใครมีข้อสงสัยก็ถามกันมานะครับ จะไม่อธิบายให้ทั้งหมด เดี๋ยวจะเสียเวลาเขียนอย่างอืนต่อ
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 08/05/11, 02:10 pm

    ตัวอย่างการเขียนโค๊ดคำสั่ง Autoit v3 แบบ Single Install

    ใครที่ยังไม่ได้ติดตั้งโปรแกรม Winamp5 ให้ไปหาดาวน์โหลด Winamp5 มา แล้วสั่งติดตั้งด้วยโค๊ดนี้กันดูครับ

    เป็นโค๊ดที่เขียนไว้ให้ง่ายต่อการนำไปประยุกต์ใช้ติดตั้งโปรแกรมอื่นๆต่อไป.

    Code:

    #NoTrayIcon
    #include <Process.au3>

    Local $program_path = @ProgramFilesDir&'\Winamp\winamp.exe'
    Local $msgtitle = 'Winamp5 AutoSetup', $txt = 'มีโปรแกรมนี้ติดตั้งไว้แล้ว'
    Local $msgtext = 'ท่านต้องการติดตั้งโปรแกรมนี้ใช่หรือไม่?', $flag = 36, $btn
    Local $filesetup = @ScriptDir&'\winamp5572full.exe', $param = '/S /NCRC'
    Local $tiptext = 'กำลังติดตั้ง..โปรดรอสักครู่!', $completetext = 'Installation complete'

    If FileExists($program_path) Then
       MsgBox(4096, $msgtitle, $txt)
        Exit
    EndIf

    $btn = MsgBox($flag, $msgtitle, $msgtext)
    If $btn = 7 Then Exit
    $pid = Run($filesetup&' '&$param)
    Dim $i = 0
    While ProcessExists($pid)
       $i += 1
       ToolTip($tiptext, 400, 300, "Time:"& $i & ".sec")
       Sleep(1000)
       If ProcessExists($pid) = 0 Then ExitLoop
    WEnd
        ToolTip("")
       MsgBox(64, "", $completetext)
       Exit

    -------------------------------------------------------------------------------------------------------------------
    ท่านใดสนใจจะนำความรู้ไปเผยแพร่ยังเว็บของท่าน เชิญได้ตามอัธยาศัย ไม่ต้องให้เครดิตก็ได้
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 08/05/11, 06:18 pm

    บางท่านอาจมีความรู้ภาษาอื่นๆอยู่ด้วย เช่น Visual Basic การเขียนไฟล์สกุล .vbs

    ขึ้นมาใช้งานจึงไม่ใช่เรื่องยาก ผมจึงถือโอกาสแนะนำการเขียนคำสั่ง AutoitX3 ซะเลย

    ผมเคยลงความรู้เกี่ยวกับ AutoItX3 ให้กับบางเว็บบอร์ด ที่เขาอยากให้ผมไปลงความรู้ให้

    ท่านใดที่สนใจลองไปค้นหาในกูเกิลดูได้ ผมลงไว้นานแล้ว บทความน่าจะยังอยู่

    ----------------------------------------------------------------------------------

    โค๊ด AutoItX3 (*.vbs) ใช้ได้เหมือนกันกับโค๊ดด้านบน

    คำสั่งค่อนข้างเขียนยาก จึงไม่ค่อยเห็นใครเขียนให้ดูซักเท่าไหร่

    ขนาดผมเองยังนั่งออกแบบคำสั่งอยู่เป็นชั่วโมงจึงเขียนได้สำเร็จ

    ใครคิดว่าเขียนกันได้ง่ายๆ ลองดูซีแล้วจะรู้

    ขนาดตัวอย่างคำสั่ง Process ใน Help แท้ๆ ยังเขียนคำสั่งไว้ผิดเลย ผมทดลองรันดู Error! ตลอด.
    ----------------------------------------------------------------------------------------------------
    Code:

    On Error Resume Next
    Dim oShell, oAutoIt, btn

    title = "Winamp5 AutoSetup"
    text = "ท่านต้องการติดตั้งโปรแกรมนี้ใช่หรือไม่?"
    flag = 36
    fileparamsetup = "winamp5572full.exe /S /NCRC"
    Set oShell = CreateObject("WScript.Shell")
    Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
    btn = oShell.Popup(text, 0 , title, flag)
    If btn = 7 Then WScript.Quit()
    pid = oAutoIt.Run (fileparamsetup)
    i = 0
    Do
    i = i + 1
    oAutoIt.ToolTip "Installing.."& i &".sec", 400, 300
    oAutoIt.Sleep 1000
    Loop Until oAutoIt.ProcessExists(pid)= False
    oAutoIt.ToolTip ""
    MsgBox "Installation complete", 64, ""
    Set oShell = Nothing
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 09/05/11, 11:39 am

    เรามาลองหัดใช้คำสังที่เกี่ยวข้องกับดอสที่มีให้เลือกใช้ใน Autoit v3 กันบ้าง

    ผมจะไม่อธิบายรายละเอียดใดๆในคำสั่งให้ทราบ จะลงแต่โค๊ดไว้ให้เท่านั้น

    สงสัยคำสั่งตรงไหนก็โพสท์ถามไว้ จะได้ไม่ต้องเสียเวลาอธิบายโค๊ดให้ทั้งหมด

    คำสั่งที่รันหรือทำงานในระบบปฏิบัติการดอสได้ (เท่าที่ทราบ) มีดังนี้

    1. @ComSpec ใช้ร่วมกับคำสั่ง Run
    2. _RunDos ต้องอ้างสคริ๊ป includ Process.au3 ด้วย
    -------------------------------------------------------------------------------
    Code:

    #NoTrayIcon
    #include <Process.au3>

    $error_message = 'เกิดข้อผิดพลาด! ไม่สามารถติดตั้งได้'
    $fCommand_param = 'winamp5572full.exe /S /NCRC'
    $complete_message = 'Installation complete'
    $flag = 36
    $title = 'Winamp5 AutoSetup'
    $text = 'Do you wanted to Install?'
    Local $btn = MsgBox($flag, $title, $text)
    Select
        Case $btn = 6
            ToolTip("Installing..please wait!", 400, 300, "")
            _RunDOS($fCommand_param)
            If @error Then
               ToolTip("")
               MsgBox(48, "", $error_message)
                Exit
            EndIf
            _RunDOS('exit')
            ToolTip("")
            MsgBox(64, "", $complete_message)
            Exit
    EndSelect
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 09/05/11, 02:08 pm

    ไฟล์ที่มีสกุลเป็น *.cmd, *.bat, *.vbs, และ *.js แทบจะไม่ต้องคอมไพล์ให้เป็นไฟล์สกุล *.exe เลย

    วินโดว์มันรู้จักอยู่แล้ว สั่งรันโดยตรงได้เลย ด้วยเหตุนี้ พวก Cracker ทั้งหลาย มักนิยมนำไปเขียนเป็นไวรัสกัน

    เรามาดูวิธีเขียนคำสั่งจาวาสคริ๊ป ไฟล์สกุล .js กันบ้าง
    -------------------------------------------------------------------------------------------------------------
    Code:

    filesetup = "winamp5572full.exe";
    param = "/S /NCRC";
    text = "Do you wanted to Install?";
    title = "Winamp5 AutoSetup";
    flag = 36;
    install_msg = "Installing..please wait!";
    complete_msg = "Installation complete";
    var ShellObj=new ActiveXObject("WScript.Shell");
    btn = ShellObj.Popup(text, 0, title, flag);
    switch (btn) {
                      case 6:
                ShellObj.Popup(install_msg, 2, title, 64);
                ShellObj.Run(filesetup+" "+param, 0, true);
                WScript.Echo(complete_msg);
                WScript.Quit();
    }         


    แก้ไขล่าสุดโดย newsak2005 เมื่อ 09/05/11, 05:54 pm, ทั้งหมด 1 ครั้ง
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 09/05/11, 05:25 pm

    เกือบลืมโปรแกรมเด็ดไปเลย AutoHotkey ไฟล์สกุล *.ahk

    ยังมีโปรแกรมภาษาอื่นๆอีกที่ผมเขียนได้

    อยากให้เขียนโค๊ดคำสั่งภาษาอะไร?ก็แนะนำกันมาก็แล้วกัน

    ยกเว้น..ภาษาคนที่พูดกันไม่ค่อยจะรู้เรื่อง..เพราะเข้าใจได้ยากจริงๆ (สำหรับอ่านแก้เครียด อิอิ++)
    -----------------------------------------------------------------------------------------------------
    Code:

    #NoEnv 
    SendMode Input 
    SetWorkingDir %A_ScriptDir%
    Title = Winamp5 AutoSetup
    TextMsg = Do you wanted to Install?
    filesetup = winamp5572full.exe
    param = /S /NCRC
    completeMsg = Installation complete
    tiptext = Installing..please wait!
    MsgBox , 36, %Title%, %TextMsg%, 0
    IfMsgBox, No
    Return
    ToolTip, %tiptext%, 400, 300
    RunWait, %filesetup% %param%
    ToolTip
    MsgBox, 64,, %completeMsg%
    ExitApp


    แก้ไขล่าสุดโดย newsak2005 เมื่อ 09/05/11, 07:30 pm, ทั้งหมด 1 ครั้ง
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 09/05/11, 05:45 pm

    Flash Setup อันนี้ถ้าใครสามารถเขียนโปรแกรมแฟลช ให้สามารถติดตั้งโปรแกรมอื่นได้

    ผมจะยกคนนั้นให้เป็นสุดยอดฝีมือเลยทีเดียว

    แต่มีข้อแม้ว่า ห้ามลอกเรียนแบบจากบทความเก่าที่ผมลงไว้เท่านั้นก็พอ

    คนที่เขียน Action Script ในแฟลชเป็นเท่านั้นถึงจะทำได้
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 09/05/11, 07:50 pm

    บ่นให้ฟัง

    ผมเขียนบทความของผมไปได้เรื่อยๆ เพราเคยชินกับการเขียนซะแล้ว

    วันไหนไม่ได้เขียนให้ความรู้ใคร เหมือนขาดอะไรไปซักอย่าง

    นี่ก็6ปีเข้่าไปแล้วที่เขียนบทความต่างๆไว้บนอินเทอร์เน็ต

    บางบทความก็ยังอยู่ และบทความบางอาจเป็นอดีตไปแล้ว

    เหลือไว้แต่บุคคลากรของชาติ ที่มีความรู้เพิ่มขึ้น.

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


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 09/05/11, 11:29 pm

    ความรู้เพิ่มเติมเกี่ยวกับการลงทะเบียนโปรแกรมด้วยวิธีการต่างๆ

    เราจะปฏิเสธไม่ได้เลยว่า ส่วนหนึ่งของโปรแกรม ไม่ได้ซื้อลิขสิทธิ์เขามา

    แต่สามารถใช้งานโปรแกรมได้เกือบเต็มเวอร์ชั่น ด้วยวิธีการแคร็ก (Crack)

    หรือปลดล๊อคโปรแกรมนั่นเอง ผู้ที่ผลิต Crack ออกมา เขาคิดอยู่อย่างเดียวว่า

    ถ้าสามารถปลดล๊อคโปรแกรมใดๆได้ ก็จะได้รับความยกย่องว่าเก่ง ว่าเป็นยอดคนอัจฉริยะ

    มีการจัดอันดับสุดยอด Cracker ไว้ในต่างประเทศด้วย บางคนเมื่อCrackโปรแกรมใดๆได้แล้ว

    จะนำCrackออกจำหน่าย หรือ แจกฟรี ให้กับคนที่ต้องการ ทำให้โปรแกรมเมอร์ที่พัฒนาโปรแกรมต่างๆ

    ปรับตัวรับสถานการณ์ Crack แทบไม่ทัน คล้ายกับแผ่นผีซีดีเถื่อน ถ้าเป็นหนังดังเป็นที่นืยม

    หนังกำลังฉายยังไม่ทันออกโรงเลย มีมือดีนำมาทำแผ่นขายซะแล้ว

    เจ้าหน้าที่ที่เกี่ยวข้องก็ตามจับกันลำบาก เพราะพวกนี้จะเปลี่ยนวิธีการจำหน่ายไปเรื่อยๆให้ยากต่อการถูกจับกุม

    สรุปแล้ว เรามาช่วยกันอุดหนุนของดีที่มีลิขสิทธ์ถูกต้องกันดีกว่า

    อย่างน้อยก็ช่วยให้เราสบายใจที่ใช้ของที่ได้มาถูกต้องตามกฏหมาย.
    -------------------------------------------------------------------------
    ผมไม่ได้สอนวิธีCrackให้โดยตรงนะครับ เดี๋ยวจะมีคนมาแซวอีกว่า 'ปากว่า แต่ตาขยิบ'

    ความรู้วิธีการต่างๆเหล่านี้ ต้องศึกษาค้นคว้ากันเอง เรียกง่ายๆว่าเป็น 'วิชามาร' ไม่ค่อยมีใครเขาสอนกัน

    เท่าที่ทราบ การลงทะเบียนโปรแกรมมีอยู่หลายแบบหลายวิธี ดังนี้

    1.Registry.reg
    2.Keygen
    3.Patcher

    แต่มีการลงทะเบียนอยู่แบบนึงที่ทำได้แนบเนียนมาก คือการลงทะเบียนทาง Registry ด้วยคำสั่ง RegWrite

    ผมสามารถทำได้ แต่ไม่สามารถบอกใครได้ ฉนั้นท่านที่สนใจลองไปศึกษาค้นคว้ากันดู

    ขอให้คิดแต่เพียงว่า 'ไม่มีใครเก่งไปกว่าใคร' ผมทำได้ คุณก็ต้องทำได้.

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


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 10/05/11, 09:40 am

    วิธีสร้างไตเติ้ลเมนูและเมนูคลิ๊กขวาบน GUI (Main Menu & Context Menu)

    เปิดเผยรายละเอียดทุกขั้นตอน เกี่ยวกับเทคนิคการการสร้างโปรแกรมที่มี..

    Main Menu (Toolbar Options) และ Context Menu (RightClick Menu) เป็นส่วนประกอบ

    เพื่อเป็นการปูพื้นฐาน มาตรฐานการออกแบบสร้างโปรแกรมและเทคนิคเขียนคำสั่งควบคุม

    อาจารย์ไปตระเวณบรรยายมาหลายเว็บแล้ว ทำดีเกินไป เลยถูกต่อต้านจากผู้ไม่หวังดีอยู่ตลอดเวลา

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

    ถ้าลงบทความให้ล่าช้ายังไงต้องขออภัย ท่านสามารถเข้ามา Update ความรู้กันได้เรื่อยๆ.
    -----------------------------------------------------------------------------------------------------------------
    การสร้างโปรแกรม สามารถทำได้ 2 วิธี

    1. ใช้โปรแกรม Visaul Design Editor (Koda design) และ เขียนโค๊ดเพิ่มเติมให้สมบูรณ์

    2. เขียนสคริ๊ปคำสั่งกันล้วนๆ เพื่อออกแบบสร้างโค๊ดโปรแกรมขึ้นมา

    ดูเหมือนว่าจะต้องผสมผสานทั้งสองวิธีเข้าด้วยกัน

    จึงจะสามารถช่วยให้การดำเนินงาน การสร้าง Program Porject เป็นไปอย่างมีประสิทธิภาพได้.
    ------------------------------------------------------------------------------------------------------------
    คิดว่าทุกท่านที่จะเข้าถึงบทเรียน คงจะติดตั้งโปรแกรม AutoIt v3 และโปรแกรม SciTe4 ไว้กันหมดแล้ว

    เรามาลองสร้างโปรแกรมอะไรที่สนุกๆ ท้าทายความสามารถกัน

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

    เมื่อท่านเข้ามาขวนขวายศึกษาหาความรู้จนกระจ่างแจ้งแล้ว

    ท่านจะรู้สึกรับทราบภายหลังเองว่า..มีอะไรดีีีดีเกิดขึ้นมาใหม่กับตัวของท่านอีกเยอะเลย.
    ------------------------------------------------------------------------------------------------------------
    เพื่อความสดวกในสร้าง Program Project

    เราจำเป็นจะต้องรู้วิธีการเรียกใช้งานโปรแกรมส่วนประกอบของ AutoIt อย่างรวดเร็ว ดังนี้

    สร้างไฟล์ Script Editor ขึ้นมาก่อน

    1.คลิ๊กขวาที่พื้นที่ว่างบนหน้าจอ ..เลือก New ..เลือกคลิ๊กที่ AutoIt v3 Script

    จะได้ไฟล์สกุล *.au3 ขึ้นมาใช้งานบนหน้าจอ

    2.คลิ๊กขวาที่ ไฟล์สกุล *.au3 ที่สร้าง ..เลือก Edit Script ..จะปรากฏหน้าต่างสำหรับเขียนโค๊ดคำสั่ง

    [You must be registered and logged in to see this image.]
    ------------------------------------------------------------------------------
    ***ใครที่อยากนำบทความไปไว้ในเว็บบอร์ดอื่น ท่านต้องนำบทความไปเรียบเรียง ปะติดปะต่อกันเองนะครับ***


    แก้ไขล่าสุดโดย newsak2005 เมื่อ 12/05/11, 11:32 pm, ทั้งหมด 6 ครั้ง
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 10/05/11, 10:16 am

    เมื่อทุกท่านพร้อมกันแล้ว เราจะมาลองสร้างโปรแกรมเรียนแบบให้เหมือนโปรแกรม Notepad กัน

    ใครที่เรียนแบบได้เหมือนและใช้งานได้ดีที่สุด ถือว่าประสบความสำเร็จในการเรียนรู้ AutoIt v3 ในระดับหนึ่ง
    -----------------------------------------------------------------------------
    เมื่อเปิดหน้าต่าง Script Editor ขึ้นมาแล้ว ให้คลิ๊กที่เมนู Tools และเลือกคลิ๊กที่ Koda(FormDesigner) หรือกด Alt+m

    ที่ในกรอบ Object TreeView ใช้สำหรับคลิ๊กเลือก Form หรือ Object ใดๆ ที่ต้องการปรับแต่งรายละเอียดเพิ่มเติม

    ที่ในกรอบ Object Inspector ใช้สำหรับเข้าไปเลือกปรับแต่งรายละเอียดของ Form หรือ Object นั้นๆ และอื่นๆ

    ไปที่กรอบ Object Inspector เลือก properties ปรับขนาดสัดส่วนของ Form

    ให้มีขนาด ความกว้าง[Width] = 500 และ ส่วนสูง[Height]= 250

    ใส่ออบเจ็คท์ Edit ลงบน Form และปรับขนาดสัดส่วนของ Edit ให้เต็มพื้นที่หน้าต่าง Form

    ใส่ Main Menu ลงบน Form หรือ Edit ก็ได้ และทำการปรับแต่ง Main Menu เพิ่มเติมดังนี้

    คลิ๊กปุ่มที่อยูในช่อง [Main menu] จะปรากฏหน้าต่าง Menu Designer ขึ้นมา

    บนหน้าต่างจะเห็นแต่ MenuItem เปล่าๆไม่มีตัวอักษร สีน้ำเงินอยู่อันเดียว หมายถึง ยังไม่มีการปรับแต่งใดๆ

    ถ้ามีการปรับเมื่อใดจนปรากฏ ตัวอักษร MenuItem ให้เห็น แสดงว่าได้สร้า้งเมนูให้ปรากฏขึ้นแล้ว

    ถ้าไม่มี MenuItem แรก จะไม่สามารถสร้าง MenuItem หรือ SubMenuItem อื่นๆขึ้นมาได้

    คลิ๊กขวาที่ MenuItem เปล่าๆ ที่ไม่มีตัวอักษรนั้น และเลือก Insert

    เป็นการสร้าง MenuItem อันแรกขึ้นมา เปลี่ยนชื่อเมนูต่างๆได้ที่ช่อง Caption

    ให้คลิ๊กขวาที่เมนูอันแรกนั้นและเลือก Insert ..ทำซ้ำแบบนี้ไปเรื่อยๆ จนได้เมนูครบ 5 เมนู (จากซ้ายไปขวา)

    สร้าง เมนูชั้นต่างๆไว้ในเมนูทั้ง 5 อันอีกชั้นหนึ่ง ..คลิ๊กซ้ายเลือกที่ชื่อ MenuItem อันใดอันหนึ่งก่อนก็ได้ ที่อยู่บนหน้าต่าง Menu Designer

    จากนั้นคลิ๊กขวา ..เลือก Create Sub Menu ..จะได้เมนูย่อยเปล่าๆอันแรกขึ้นมา (จากบนลงล่าง)

    ให้คลิ๊กที่เมนูเปล่าๆนั้น ..เลือก Insert ได้ MenuItem ขึ้นมาใหม่ แต่เกิดขึ้นถัดลงมาด้านล่าง หรือเรียกง่ายๆว่า MenuItem ย่อย

    สามารถสร้้้างได้อีกหลายๆชั้น จากบนลงล่าง ถ้าสร้างแล้วเมนูปรากฏเกิดขึ้น จากซ้ายไปขวา

    เรียกว่า SubMenu Item หรือ SubMenu Item ย่อย

    ทำซ้ำแบบเดิมไปเรื่อยๆ ให้ได้ชั้นเมนูครบตามต้องการ (จากบนลงล่างหรือจากซ้ายไปขวา)

    ให้ท่านทดลองทำกันดูนะครับ แรกๆอาจสับสนหรืองงนิดหน่อย

    ใส่ Toolbar ให้กับ Main Menu ..คลิ๊กที่ Custom ..เลือก Toolbar

    ใส่เมนูคลิ๊กขวา ..คลิ๊กที่ Standard ..เลือก Context Menu

    เข้าไปเรียกใช้งาน เมนูคลิ๊กขวา ได้ที่ Properties ของ Form

    คลิ๊กที่ปุ่มที่อยู่ในช่องของ Context Menu ..เลือก ContextMenu1

    ถ้าต้องการ preview หรือ รันทดสอบ ..กด F10

    ถ้าต้องการ generic code หรือ วางโค๊ดลง Editor ..กด F9

    ที่เหลือเป็นการเขียนคำสั่งเพิ่มเติมเข้าไปให้โปรแกรมสมบูรณ์ขึ้น.


    แก้ไขล่าสุดโดย newsak2005 เมื่อ 12/05/11, 11:34 pm, ทั้งหมด 6 ครั้ง
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 10/05/11, 10:37 am

    รูปแบบคำสั่งสร้างเมนู(GUICtrlCreateMenu)
    Code:
    GUICtrlCreateMenu ( "submenutext" [, menuID [, menuentry]] )

    รูปแบบคำสั่งสร้างเมนูย่อย(GUICtrlCreateMenuItem)
    Code:
    GUICtrlCreateMenuItem ( "text", menuID [, menuentry [, menuradioitem]] )

    *ในส่วนของคำสั่ง:menuentry และ menuradioitem เป็น Option เสริมลูกเล่นให้กับเมนู เกี่ยวกับเส้นคั่นและรูปปุ่มบนเมนู*

    อันนี้คือโค๊ดที่สร้างขึ้นจากโปรแกรม Form Design ยังไม่ได้เปลี่ยนชื่อให้เมนูต่างๆ
    Code:

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiToolbar.au3>
    #include <ToolbarConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 493, 218, 192, 124)
    $MenuItem5 = GUICtrlCreateMenu("MenuItem5")
    $MenuItem6 = GUICtrlCreateMenuItem("MenuItem6", $MenuItem5)
    $MenuItem7 = GUICtrlCreateMenuItem("MenuItem7", $MenuItem5)
    $MenuItem8 = GUICtrlCreateMenuItem("MenuItem8", $MenuItem5)
    $MenuItem9 = GUICtrlCreateMenuItem("MenuItem9", $MenuItem5)
    $MenuItem11 = GUICtrlCreateMenuItem("MenuItem11", $MenuItem5)
    $MenuItem10 = GUICtrlCreateMenuItem("MenuItem10", $MenuItem5)
    $MenuItem12 = GUICtrlCreateMenuItem("MenuItem12", $MenuItem5)
    $MenuItem4 = GUICtrlCreateMenu("MenuItem4")
    $MenuItem13 = GUICtrlCreateMenuItem("MenuItem13", $MenuItem4)
    $MenuItem14 = GUICtrlCreateMenuItem("MenuItem14", $MenuItem4)
    $MenuItem15 = GUICtrlCreateMenuItem("MenuItem15", $MenuItem4)
    $MenuItem16 = GUICtrlCreateMenuItem("MenuItem16", $MenuItem4)
    $MenuItem17 = GUICtrlCreateMenuItem("MenuItem17", $MenuItem4)
    $MenuItem18 = GUICtrlCreateMenuItem("MenuItem18", $MenuItem4)
    $MenuItem19 = GUICtrlCreateMenuItem("MenuItem19", $MenuItem4)
    $MenuItem20 = GUICtrlCreateMenuItem("MenuItem20", $MenuItem4)
    $MenuItem21 = GUICtrlCreateMenuItem("MenuItem21", $MenuItem4)
    $MenuItem22 = GUICtrlCreateMenuItem("MenuItem22", $MenuItem4)
    $MenuItem23 = GUICtrlCreateMenuItem("MenuItem23", $MenuItem4)
    $MenuItem3 = GUICtrlCreateMenu("MenuItem3")
    $MenuItem24 = GUICtrlCreateMenuItem("MenuItem24", $MenuItem3)
    $MenuItem25 = GUICtrlCreateMenuItem("MenuItem25", $MenuItem3)
    $MenuItem2 = GUICtrlCreateMenu("MenuItem2")
    $MenuItem26 = GUICtrlCreateMenuItem("MenuItem26", $MenuItem2)
    $MenuItem1 = GUICtrlCreateMenu("MenuItem1")
    $MenuItem27 = GUICtrlCreateMenuItem("MenuItem27", $MenuItem1)
    $MenuItem28 = GUICtrlCreateMenuItem("MenuItem28", $MenuItem1)
    $Form1context = GUICtrlCreateContextMenu()
    $MenuItem29 = GUICtrlCreateMenuItem("MenuItem29", $Form1context)
    $MenuItem30 = GUICtrlCreateMenuItem("MenuItem30", $Form1context)
    $Edit1 = GUICtrlCreateEdit("", 0, 2, 489, 193)
    GUICtrlSetData(-1, "Edit1")
    $ToolBar1 = _GUICtrlToolbar_Create($Form1, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit

       EndSwitch
    WEnd


    แก้ไขล่าสุดโดย newsak2005 เมื่อ 12/05/11, 11:36 pm, ทั้งหมด 6 ครั้ง
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 10/05/11, 10:54 am

    อันนี้หลังจากเปลี่ยนชื่อให้เมนูต่างๆแล้ว แต่ยังไม่ได้เพิ่มหรือแก้ไขโค๊ดเพิ่มเติม

    Code:

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiToolbar.au3>
    #include <ToolbarConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Utitled - Notepad", 493, 218, 192, 124, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $Edit1 = GUICtrlCreateEdit("", 0, 1, 491, 195)
    GUICtrlSetData(-1, "")
    $MenuItem1 = GUICtrlCreateMenu("File")
    $MenuItem7 = GUICtrlCreateMenuItem("New                Ctrl+N", $MenuItem1)
    $MenuItem8 = GUICtrlCreateMenuItem("Open...            Ctrl+O", $MenuItem1)
    $MenuItem9 = GUICtrlCreateMenuItem("Save                Ctrl+S", $MenuItem1)
    $MenuItem11 = GUICtrlCreateMenuItem("Save As...", $MenuItem1)
    $MenuItem10 = GUICtrlCreateMenuItem("Page Setup...", $MenuItem1)
    $MenuItem12 = GUICtrlCreateMenuItem("Print...              Ctrl+P", $MenuItem1)
    $MenuItem13 = GUICtrlCreateMenuItem("Exit", $MenuItem1)
    $MenuItem2 = GUICtrlCreateMenu("Edit")
    $MenuItem6 = GUICtrlCreateMenuItem("Undo          Ctrl+Z", $MenuItem2)
    $MenuItem14 = GUICtrlCreateMenuItem("Cut              Ctrl+X", $MenuItem2)
    $MenuItem15 = GUICtrlCreateMenuItem("Copy            Ctrl+C", $MenuItem2)
    $MenuItem16 = GUICtrlCreateMenuItem("Paste          Ctrl+V", $MenuItem2)
    $MenuItem17 = GUICtrlCreateMenuItem("Delete          Del", $MenuItem2)
    $MenuItem18 = GUICtrlCreateMenuItem("Find...          Ctrl+F", $MenuItem2)
    $MenuItem19 = GUICtrlCreateMenuItem("Find Next      F3", $MenuItem2)
    $MenuItem20 = GUICtrlCreateMenuItem("Replace        Ctrl+H", $MenuItem2)
    $MenuItem21 = GUICtrlCreateMenuItem("Go To...      Ctrl+G", $MenuItem2)
    $MenuItem22 = GUICtrlCreateMenuItem("Select All      Ctrl+A", $MenuItem2)
    $MenuItem23 = GUICtrlCreateMenuItem("Time/Date    F5", $MenuItem2)
    $MenuItem3 = GUICtrlCreateMenu("Format")
    $MenuItem24 = GUICtrlCreateMenuItem("Word Wrap", $MenuItem3)
    $MenuItem26 = GUICtrlCreateMenuItem("Font...", $MenuItem3)
    $MenuItem4 = GUICtrlCreateMenu("View")
    $MenuItem25 = GUICtrlCreateMenuItem("Sattus Bar", $MenuItem4)
    $MenuItem5 = GUICtrlCreateMenu("Help")
    $MenuItem27 = GUICtrlCreateMenuItem("Help Topics", $MenuItem5)
    $MenuItem28 = GUICtrlCreateMenuItem("About Notepad", $MenuItem5)
    $Form1context = GUICtrlCreateContextMenu()
    $MenuItem29 = GUICtrlCreateMenuItem("Info", $Form1context)
    $MenuItem30 = GUICtrlCreateMenuItem("Exit", $Form1context)
    $ToolBar1 = _GUICtrlToolbar_Create($Form1, 0)

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    While 1
       $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit

       EndSwitch
    WEnd
    ---------------------------------------------------------------------------------------------
    สร้างเส้นคั่นชื่อเมนูต่างๆ(separator line)

    ถ้าท่านเข้าไปเปิดดูในเมนูย่อยต่างๆของnotepadตัวจริงจะเห็นว่ามีการใส่้เส้นคั่นจางไว้บางเมนูย่อย

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

    สิ่งต่างๆเหล่านี้เราต้องประยุกต์เขียนเพิ่มเติมขึ้นมา ดังนี้

    รูปแบบคำสั่งseperate line
    Code:
    GUICtrlCreateMenuItem ("", menuID, menuentry)

    อธิบาย: ตรง menuentry จะระบุไว้เป็นตัวเลข เช่น ถ้าต้องการคั่นชื่อเมนู ในบันทัดที่2 ก็ให้ใส่หมายเลข2 เป็นต้น

    Example: GUICtrlCreateMenuItem("", $filemenu, 2)

    หรือใช้วิธีเปลี่ยนหมายเลขไปเรื่อยๆ จนกว่าจะคั่นข้อความได้ถูกต้อง.
    -----------------------------------------------------------------------------------
    วิธีเรียกใช้งานรูปเครื่องหมายถูกในเมนูย่อย เวลาคลิ๊กเลือกบนเมนู

    ใช้รูปเครื่องหมายถูก ใชัคำสั่ง: GUICtrlSetState(-1, $GUI_CHECKED)
    ไม่ใช้รูปเครื่องหมายถูก ใชัคำสั่ง: GUICtrlSetState(-1, $GUI_UNCHECKED)

    (ถ้าไม่เข้าใจคำสั่งตรงไหน? ขอให้เข้าไปทำความเข้าใจในโค๊ดตัวอย่างอีกครั้ง )
    -------------------------------------------------------------
    เพิ่มเติม:Help มีส่วนช่วยให้การเรียนรู้ของท่าน ก้าวหน้าไปอย่างรวดเร็ว ถ้าท่านรู้จักนำมาทดลองค้นคว้าหาข้อมูลที่เป็นจริงเพิ่มเติม.

    ถ้าต้องการให้ตัวอักษรหนาขึ้น ใช้คำสั่ง: GUICtrlSetState(-1, $GUI_DEFBUTTON)

    ที่ตรงคำสั่ง:menuradioitem ..ถ้ามีการใช้งาน และใส่่ตัวเลขเป็น 1 ไว้ เวลาคลิ๊กเลือกที่เมนู จะปรากฏรูปปุ่ม radio ขึ้นบนเมนู


    แก้ไขล่าสุดโดย newsak2005 เมื่อ 12/05/11, 11:43 pm, ทั้งหมด 3 ครั้ง
    anirud
    anirud
    มือใหม่เพิ่งสมัคร
    มือใหม่เพิ่งสมัคร


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 6
    ความนิยม : 0
    เข้าร่วมเมื่อ : 26/11/2010
    อายุ : 32
    ที่อยู่ : SakonNakhon...Thailand

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by anirud 11/05/11, 01:31 pm

    ขอเก็บเล็กเก็บน้อยไปศึกษาก่อนน่ะครับ...ขอบคุณครับ

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


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 11/05/11, 03:07 pm

    ไม่รู้เมนู Edit ของบอร์ดหายไปไหน?!? เลยลงโค๊ดต่อจากด้านบนไม่ได้

    Admin คงจะป้องกันคนที่ชอบแก้ไขข้อความบ่อยๆ

    แต่คนที่เขียนบทความจำเป็นต้องใช้ ..ถ้าไม่มี Edit ย้อนหลังอย่างนี้ ผู้เขียนก็ต้องปรับเปลี่ยนวิธีการเขียนใหม่

    รู้สึกว่าจะฝืนๆกับความรู้สึก ไม่ค่อยสดวกเขียนเท่าไหร่ (ถูกบังคับด้วยเงื่อนไข?!?)
    ------------------------------------------------------------------------------------------------------------------
    อันนี้คือโค๊ดตัวอย่างที่พัฒนาไปได้ประมาณ70%แล้ว ยังไม่ได้ประกาศตัวแปรไว้ ทำเสร็จเมื่อไหร่แล้วค่อยประกาศ
    และยังมีbugอยู่บ้างเล็กน้อย ต้องแก้ไขเพิ่มเติมกันไปเรื่อยๆ จนกว่าโปรแกรมจะสามารถทำงานได้ใกล้เคียงโปรแกรมจริงมากที่สุด.

    **ถ้าต้องการทดสอบเมนูคลิ๊กขวา(Context menu) ..ให้คลิ๊กขวาที่ไตเติ้ลบาร์ด้านบน**

    Code:

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiToolbar.au3>
    #include <ToolbarConstants.au3>
    #include <WindowsConstants.au3>
    #Include <WinAPIEx.au3>
    #Include <GuiEdit.au3>
    #Include <File.au3>
    #include <Misc.au3>
    #include <GuiStatusBar.au3>
    $texttitle = 'Untitled - Notepad'
    $icontitle = @SystemDir&'\NOTEPAD.EXE'
    $hForm = GUICreate($texttitle, 497, 276, 260, 260, _
    BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME, _
    $WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP, _
    $WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS))
    GUISetIcon($icontitle, -1, $hForm)
    $hEdit = GUICtrlCreateEdit("", 0, 0, 497, 233)
    $MenuItem1 = GUICtrlCreateMenu("&File")
    $New_Item = GUICtrlCreateMenuItem("&New              Ctrl+N", $MenuItem1)
    $Open_Item = GUICtrlCreateMenuItem("&Open...          Ctrl+O", $MenuItem1)
    $Save_Item = GUICtrlCreateMenuItem("&Save              Ctrl+S", $MenuItem1)
    $SaveAs_Item = GUICtrlCreateMenuItem("Save As", $MenuItem1)
    $PageSetup_Item = GUICtrlCreateMenuItem("&Page Setup", $MenuItem1)
    $Print_Item = GUICtrlCreateMenuItem("&Print...            Ctrl+P", $MenuItem1)
    GUICtrlCreateMenuItem("", $MenuItem1, 4)
    $Exit_Item = GUICtrlCreateMenuItem("&Exit", $MenuItem1)
    GUICtrlCreateMenuItem("", $MenuItem1, 7)
    $MenuItem2 = GUICtrlCreateMenu("&Edit")
    $Undo_Item = GUICtrlCreateMenuItem("&Undo        Ctrl+Z", $MenuItem2)
    GUICtrlCreateMenuItem("", $MenuItem2, 1)
    $Cut_Item = GUICtrlCreateMenuItem("&Cut            Ctrl+X", $MenuItem2)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Copy_Item = GUICtrlCreateMenuItem("&Copy          Ctrl+C", $MenuItem2)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Paste_Item = GUICtrlCreateMenuItem("&Paste        Ctrl+V", $MenuItem2)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Delete_Item = GUICtrlCreateMenuItem("&Delete        Del", $MenuItem2)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlCreateMenuItem("", $MenuItem2, 6)
    $Find_Item = GUICtrlCreateMenuItem("&Find...        Ctrl+F", $MenuItem2)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $FindNext_Item = GUICtrlCreateMenuItem("&Find Next    F3", $MenuItem2)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Replace_Item = GUICtrlCreateMenuItem("&Replace      Ctrl+H", $MenuItem2)
    $GoTo_Item = GUICtrlCreateMenuItem("&Go To...      Ctrl+G", $MenuItem2)
    GUICtrlCreateMenuItem("", $MenuItem2, 11)
    $SelectAll_Item = GUICtrlCreateMenuItem("&Select All    Ctrl+A", $MenuItem2)
    $TimeDate_Item = GUICtrlCreateMenuItem("&Time/Date    F5", $MenuItem2)
    $MenuItem3 = GUICtrlCreateMenu("Format")
    $WordWrap_Item = GUICtrlCreateMenuItem("&Word Wrop", $MenuItem3)
    $Font_Item = GUICtrlCreateMenuItem("&Font...", $MenuItem3)
    $MenuItem4 = GUICtrlCreateMenu("View")
    $StatusBar_Item = GUICtrlCreateMenuItem("&Satatus Bar", $MenuItem4)
    $MenuItem5 = GUICtrlCreateMenu("Help")
    $HelpTopics_Item = GUICtrlCreateMenuItem("&Help Topics", $MenuItem5)
    GUICtrlCreateMenuItem("", $MenuItem5, 1)
    $AboutNotepad_Item = GUICtrlCreateMenuItem("&About Notepad", $MenuItem5)
    _GUICtrlToolbar_Create($hForm, 0)
    GUISetState(@SW_SHOW)


    ControlMove($texttitle, "", "Edit1", 0, 0, 497, 257)
    $Xcontext = GUICtrlCreateContextMenu()
    $Info_Item = GUICtrlCreateMenuItem("Info", $Xcontext)

    While 1
       $nMsg = GUIGetMsg()
       While 1
         If GUICtrlRead($hEdit) = '' Then
          GUICtrlSetState($Undo_Item, $GUI_DISABLE)
          ExitLoop
          ContinueLoop
         Else
          GUICtrlSetState($Undo_Item, $GUI_ENABLE)
          ExitLoop
          ContinueLoop
         EndIf
         Sleep(10)
       WEnd
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Exit
          Case $New_Item
             GUICtrlSetData($hEdit, "")
          Case $Open_Item
             $tableText = FileOpenDialog("Open", @DesktopDir & "\", _
             "Text Documents (*.txt)|All Files (*.*)", 1 + 4, "*.txt", $hForm)
             $sfile = FileOpen($tableText, 0)
             $sText = FileRead($sfile)
             _GUICtrlEdit_AppendText($hEdit, $sText&@CRLF)
             GUICtrlSetState($Copy_Item, $GUI_ENABLE)
             GUICtrlSetState($Delete_Item, $GUI_ENABLE)
          Case $Save_Item

          Case $SaveAs_Item
             $var = FileSaveDialog("Open", @DesktopDir & "\", _
             "Text Documents (*.txt)|All Files (*.*)", 1 + 4, "*.txt", $hForm)
          Case $PageSetup_Item

          Case $Print_Item

          Case $Exit_Item
             ExitLoop
          Case $Undo_Item
             If GUICtrlRead($hEdit) <> '' Then _GUICtrlEdit_Undo($hEdit)
          Case $Cut_Item

          Case $Copy_Item
             $textout = _GUICtrlEdit_GetText($hEdit)
              ClipPut($textout)
             GUICtrlSetState($Paste_Item, $GUI_ENABLE)
          Case $Paste_Item
             $textret = ClipGet()
             MsgBox(0, "", $textret&@CRLF)
          Case $Delete_Item
             _GUICtrlEdit_SetText($hEdit, "")
             If _GUICtrlEdit_GetText($hEdit) = "" Then
                    GUICtrlSetState($Copy_Item, $GUI_DISABLE)
                 GUICtrlSetState($Delete_Item, $GUI_DISABLE)
             EndIf
          Case $Find_Item

          Case $FindNext_Item

          Case $Replace_Item

          Case $GoTo_Item

          Case $SelectAll_Item

          Case $TimeDate_Item

          Case $WordWrap_Item
                If BitAND(GUICtrlRead($WordWrap_Item), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
                 GUICtrlSetState($WordWrap_Item, $GUI_CHECKED)
                 GUICtrlSetStyle($hEdit, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
                Else
                    If BitAND(GUICtrlRead($WordWrap_Item), $GUI_CHECKED) = $GUI_CHECKED Then
                     GUICtrlSetState($WordWrap_Item, $GUI_UNCHECKED)
                   GUICtrlSetStyle($hEdit, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL, $WS_HSCROLL))
                    EndIf
             EndIf
            Case $Font_Item
                $a_font = _ChooseFont("Arial", 8, 0, 0, 0, False, False, $hForm)
             GUICtrlSetFont($hEdit, $a_font, 400, 0, "Arial")
            Case $StatusBar_Item
             If BitAND(GUICtrlRead($StatusBar_Item), $GUI_UNCHECKED) = $GUI_UNCHECKED Then
                 GUICtrlSetState($StatusBar_Item, $GUI_CHECKED)
                 ControlMove($texttitle, "", "Edit1", 0, 0, 497, 233)
             Else
                    If BitAND(GUICtrlRead($StatusBar_Item), $GUI_CHECKED) = $GUI_CHECKED Then
                     GUICtrlSetState($StatusBar_Item, $GUI_UNCHECKED)
                     ControlMove($texttitle, "", "Edit1", 0, 0, 497, 257)
                 EndIf
             EndIf
          Case $HelpTopics_Item

          Case $AboutNotepad_Item
              _WinAPI_AboutDlg('About', 'Notepad', 'Design by:sak2005 Copyright:2554', _
              _WinAPI_ShellExtractIcon(@SystemDir & '\Shell32.dll', 130, 32, 32), $hForm)
          Case $Info_Item
             MsgBox(64, "", "Create by:sak2005")
       EndSwitch
    WEnd

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


    แก้ไขล่าสุดโดย newsak2005 เมื่อ 13/05/11, 12:08 am, ทั้งหมด 3 ครั้ง
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 11/05/11, 03:32 pm

    แจ้ง Admin ช่วยใส่ปุ่ม Edit ตรงที่มีโค๊ดต่างๆให้หน่อย ผมกลับไปแก้ไขโค๊ดเพิ่มเติมไม่ได้ ..ขอบคุณครับ

    (ผมลงไว้อีกเว็บหนึ่ง เนื้อหาสาระคล้ายกัน แต่ที่นี่เนื้อแน่นกว่า)
    POS
    POS
    PSsix
    PSsix


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 1152
    ความนิยม : 326
    เข้าร่วมเมื่อ : 19/07/2010

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by POS 12/05/11, 08:37 pm

    ผมปรับเวลาเพิ่มให้แล้วนะครับ ให้แก้ไขความหลังจากที่โฟสไปแล้วภายในระยะเวลา 5 วัน เกินจากนี้ก็จะแก้ไขไม่ได้ เพื่อป้องกันการแก้ไขข้อความด่ากันหรือโฟสอย่างอื่นที่ไม่เหมาะสมในฟอรั่ม ซึ่งผมคงไม่มีเวลาไล่ตรวจข้อควาภายหลังในกระทู้เก่าๆ
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 12/05/11, 11:56 pm

    POS พิมพ์ว่า:ผมปรับเวลาเพิ่มให้แล้วนะครับ ให้แก้ไขความหลังจากที่โฟสไปแล้วภายในระยะเวลา 5 วัน เกินจากนี้ก็จะแก้ไขไม่ได้ เพื่อป้องกันการแก้ไขข้อความด่ากันหรือโฟสอย่างอื่นที่ไม่เหมาะสมในฟอรั่ม ซึ่งผมคงไม่มีเวลาไล่ตรวจข้อควาภายหลังในกระทู้เก่าๆ

    ผมเข้าใจในความปรารถนาดีของ Admin

    ผมจะปรับเปลี่ยนแนวทางการเขียนบทความ

    ผมแก้ไขเรียบร้อยแล้ว รบกวนท่านปิดปุ่ม Edit ได้เลยครับ ..ขอบคุณครับ

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


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 13/05/11, 02:14 am

    ชุดคำสั่งที่ใช้จัดการเรื่อง Font ใน Edit ..ให้นำไปไว้ที่ Case $Font_Item

    อย่าลืมใส่ #Include <Misc.au3> สำหรับคำสั่ง _ChooseFont() ด้วย.

    Code:

    Global $a_font
    $a_font = _ChooseFont("Arial", 8)
                If (@error) Then
                   MsgBox(0, "", "Error _ChooseFont: " & @error)
             Else
                GUICtrlSetFont($hEdit, $a_font[3], $a_font[4], $a_font[1], $a_font[2], 2 & GUICtrlSetColor($hEdit, $a_font[7]))
             EndIf
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 15/05/11, 11:07 pm

    รวมคำสั่ง: Com Object ไฟล์สกุล *.au3 และ *.vbs
    --------------------------------------------------------------
    Open Shutdown Dialog.au3
    Code:
    Local $oShell
    $oShell = ObjCreate("shell.application")
    $oShell.ShutdownWindows
    Exit
    ---------------------------------------------------------------
    Open Shutdown Dialog.vbs
    Code:
    Dim oShell
    Set oShell = CreateObject("shell.application")
    oShell.ShutdownWindows
    Set oShell = Nothing
    WScript.Quit()
    ----------------------------------------------------------------
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 20/05/11, 01:15 am

    Download: SourceCode&Resource โปรแกรม: Desktop Icon Changer v1.0 คลิ๊กที่นี่

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

    Code:

    #NoTrayIcon
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Include <File.au3>
    Opt("MustDeclareVars", 1)

    Global $titlemessage = 'Desktop Icon Changer v1.0'
    Global $message_mycom = 'ท่านตัองการเปลี่ยนไอคอน My Computer ใช่หรือไม่?'
    Global $message_mydoc = 'ท่านตัองการเปลี่ยนไอคอน My Documents ใช่หรือไม่?'
    Global $exitmessage = 'ท่านต้องการปิดโปรแกรมใช่หรือไม่?'
    Global $message_chkicon = 'เกิดข้อผิดพลาด! ไอคอนส่วนประกอบของโปรแกรมหายไปบางส่วน โปรแกรมไม่สามารถทำงานได้.'
    Global $icontitle = 'Resource\AutoIt.ico'
    Global Const $keyname_mycom = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon'
    Global Const $keyname_mydoc = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon'
    Global Const $valuename = ""
    Global Const $type = 'REG_EXPAND_SZ'

    If FileExists("Resource\MyCom.ico")And FileExists("Resource\MyDoc.ico")And FileExists("Resource\Recycle.ico")Then
    Local $hWnd = GUICreate($titlemessage, 310, 150, 358, 303)
    GUISetIcon($icontitle, -1, $hWnd)
    WinSetOnTop($titlemessage, "", 1)
    Local $Ico_mycom = GUICtrlCreateIcon("Resource\MyCom.ico", -1, 277, 24, 24, 24, BitOR($SS_NOTIFY,$WS_GROUP))
    GUICtrlSetCursor (-1, 0)
    Local $Ico_mydoc = GUICtrlCreateIcon("Resource\MyDoc.ico", -1, 277, 72, 24, 24, BitOR($SS_NOTIFY,$WS_GROUP))
    GUICtrlSetCursor (-1, 0)
    Local $Ico_recycle = GUICtrlCreateIcon("Resource\Recycle.ico", -1, 277, 119, 24, 24, BitOR($SS_NOTIFY,$WS_GROUP))
    GUICtrlSetCursor (-1, 0)
    Local $Inp_mycom = GUICtrlCreateInput("", 8, 24, 260, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    Local $Inp_mydoc = GUICtrlCreateInput("", 8, 72, 260, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    Local $Inp_recycle = GUICtrlCreateInput("", 8, 120, 260, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    GUICtrlCreateLabel("My Computer", 107, 7, 66, 17)
    GUICtrlCreateLabel("My Documents", 105, 55, 75, 17)
    GUICtrlCreateLabel("Recycle Bin Full - Empty", 82, 103, 150, 17)
    GUISetState(@SW_SHOW)
    Else
       MsgBox(48, $titlemessage, $message_chkicon)
    EndIf

    While 1
       Local $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             Local $ex_btn = MsgBox(36, $titlemessage, $exitmessage, "", $hWnd)
             If $ex_btn = 6 Then
                    GUIDelete($hWnd)
                    Exit
                EndIf
            Case $Ico_mycom
                _mycom()
          Case $Ico_mydoc
             _mydoc()
          Case $Ico_recycle
             _recycle()
        EndSwitch
    WEnd

    Func _mycom()
        Local $filetable = FileOpenDialog("Select new icon", @DesktopDir & "\", "Icon (*.ico)", 1 + 4, "", $hWnd)
       If $filetable Then
           GUICtrlSetData($Inp_mycom, $filetable)
            Sleep(800)
          Local $btn = MsgBox(36, $titlemessage, $message_mycom, "", $hWnd)
           Dim $szDrive, $szDir, $szFName, $szExt
           Local $path = _PathSplit(GUICtrlRead($Inp_mycom),$szDrive, $szDir, $szFName, $szExt)
           If $btn = 6 Then
               FileCopy($filetable, @WindowsDir, 1)
                Local $value = '%SystemRoot%'&'\'&$path[3]&$path[4]
               RegWrite($keyname_mycom, $valuename, $type, $value)
               If Not @error Then
                Sleep(800)
                  ControlSend("[CLASS:Progman; TITLE:Program Manager]", "", "", "{F5}") ;desktop refresh.
                   GUICtrlSetData($Inp_mycom, "")
             Else
                  MsgBox(48, "", @error, "", $hWnd)
               EndIf
           Else
             GUICtrlSetData($Inp_mycom, "")
          EndIf
       EndIf
    EndFunc

    Func _mydoc()
        Local $filetable = FileOpenDialog("Select new icon", @DesktopDir & "\", "Icon (*.ico)", 1 + 4, "", $hWnd)
       If $filetable Then
           GUICtrlSetData($Inp_mydoc, $filetable)
           Sleep(800)
          Local $btn = MsgBox(36, $titlemessage, $message_mydoc, "", $hWnd)
          Dim $szDrive, $szDir, $szFName, $szExt
           Local $path = _PathSplit(GUICtrlRead($Inp_mydoc),$szDrive, $szDir, $szFName, $szExt)
           If $btn = 6 Then
              FileCopy($filetable, @SystemDir, 1)
                Local $value = '%SystemRoot%\SYSTEM32'&'\'&$path[3]&$path[4]
               RegWrite($keyname_mydoc, $valuename, $type, $value)
               If Not @error Then
                 Sleep(800)
                 ControlSend("[CLASS:Progman; TITLE:Program Manager]", "", "", "{F5}") ;desktop refresh.
                  GUICtrlSetData($Inp_mydoc, "")
             Else
                MsgBox(48, "", @error, "", $hWnd)
             EndIf
          Else
             GUICtrlSetData($Inp_mydoc, "")
          EndIf
       EndIf
    EndFunc

    Func _recycle()
       MsgBox(64, $titlemessage, "กำลังพัฒนา ท่านต้องรอ Update.")
    EndFunc
    newsak2005
    newsak2005
    ระงับสมาชิก
    ระงับสมาชิก


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 20/05/11, 03:39 pm

    อันนี้คือโค๊ดโปรแกรม Desktop Icon Changer v1.0 Update ที่ได้รับการพัฒนาแล้ว 99.99%

    เดี๋ยวยังมี Update อื่นๆตามมา ส่วนจะเป็นอะไร?นั้น จะแจ้งให้ทราบภายหลัง ขอให้ท่านเข้ามา Upgrade ความรู้กันอยู่เรื่อยๆก็แล้วกัน.

    Download:Source code & resource Update คลิ๊กที่นี่

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


    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty
    จำนวนข้อความ : 115
    ความนิยม : 0
    เข้าร่วมเมื่อ : 08/05/2011

    รวมผลงาน บทความ+โปรแกรม ของ sak2005 Empty Re: รวมผลงาน บทความ+โปรแกรม ของ sak2005

    ตั้งหัวข้อ by newsak2005 22/05/11, 05:01 pm

    อันนี้คือโค๊ดโปรแกรม Hide Icon Desktop เพิ่งพัฒนาไปได้ 80% ..โปรดระวัง!ในการใช้งานด้วย
    Code:

    #NoTrayIcon
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <String.au3>

    Global $keyname = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer'
    Global $valuename = 'NoDesktop', $type = 'REG_DWORD', $icon = 'Windows.ico'
    Global $filename = "Setting.ini", $section = 'Config', $key = 'PassCode', $value = ''
    Global $title = 'Hide Icons Desktop', $prompt = 'Enter:Your Password'

    If Not FileExists($filename)Then
        IniWrite($filename, $section, $key, $value)
    EndIf

    Local $hWnd = GUICreate($title, 260, 43, 383, 362)
    GUISetIcon($icon, -1, $hWnd)
    Local $Btn_hide = GUICtrlCreateButton("Hide Icons", 8, 8, 115, 25, $WS_GROUP)
    GUICtrlSetCursor(-1, 0)
    Local $Btn_show = GUICtrlCreateButton("Show Icons", 128, 8, 123, 25, $WS_GROUP)
    GUICtrlSetCursor(-1, 0)
    GUISetState(@SW_SHOW)

    If RegRead($keyname, $valuename)= 0 Then
    GUICtrlSetState($Btn_hide, $GUI_ENABLE)
    GUICtrlSetState($Btn_show, $GUI_DISABLE)
    ElseIf RegRead($keyname, $valuename)= 1 Then
    GUICtrlSetState($Btn_show, $GUI_ENABLE)
    GUICtrlSetState($Btn_hide, $GUI_DISABLE)
    EndIf

    While 1
       Local $nMsg = GUIGetMsg()
       Switch $nMsg
          Case $GUI_EVENT_CLOSE
             If RegRead($keyname, $valuename)= 1 Then
                 MsgBox(16, "Warning! Exit Program", "กรุณาโชว์ไอคอนก่อนปิดโปรแกรม.", 0, $hWnd)
             Else
               Local $btn = MsgBox(33, "Exit Program Confirm", "ท่านต้องการปิดโปรแกรมใช่หรือไม่?", 0, $hWnd)
                If $btn = 2 Then ContinueLoop
                GUIDelete($hWnd)
                Exit
             EndIf
            Case $Btn_hide
               Local $strpass = InputBox($title, $prompt, "", "", 200, 100, 418, 343, 0, $hWnd)
             If $strpass = '' Then ContinueLoop
             IniWrite($filename, $section, $key, _StringToHex($strpass))
             If RegRead($keyname, $valuename)= 0 Then
                RegWrite($keyname, $valuename, $type, 1)
                    If Not @error Then
                        GUICtrlSetState($Btn_show, $GUI_ENABLE)
                   _expreset()
                    GUICtrlSetState($Btn_hide, $GUI_DISABLE)
                   FileSetAttrib($filename, "+RSH")
                EndIf
                EndIf
            Case $Btn_show
             Local $strpass = InputBox("Show Icon Desktop", $prompt, "", "", 200, 100, 418, 343, 0, $hWnd)
             If $strpass = '' Then ContinueLoop
              $hexpass = IniRead($filename, $section, $key, "")
             If _HexToString($hexpass) = $strpass Then
                 If RegRead($keyname, $valuename)= 1 Then
                    RegWrite($keyname, $valuename, $type, 0)
                        If Not @error Then
                            GUICtrlSetState($Btn_hide, $GUI_ENABLE)
                      _expreset()
                      GUICtrlSetState($Btn_show, $GUI_DISABLE)
                      FileSetAttrib($filename, "-RSH")
                   EndIf
                    EndIf
             Else
                 MsgBox(0, "", "รหัสผิด! ลองใหม่.", 0, $hWnd)
             EndIf
       EndSwitch
    WEnd

    Func _expreset()
       Global $objWMIService, $objProcess, $colProcess, $strComputer, $strProcessKill
    $strProcessKill = "'explorer.exe'"
    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:" & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
    $colProcess = $objWMIService.ExecQuery ("Select * from Win32_Process Where Name = " & $strProcessKill)
    For $objProcess in $colProcess
        $objProcess.Terminate()
    Next
    EndFunc

      เวลาขณะนี้ 02/05/24, 03:37 pm