Announcement

Collapse
No announcement yet.

VBscript & JScript เทคนิค

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • VBscript & JScript เทคนิค

    ผมกลัวว่า..เมื่อมีโปรแกรมเขียนภาษาแบบGUIออกมา ซึ่งอำนวยความสดวกในการเขียนโปรแกรมเป็นอย่างมาก จนทำให้ลืมการเขียนสคริ๊ปแบบดั้งเดิมไป ดั่งเช่น Dos command ..เรียกว่าคนรุ่นหลังๆแทบจะเขียนกันไม่เป็นอยู่แล้ว ผมเลยเกิดแรงบันดาลใจ คิดที่จะอนุลักษณ์การเขียนสคริ๊ปคำสั่ง2ภาษานี้ขึ้นมา ไม่ให้สูญหาย เปรียบเสมือน ยาแผนโบราณ ที่ยังคงรักษาโรคได้ไม่แพ้ยาแผนปัจจุบัน
    ----------------------------------

  • #2
    เปิดกรุ รูปแบบการเขียน JAVA Script และการใช้งานเบื้องต้น
    สิ่งที่ต้องคำนึงถึงและให้ความสำคัญก่อนลงมือเขียน JScript
    คือองค์ประกอบของรูปแบบและการจัดวางสคริ๊ปที่ถูกต้อง
    ก่อนเริ่มการเขียนควรสร้างจุดประสงค์ไว้ก่อนว่า
    เขียนแล้วนำไปใช้ทำอะไร? เช่น เขียนออกมาเป็นโปรแกรมใช้งานเลย หรือ
    นำไปใช้งานร่วมกับโปรแกรมภาษาอื่นๆ เป็นต้น.
    ---------------------------------------------------------------------------
    ลำพังเพียงJScript เพียงอย่างเดียว ไม่สามารถสั่งงานอะไร?บนวินโดว์ได้
    JScript ต้องอาศัยทำงานร่วมกับโปรแกรมคำสั่งหลักอื่นๆที่อยู่ภายในวินโดว์
    จึงจะสามารถสั่งให้วินโดว์ทำงานได้ ซึ่งได้แก่..WScript และ CScript
    WScript (Windows Script Host - window based (WScript.exe)) ใช้สั่งงานกับวินโดว์โดยตรง
    CScript (Windows Script Host - command line (CScript.exe)) ใช้สั่งงานกับวินโดว์ผ่านทางโปรแกรม Command Prompt
    และยังมีโปรแกรมคำสั่งภายในวินโดว์อื่นๆอีก เช่น Microsoft Script Control (embedded) , Microsoft Internet Explorer เป็นต้น
    เรามาดูกันซิว่า คำสั่งต่างๆนั้นมีรูปแบบอย่างไรบ้าง
    ----------------------------------------------------------------------------------------------
    นี่คือรูปแบบสคริ๊ปคำสั่งของ JScript ..คำประกาศตัวแปรใช้คำว่า.. var
    ActiveXObject Object ..เขียนออกมาเป็นรูปแบบได้ ดังนี้
    Code:
    newObj = new ActiveXObject(servername.typename[, location])
    ภายในคำสั่งที่เป็น Statement ต้องใส่เครื่องหมาย { } ครอบหัว-ท้ายไว้
    -------------------------------------------------------------------------------------
    เรามาลองเขียนคำสั่งง่ายๆ ..ในกรณีย์นี้ใช้เป็น JAVA Popup Message ก็แล้วกัน
    ใครจะใช้ Notepad หรือ Script editor เขียนก็ได้ตามสดวก
    เขียนเสร็จแล้วให้ Save As เป็นไฟล์สกุล .js
    -----------------------------------------------------------------------------------
    ตัวอย่างการเขียนJScript (คำสั่งรัน Popup Message)
    Popup Message เป็น Object ของคำสั่ง WScript.Shell
    รูปแบบของ Popup Message มีดังนี้
    Code:
    object.Popup(strText,[nSecondsToWait],[strTitle],[nType])
    --------------------------------------------------------
    JScript แบบเขียนเต็ม ..เมื่อเขียนเสร็จให้ Save As เป็นไฟล์สกุล .js
    Code:
    var ShellObj; 
    ShellObj=new ActiveXObject("WScript.Shell");
    ShellObj.Popup("Hello World!1");
    WScript.Echo("Hello World!2");
    -------------------------------------------------------------------------------------------
    คำอธิบาย:
    ShellObj คือชื่อตัวแปรที่ตั้งขึ้น
    new ActiveXObject("WScript.Shell"); หมายถึง รูปแบบคำสั่งที่ใช้เขียน
    โดยอ้างหรือใช้คำสั่งภายใน ของวินโดว์ร่วมด้วย อันประกอบไปด้วย
    ActiveXObject และ servername.typename
    ShellObj.Popup("Hello World!"); คำสั่งรัน Popup Message.. Hello World!
    ส่วนคำสั่ง WScript.Echo นั้นเป็นคำสั่งจาก Windows โดยตรง (WSH)
    ------------------------------------------------------------------------------------------------------------------------
    popup Message แบบมีเงื่อนไข ใช้ตัวเลือก Switch Case
    รูปแบบ: Popup Message
    Code:
    intButton = object.Popup(strText,[nSecondsToWait],[strTitle],[nType])
    ----------------------------------------------------------------------------------------
    Switch Statement
    รูปแบบ: ตัวเลือก Switch Case
    Code:
    switch (expression) {
    case label :
           statementlist
    case label :
           statementlist
       ...
    default :
          statementlist
    }
    ------------------------------------------------------------------
    ตัวอย่าง:แบบเขียนเต็ม
    จุดประสงค์: ต้องการให้ยืนยันคำตอบว่า..'ต้องการรันโปรแกรมเครื่องคิดเลขใช่หรือไม่?'
    Code:
    var Shell,BtnCode;
    Shell = new ActiveXObject("WScript.Shell");
    BtnCode = Shell.Popup("ท่านต้องการเปิดโปรแกรมเครื่องคิดเลขใช่หรือไม่?",0,"Test Project",36);
    switch (BtnCode) {
    case 6:
    Shell.Run("Calc.exe");
    break;
    case 7:
    Shell.Popup("เปิดใหม่ภายหลัง",0,"",64);
    break;
    }

    Comment


    • #3
      Scripting FileSystemObject
      ต่อไปเป็นคำสั่งการจัดการเกี่ยวกับไฟล์และโฟลเดอร์
      รูปแบบคำสั่งหลัก:
      Code:
      fso = new ActiveXObject("Scripting.FileSystemObject");
      คำอธิบาย:เมื่อจะจัดการข้อมูลต่างๆ.. สังเกตุคำสั่งที่อยู่ในวงเล็บจะเปลี่ยนไป
      --------------------------------------------------------------------
      คำสั่ง:ก๊อบปี้ไฟล์
      รูปแบบคำสั่ง:
      Code:
      object.CopyFile ( source, destination[, overwrite] )
      คำอธิบาย:
      object หมายถึง ตัวแปร
      .CopyFile หมายถึง คำสั่งก๊อบปี้ไฟล์
      source หมายถึง พาทไฟล์ต้นทาง
      destination หมายถึง พาทที่อยู่หรือที่เก็บไฟล์ปลายทาง
      overwrite หมายถึง เขียนทับไฟล์ ซึ่งมีคำสั่งให้เลือกเขียนดังนี้
      true ..ถ้าใช้คำสั่งนี้ หมายถึง ให้เขียนทับไฟล์เดิมที่มีชื่อซ้ำกัน
      false ..ถ้าใช้คำสั่งนี้ หมายถึง ละเว้น ..ใช้ได้กับไฟล์ที่ใช้อ่านเท่านั้น
      ถ้าไม่ใส่คำสั่ง true หมายถึง ไม่ต้องเขียนทับ
      --------------------------------------------------------------
      ตัวดำเนินการ,สัญญลักษณ์ และความหมาย:
      \\ หมายถึง backslash ลำดับพาทไฟล์,โฟลเดอร์
      *. หมายถึง ระบุไฟล์ทั้งหมดที่มีสกุลเดียวกัน
      *.* หมายถึง ระบุไฟล์ทั้งหมด ทุกสกุล
      \n หมายถึง line feed(newline)ใช้ใส่คั่นในข้อความที่ยาวๆ เพื่อขึ้นบันทัดใหม่ให้ข้อความ ดังรูป

      -------------------------------------------
      ตัวอย่าง:การเขียนคำสั่งก๊อบปี้ไฟล์ โดยใช้ เงื่อนไข Popup Message Yes No
      กรณีย์นี้สั่งก๊อบปี้ไฟล์ทุกสกุลที่อยู่ใน My Documents มาวางไว้บนหน้าจอ
      Code:
      var ShellObj, fso, BtnCode;
      ShellObj = new ActiveXObject("WScript.Shell");
      fso = new ActiveXObject("Scripting.FileSystemObject");
      BtnCode = ShellObj.Popup("ท่านต้องการก๊อบปี้ไฟล์ทุกสกุลใน My Documents ใช่หรือไม่?",0,"Test Copy",36);
      switch (BtnCode) {
      case 6: 
      fso.CopyFile ("C:\\Documents and Settings\\Administrator\\My Documents\\*.*", "C:\\Documents and Settings\\Administrator\\Desktop", true);
      ShellObj.Popup("ก๊อบปี้เรียบร้อย.",0,"",64);
      break;
      case 7:
      ShellObj.Popup("ก๊อบปี้ใหม่ภายหลัง.",0,"",64);
      break;
      }

      --------------------------------------------------------------
      Tip:การนำไฟล์สคริ๊ปคำสั่ง .js ไปใช้งานโดยตรง อาจเสี่ยงต่อการถูกแก้ไขสคริ๊ป ทำให้เกิด Error! ได้
      ฉนั้นควรแปลงไฟล์(convert)จาก .js เป็น .exe ก่อน นำไปใช้งานตามปกติ
      Last edited by sak2005; 13 Oct 2009, 16:03:14.

      Comment


      • #4
        คำสั่งก๊อบปี้โฟลเดอร์
        รูปแบบ:
        Code:
        object.CopyFolder ( source, destination[, overwrite] );
        ------------------------------------------------------------------
        ในกรณีย์นี้ สั่งก๊อบปี้โฟลเดอร์ทั้งหมด ที่มีอยู่ใน My Documents มาไว้ที่เดสก์ทอป
        Code:
        var ShellObj, fso, BtnCode;
        ShellObj = new ActiveXObject("WScript.Shell");
        fso = new ActiveXObject("Scripting.FileSystemObject");
        BtnCode = ShellObj.Popup("ท่านต้องการก๊อบปี้โฟลเดอร์ทั้งหมดใน My Documents ใช่หรือไม่?",0,"Test Copy",36);
        switch (BtnCode) {
        case 6:
        fso.CopyFolder ("C:\\Documents and Settings\\Administrator\\My Documents\\*.*", "C:\\Documents and Settings\\Administrator\\Desktop", true)
        ShellObj.Popup("ก๊อบปี้เรียบร้อย.",0,"",64);
        break;
        case 7:
        ShellObj.Popup("ก๊อบปี้ใหม่ภายหลัง.",0,"",64);
        break;
        }

        Comment


        • #5
          คำสั่งสร้างโฟลเดอร์
          รูปแบบ:
          Code:
          object.CreateFolder(foldername)
          กรณีย์นี้ ต้องการสร้างโฟลเดอร์ขึ้นมาใหม่ ชื่อ NewFolder และวางไว้บนหน้าจอ
          Code:
          var fso;
          fso = new ActiveXObject("Scripting.FileSystemObject");
          fso.CreateFolder("C:\\Documents and Settings\\Administrator\\Desktop\\NewFolder");

          Comment


          • #6
            อันนี้เป็นการรวม2คำสั่งเข้าด้วยกัน
            กรณีย์นี้สั่งสร้างโฟลเดอร์ขึ้นมาแล้วก๊อบปี้ไฟล์ทั้งหมดที่มีอยู่ใน My Documents มาไว้ในโฟลเดอร์ที่สร้างขึ้น
            Code:
            var fso;
            fso = new ActiveXObject("Scripting.FileSystemObject");
            fso.CreateFolder("C:\\Documents and Settings\\Administrator\\Desktop\\NewFolder");
            fso.CopyFile("C:\\Documents and Settings\\Administrator\\My Documents\\*.*","C:\\Documents and Settings\\Administrator\\Desktop\\NewFolder",true);

            Comment


            • #7
              ขอบคุณครับ
              ลืมไปหมดละ

              Comment


              • #8
                สุดยอดครับท่าน ข้าขอคาราวะ

                Comment


                • #9
                  ความรู้อีกแล้ว

                  คารวะครับ ^^

                  Comment


                  • #10
                    คำสั่งลบไฟล์
                    รูปแบบ:
                    Code:
                    object.DeleteFile ( filespec[, force] );
                    รายละเอียด:
                    filespec หมายถึง พาทไฟล์ ที่จะลบ
                    force หมายถึง เงื่อนไขในการลบ ใช้คำสั่ง true หรือ false มีดังนี้
                    true หมายถึง ลบไฟล์สำหรับอ่านเท่านั้น
                    false หมายถึง ลบไฟล์แบบปกติ
                    -------------------------
                    วิธีทดสอบการลบไฟล์ ให้ท่านสร้าง Text File ขึ้นไว้ที่หน้าจอ โดยคลิ๊กขวาบนพื้นที่ว่างบนหน้าจอ
                    จากนั้นเลื่อนไปที่ New และเลือกคลิ๊กที่ Text Document
                    ---------------------------------------------
                    กรณีย์นี้สั่งลบไฟล์ New Text Document.txt ที่สร้างไว้
                    Code:
                    var fso;
                    Fso = new ActiveXObject("Scripting.FileSystemObject");
                    Fso.DeleteFile("C:\\Documents and Settings\\Administrator\\Desktop\\New Text Document.txt",false);

                    Comment


                    • #11
                      คำสั่งลบโฟลเดอร์
                      รูปแบบ:
                      Code:
                      object.DeleteFolder ( folderspec[, force] );
                      วิธีทดสอบ เอาหลักการลบไฟล์มาใช้ได้

                      Comment


                      • #12
                        คำสั่งเขียนข้อความลงบน Text File ที่สร้างขึ้น ด้วยคำสั่ง WriteLine
                        กรณีย์นี้ต้องการเขียนข้อความว่า.. "ยินดีต้อนรับทุกท่าน" ลงใน Notepad ที่สร้างขึ้น ไว้ที่บนเดสก์ทอป ..เมื่อท่านเปิดอ่านก็จะเห็นข้อความ
                        Code:
                        var fso, a;
                        fso = new ActiveXObject("Scripting.FileSystemObject");
                        a = fso.CreateTextFile("C:\\Documents and Settings\\Administrator\\Desktop\\NewTextFile.txt", true);
                        a.WriteLine("ยินดีต้อนรับทุกท่าน");
                        a.Close();
                        -----------------------------------
                        ถ้าต้องการขึ้นบันทัดใหม่ให้ข้อความ ก็เริ่มคำสั่งและข้อความอีกครั้ง
                        Code:
                        var fso, a;
                        fso = new ActiveXObject("Scripting.FileSystemObject");
                        a = fso.CreateTextFile("C:\\Documents and Settings\\Administrator\\Desktop\\Readme.txt", true);
                        a.WriteLine("ยินดีต้อนรับทุกท่าน");
                        a.WriteLine("เข้าสู่บทเรียน");
                        a.WriteLine("JScript");
                        a.Close();

                        Comment


                        • #13
                          InputBoxเป็นกล่องข้อความ ที่ให้ผู้ใช้กรอกข้อความลงไปในช่อง การนำไปประยุกต์ใช้งาน ก็แล้วแต่ว่า
                          จะนำไปใช้ในแนวไหน? ต้องใช้ความคิดออกแบบกันเอง
                          รูปแบบ:
                          Code:
                          InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])
                          ----------------------------------------------
                          ก่อนอื่นท่านต้องลงทะเบียนไฟล์ .dll ก่อน ไม่งั้นจะไม่สามารถใช้งาน Java InputBox ได้
                          ให้ท่านดาวน์โหลด Project+.dll มาก่อน แล้วดับเบิ้ลคลิ๊กที่ไฟล์ .dll ..คลิ๊ก OK จากนั้นลองใช้ไฟล์ Project.js ดู
                          Download:http://upload.one2car.com/download.a...F9JR6NYZMWMLQH
                          -----------------------------------------------
                          อันนี้ี้คือโค๊ดตัวอย่างเกี่ยวกับการตั้งคำถามว่า..'ท่านชื่ออะไร?'

                          Code:
                          var ShellObj=new ActiveXObject("WScript.Shell");
                          var inputDlg = new ActiveXObject("InputDlg.Dialog");
                          var name = inputDlg.InputBox ("What is your name?", "Confirm Question") 
                          ShellObj.Popup("My name is: " + name, 0, "",0+64)
                          Last edited by sak2005; 26 Oct 2009, 22:33:14.

                          Comment


                          • #14
                            สนใจครับ PM ไปแล้ว ขอบคุณครับ

                            Comment


                            • #15
                              ตามคำขอ.. ใช้ JScript สั่งติดตั้งโปรแกรมหลายๆโปรแกรมพร้อมกันแบบอัตโนมัติ
                              กรณีย์นี้.. เป็นตัวอย่างสั่งติดตั้ง 2 โปรแกรมพร้อมกัน คือโปรแกรม EasyBoot และ Winamp5

                              Code:
                              var ShellObj=new ActiveXObject("WScript.Shell");
                              var btn = ShellObj.Popup("ท่านต้องการติดตั้งใช่หรือไม่?", 0,"Auto Installer", 36);
                              switch (btn) {
                              case  6:
                              ShellObj.Popup("..เริ่มการติดตั้ง โปรดรอสักครู่..", 2,"Auto Installer", 64);
                              ShellObj.Run("winamp512_full /S", 0, true);
                              ShellObj.Run("ezb5_en /VERYSILENT /SP-", 0, true);
                              ShellObj.Popup("ติดตั้งเรียบร้อย.", 0,"Auto Installer", 64);
                              break;
                              case 7:
                              ShellObj.Popup("ติดตั้งใหม่ภายหลัง.", 2,"Auto Installer", 64)
                              break;
                              }
                              Last edited by sak2005; 28 Oct 2009, 13:09:13.

                              Comment

                              Working...
                              X