6/21/2561

สอนใช้งาน iMacros : ตอนที่ 2 Scripts และ Commands


ต่อเนื่องจากบทความ สอนใช้งาน iMacros : ตอนที่ 1 วิธีติดตั้ง iMacros และใช้งานเบื้องต้น ผู้ที่ได้อ่านแล้วคงมีความเข้าใจในเบื้องต้น เกี่ยวกับการ หลักการทำงานของ iMacros ,วิธี record การทำงานบน Webpage และนำผลการบันทึกนั้นมาเปิดใช้งาน 

IMacrosTutorial สอนใช้งาน Imacro สอนทำ SEO Blogger  

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

สำหรับบทความนี้ผมจะนำเสนอเพิ่มเติมอีก 4 ประเด็นคือ 
1. รูปแบบ Script และ Command ของ Macro  ใน iMacros เป็นอย่างไร? 
2. Command ที่สำคัญ และที่ใช้งานบ่อย ๆ ใน Macro  ที่ควรรู้จัก 
3. การแก้ไข Script และ Command ในแต่ละ Macro  
4. การนำเข้า Macro จากภายนอก 

รูปแบบ Script และ Command ของ Macro  ใน iMacros เป็นอย่างไร?

ในบทความตอนที่ 1 ผมได้สอนให้บันทึกกิจกรรมที่เราทำซ้ำ ๆ ด้วย iMacros และบันทึกออกมา ถ้าคุณลอง Click ขวาที่ List ทางซ้ายมือและเลือก Edit Macro ก็จะเห็นคำสั่งการทำงานที่มีเพียงไม่กี่บรรทัด 

iMacros2.1 สอนใช้งาน Imacros 

ตัวอย่าง ในที่นี้ผมได้บันทึกการ Submit บทความกับ Digg เอาไว้ และเมื่อเปิดขึ้นมาดูก็จะเห็น Script ต่าง ๆ ดังนี้ 

VERSION BUILD=6700624 RECORDER=FX     
TAB T=1      
URL GOTO=http://digg.com/      
TAG POS=1 TYPE=A ATTR=ID:header-login      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/login/prepare/digg ATTR=NAME:username CONTENT=username      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/login/prepare/digg ATTR=NAME:password CONTENT=password      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://digg.com/login/prepare/digg ATTR=VALUE:Login      
TAG POS=1 TYPE=A ATTR=TXT:Submit<SP>New      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:url CONTENT=http://www.hackublog.com/       
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:thisform ATTR=ID:type-news      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=ID:submit_button      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:title CONTENT=หัวเรื่อง      
TAG POS=1 TYPE=TEXTAREA FORM=NAME:NoFormName ATTR=ID:body CONTENT=เนื้อหาโดยย่อ      
TAG POS=1 TYPE=A ATTR=ID:topic-503      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:captcha CONTENT=รหัสCaptcha      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:submission-step-2 ATTR=ID:submit_button
TAG POS=1 TYPE=A ATTR=TXT:Logout

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

จากตัวอย่างด้านบนจะเห็นว่าโค้ดที่ได้นั้นใช้ได้กับบทความเดียว เราจึงเกิดแนวคิดว่า ทำอย่างไร Macro ที่เราสร้างจะใช้งานได้ทุกครั้ง? และทำอย่างไรจะใช้งานให้มีประสิทธิภาพมากที่สุด?  

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


Command ที่สำคัญ และที่ใช้งานบ่อย ๆ ใน Macro  ที่ควรรู้จัก

ถ้าสรุปโค้ดของ  Macro ผมขอแยกเป็น 2 ส่วนย่อย ๆ คือ ส่วนแรกคือการกำหนดเงื่อนไขและประกาศตัวแปรและส่วนที่สองคือส่วนดำเนินการ และโปรดสังเกตว่า โค้ดของ  Macro ไม่จำเป็นต้องมีส่วนจบ ถ้าไม่มีการดำเนินการใด ๆ ต่อแล้ว iMacro จะหยุดทำงานโดยอัตโนมัติ 

1. Command ที่สำคัญในการกำหนดเงื่อนไขและประกาศตัวแปร

1.1 Command บรรทัดแรกเป็นการประกาศ VERSION ของ iMacro ที่เราได้ทำการบันทึกหรือเขียนไว้  
VERSION BUILD=6700624 RECORDER=FX
ในกรณีเราเขียนเองอาจจะไม่มีข้อความ RECORDER=FX ก็ได้  และในทางปฏิบัติโค้ดบรรทัดนี้ไม่จำเป็นต้องแก้ไข 

1.2 Command ที่กำหนดว่าจะให้ Macro กระทำกับ Tab ที่เท่าไร 
TAB T= 
ในกรณีที่เราเปิดใช้งาน Tab ใน Firefox Browser เอาไว้หลาย ๆ Tab และถ้าเราสั่งดำเนินการทันที iMacro ก็จะนับ Tab ปัจจุบันเป็น Tab ที่ 1 และนับ Tab อื่น ๆ เป็น Tab ที่ 2 ,3 ต่อไปเรื่อย ๆ ดังนั้นเราสวามารถกำหนดค่านี้เป็น TAB T=2 หรือ TAB T=3 ก็ได้ 

กรณีที่ไม่ต้องการให้เกิดความสับสนในการใช้ Tab คุณอาจจะเพิ่มคำสั่งด้านล่างเข้าไป เพื่อให้ Tab ที่ไม่เกี่ยวข้องถูกปิดไปทั้งหมด 
TAB CLOSEALLOTHERS 

1.3 Command ที่ใช้กำหนดให้ข้ามการดำเนินการที่ผิดพลาดและดำเนินการอย่างอื่นต่อไป 
SET !ERRORIGNORE YES 
SET !ERRORCONTINUE YES
Command 2 บรรทัดนี้นิยมใช้มากในกรณีที่สั่งให้ทำงานแบบ loop หรือมีการทำซ้ำหลาย ๆ รอบ เพราะจะช่วยให้การทำงานไม่จบลง เมื่อการทำงานยังไม่ครบตามที่ตั้งไว้ 

1.4 Command ที่ใช้ในการเรียกใช้ไฟล์ .csv 
CMDLINE !DATASOURCE ชื่อไฟล์.csv
หรือ 
SET !DATASOURCE ชื่อไฟล์.csv
หรือกรณีวางไฟล์เอาไว้นอก Folder Datasources เช่นวางไว้ที่ Drive D ก็ใช้คำสั่ง 
SET !DATASOURCE D:\ชื่อไฟล์.csv
ไฟล์ .csv เป็นเหมือนเอกสารที่สามารถแบ่งข้อมูลออกเป็นแถวและหลักได้ ซึ่งสามารถเปิดแก้ไขในโปรแกรม MS Excel 
และไฟล์ .csv จะถูกนำมาใช้ในกรณีที่ข้อมูลที่เราต้องการกรอกมีลักษณะทำซ้ำหลาย ๆ ครั้งด้วยรูปแบบเดียวกัน 

เช่น ถ้าเราต้องการกนอก URL +Username +password 50 ชุด เราก็สร้างไฟล์ .csv ขึ้นมา 1 ไฟล์ ที่มี 50 แถว และมี 3 คอลัมน์ ที่ประกอบด้วย URL  Username และ password 

iMacros Blogger SEO Facebook Tutorial    
แล้วใช้คำสังใน iMacro เรียกใช้ข้อมูลจากไฟล์  สำหรับรายละเอียดการสร้างไฟล์ เรียกใช้ไฟล์ DATASOURCE และการเรียกใช้ไฟล์จากDatasources จะกล่าวรายละเอียดในบทความตอนที่ 3 ครับ   


1.5 Command ที่เกี่ยวข้องกับการเรียกใช้งาน ไฟล์ .csv จาก Datasourse 

Command ที่กำหนดการเรียกใช้ข้อมูลจาก Column ที่ 1 ถึง 3 
SET !DATASOURCE_COLUMNS 3
เลข 3 คือจำนวน Column ที่เราจะเรียกใช้ข้อมูลอาจจะกำหนดเป็น 1 หรือ 9 ก็ได้ขึ้นอยู่กับข้อมูลนำเข้า 

Command ที่กำหนดให้ทำซ้ำโดยใช้แต่ละแถวตัวแบ่งการดำเนินการแต่ละรอบของ LOOP 
SET !DATASOURCE_LINE {{!LOOP}}

Command ที่กำหนดว่าการทำงานแบบ LOOP นั้นจะทำซ้ำตั้งแต่แถวใดในไฟล์ .csv จาก Datasourse 
SET !LOOP 1
ถ้าใส่เลข 1 ก็แปลว่าเริ่มทำซ้ำจากบรรทัดที่ 1 


1.6 Command ที่กำหนดเวลาในการโหลด Webpage 
SET !TIMEOUT 30
เวลาปกติที่ Macro จะรอการเปิดหน้า Webpage เป็น 60 วินาที แต่ถ้าเราต้องการเร่งเวลาก็อาจจะเพิ่มคำสั่งนี้ลงไปให้เป็น 30 วินาที (ใส่เลข 30 เหมือนในตัวอย่าง) เป็นต้น  


1.7 Command ที่กำหนดเวลาในการดำเนินการแต่ละขั้นตอน 
SET !TIMEOUT_STEP 3 
SET !TIMEOUT_TAG 3
คำสั่งชุดนี้เป็นการกำหนด ให้รอการดำเนินการแต่ละขั้นตอนไม่เกิน 3 วินาที  สองคำสั่งนี้จะช่วยให้ Macro ทำงานเร็วขึ้น ซึ่งถ้าไม่ใช้ก็ไม่เสียหายอะไรเพราะค่าเดิมของ Macro จะตั้งไว้ที่ 6 วินาที  

1.8 Command ที่เกี่ยวข้องกับการกรอก Password บน Webpage 
ใช้ Command ด้านล่างเมื่อไม่ต้องการให้มีการ Lock หรือจดจำการใช้ Password (แนะนำให้ตั้งแบบนี้) 
SET !ENCRYPTION NO
ใช้ Command ด้านล่างเมื่อต้องการให้มีการจดจำการใช้ Password ไว้ใน temporarily ในเครื่องของเราในขณะที่ run Macro อยู่ 
SET !ENCRYPTION TMPKEY
และใช้Command ด้านล่างเมื่อต้องการให้ใช้รหัสผ่านจากรหัสที่เก็บไว้ในคอมพิวเตอร์ของคุณ (ในกรณีที่คุณบันทึกรหัสไว้บน Browser) 
SET !ENCRYPTION STOREDKEY

1.9 Command ในการกำหนดค่าตัวแปร 
ในการกำหนดค่าตัวแปรใน 1 Macro จะกำหนดได้ไม่เกิน 3 ตัวแปรซึ่งกำหนดได้โดยใช้ชุดคำสั่ง 
SET !VAR1 ค่าตัวแปร1 
SET !VAR2 ค่าตัวแปร2 
SET !VAR3 ค่าตัวแปร3
ชุดคำสั่งด้านบนนี้จะใช้ในกรณีที่กำหนดตัวแปร 3 ตัวอาจจะกำหนดน้อยกว่านี้ก็ได้ 

และในการเรียกใช้ตัวแปรต่าง ๆ ทำได้โดยใช้โค้ด 
{{!VAR1}}
เช่น ถ้าผมต้องการเรียกใช้ตัวแปรที่ 3 ซึ่งผมกำหนดไว้เป็น email ก็เรียกใช้โดย 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:email CONTENT={{!VAR3}}
หรือถ้าคัวแปรที่ 1 เป็นชื่อโดเมนก็อาจจะเรียกใช้โดยโค้ดด้านล่างเป็นต้น 
URL GOTO=http://{{!VAR1}}

1.10 การใส่ Comment ใน Macro 
การใส่ comment ใน Marcro สามารถใส่ได้ไม่จำกัดแต่มีเงื่อนไขว่าจะต้องเริ่มบรรทัดใหม่และนำด้วยเครื่องหมาย ' 
เช่น ดู comment บรรทัดสีเขียวในโค้ดด้านล่าง 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:homepage CONTENT=http://www.hackublog.com 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:location CONTENT=USA 
pause 
'หยุดให้กรอก captcha ครับ กรอกแล้วกด Continue
การใส่ Comment ลงไปในลักษณะนี้ Macro จะเข้าใจว่าไม่ต้องนับการดำเนินการในขั้นนี้และข้ามไปบรรทัดอื่น 

2. Command ที่สำคัญในการกำหนดการดำเนินการ


TAG เป็นคำสั่งที่ใช้เลือก HTML ในหน้า Webpage ซึ่งจะใช้ Parameter  POS, TYPE, FORM  และ ATTR เป็นตัวตัดสินเลือก HTML บนหน้า Webpage ในแต่ละจุด 

การดำเนินการในเต่ละขั้นตอนจะนำด้วย TAG และจะมาควบคู่กับ Parameter POS, TYPE, FORM  และ ATTR  เช่น 

TAG POS=1 TYPE=SELECT FORM=NAME:form1 ATTR=NAME:select1 CONTENT=2

แต่ก็ไม่จำเป็นเสมอไป และเราสามารถตัดการใช้ Parameter ที่ไม่จำเป็นทิ้งไปได้ดูรายละเอียดเพิ่มจากด้านล่าง  


2.1 POS (POSITION) 
เป็น Parameter ที่ใช้ระบุตำแหน่งในกรณีที่ใน Webpage นั้น ๆ มีส่วนที่ซ้ำกันมากกว่า 1 แห่ง เช่น 

POS=1


2.2 TYPE 
เป็น Parameter ที่ใช้ระบุชนิดของ HTML ที่เราจะกระทำบนWebPage นั้น ๆ เช่น 

TYPE=SELECT
TYPE=INPUT:TEXT
TYPE=A
TYPE=INPUT:SUBMIT
TYPE=INPUT:CHECKBOX
เป็นต้น 


2.3 FORM 
เป็น Parameter ที่สั่งให้กระทำกับ Tag Form ของ HTML บนWebPage นั้น ๆ เช่น 
FORM=NAME:TestForm2
ในกรณีที่เราต้องการป้องกันความผิดพลาดจากเว็บไซต์ที่เปลี่ยนข้อมูล session ID แบบ ไดนามิก ได้ด้วย หรือพูดให้เข้าใจง่ายคือการเข้าถึงข้อมูลแต่ละครั้งบน Website นี้จะได้รหัสข้อมูลแตกต่างกัน ถ้าเราใช้ URL ที่บันทึกไว้ครั้งแรก ครั้งที่ 2 ที่เข้าไปอาจจะไม่พบ และ Macro จะไม่ทำงาน วึ่งแก้ปัญหานี้โดยใช้ 
FORM=ACTION:*
(เทคนิคนี้สำคัญมาก เหมาะเอาไปประยุกต์ใช้) เช่น 
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:email CONTENT={{!VAR3}}

2.4 ATTRIBUTE หรือตัวย่อใช้ว่า ATTR 
เป็น Command ที่ใช้ในกรณีที่เราดำเนินการเกี่ยวกับ Text Link หรือ URL 
ตัวอย่างคำสั่งกับ Text Link  
ATTR=TXT:some_name

ตัวอย่างคำสั่งกับ URL  
ATTR=HREF:some_url
โปรดสังเกตว่าค่าที่ต่อท้ายจะเป็นชื่อ Link หรือ URL 

2.5 CONTENT 
เป็น Parameter ที่ใช้ระบุข้อมูลที่เป็นรายละเอียดในการใช้งานแต่ละครั้ง เช่น ชื่อ password email ,URL หรือบทความที่จะนำไป Submit ซึ่งถ้าเราเขียนสคริปต์เป็นแล้วเราจะสามารถเรียกข้อมูลที่เป็น Content มาจาก Datasource หรือจากค่าตัวแปรที่กำหนดได้ 
ตัวอย่างการระบุข้อมูล CONTENT โดยตรง (กรณีกรอกชื่อว่า hackublog) 
CONTENT=hackublog
ตัวอย่างกาเรียกใช้ข้อมูล CONTENT จากตัวแปร (กรณีเรียกใช้ตัวแปรที่ 2) 
CONTENT={{!VAR2}}
ตัวอย่างการเรียกใช้ CONTENT จากคอลัมน์ของไฟล์ .csv จาก Folder Datasource (กรณีเรียกใช้ข้อมูลจาก คอลัมน์ ที่ 3) 
CONTENT={{!COL3}}


2.6 Command GOTO 
เป็นคำสั่งให้ไปยัง URL ที่ระบุ เช่น 
URL GOTO=http://www.hackublog.com/
URL GOTO={{!COL1}}
URL GOTO={{!COL1}}/index.php?action=register

2.7 EXTRACT 
เป็นคำสั่งที่ใช้ในการกรณีที่ต้องการเก็บข้อมูลบน Webpage ในหลายกรณ๊เช่น
Extract Complete Website
'เก็บ Webpage ทั้งหน้า
TAG POS=1 TYPE=HTML ATTR=* EXTRACT=HTM 
'เก็บ Webpage เฉพาะที่เป็น TEXT ทั้งหน้า
TAG POS=1 TYPE=HTML ATTR=* EXTRACT=TXT
'เก็บ Webpage เฉพาะส่วนหัว
TAG POS=1 TYPE=HEAD ATTR=* EXTRACT=HTM
'เก็บ Webpage เฉพาะส่วน BODY เท่านั้น
TAG POS=1 TYPE=BODY ATTR=* EXTRACT=HTM
Extract Page Title
URL GOTO=http://www.hackublog.com/
TAG POS=1 TYPE=TITLE ATTR=* EXTRACT=TXT

ข้อมูลที่เก็บจะเป็นส่วน Title ของหน้า

Extract Page URL
ADD !EXTRACT {{!URLCURRENT}}

คำสั่งนี้สามารถประยุกต์ใช้ประโยชน์ได้มากเพราะสามารถเก็บ URL ของหน้าที่เปิดได้


2.8 SAVEAS 
เป็นคำสั่งที่ต้องการให้มีการบันทึกข้อมูลบนหน้า Webpage หรือข้อมูลที่ได้จากการ EXTRACT ลงบนเครื่องคอมพิวเตอร์ของเรา เช่น
SAVEAS TYPE=EXTRACT FOLDER=* FILE==ชื่อไฟล์.csv
หรือ
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}

2.9 <SP> 
เป็นโค้ดที่ใส่คั่นให้ข้อความใน Macro มีการเว้นวรรค   

2.10 <BR> 
เป็นโค้ดที่ใส่คั่นให้ข้อความใน Macro มีการขึ้นบรรทัดใหม่ 



การแก้ไข Script และ Command ในแต่ละ Macro

เราสามารถแก้ไขสคริปต์ในแต่ละ Macro ให้การทำงานมีประสิทธิภาพมากขึ้น เช่นการแก้ไขสคริปต์ของ Macro ที่ได้จากการอัดให้ใช้กับกรณีอื่น ๆ ได้ ซึ่งในที่นี้ทำได้ 2 วิธีดังนี้ 

วิธีแก้ไข Macro วิธีที่ 1 
ให้เรียกใช้งาน Macro และเลือก List ทางซ้ายมือที่เราต้องการแก้ไข จากนั้นก็ทำการ แก้ไข เพิ่ม หรือลบโค้ด ที่ต้องการและบันทึก 

สอน iMacro Submit bookmark และ Pligg 
ตัวอย่าง 
จาก Macro การ Submit บทความกับ Digg.com ที่ได้ยกตัวอย่างไปข้างต้นคือ 
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1      
URL GOTO=http://digg.com/      
TAG POS=1 TYPE=A ATTR=ID:header-login      
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/login/prepare/digg ATTR=NAME:username CONTENT=username      
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/login/prepare/digg ATTR=NAME:password CONTENT=password      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://digg.com/login/prepare/digg ATTR=VALUE:Login      
TAG POS=1 TYPE=A ATTR=TXT:Submit<SP>New      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:url CONTENT=http://www.hackublog.com/       
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:thisform ATTR=ID:type-news      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=ID:submit_button      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:title CONTENT=หัวเรื่อง      
TAG POS=1 TYPE=TEXTAREA FORM=NAME:NoFormName ATTR=ID:body CONTENT=เนื้อหาโดยย่อ      
TAG POS=1 TYPE=A ATTR=ID:topic-503      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:captcha CONTENT=รหัสCaptcha      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:submission-step-2 ATTR=ID:submit_button
TAG POS=1 TYPE=A ATTR=TXT:Logout
ผมสามารถดัดแปลงให้สามารถใช้ได้กับการ Submit บทความครั้งต่อไปโดยเติม Command ต่าง ๆ ที่ได้อธิบายไปแล้ว ได้ผลลัพธ์เป็น 
VERSION BUILD=6700624 RECORDER=FX     
TAB T=1 
SET !ERRORIGNORE YES 
SET !ERRORCONTINUE YES
SET !TIMEOUT_STEP 3 
SET !TIMEOUT_TAG 3 
SET !VAR1 ใส่username
SET !VAR2 ใส่password 
SET !VAR3 ใส่URLที่ต้องการ Submit
URL GOTO=http://digg.com/      
TAG POS=1 TYPE=A ATTR=ID:header-login    
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/login/prepare/digg ATTR=NAME:username CONTENT={{!VAR1}}     
SET !ENCRYPTION NO      
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/login/prepare/digg ATTR=NAME:password CONTENT={{!VAR2}}     
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://digg.com/login/prepare/digg ATTR=VALUE:Login      
TAG POS=1 TYPE=A ATTR=TXT:Submit<SP>New      
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=ID:url CONTENT={{!VAR3}}
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:thisform ATTR=ID:type-news      
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=ID:submit_button      
pause
'หยุดเพื่อกรอก หัวเรื่อง เนื้อหา เลือกหมวดหมู่ และกรอก Captcha เสร็จแล้วกด Continue   
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:submission-step-2 ATTR=ID:submit_button
TAG POS=1 TYPE=A ATTR=TXT:Logout
คำสั่งที่ผมได้เพิ่มเข้าไปมีอะไรบ้าง 
SET !ERRORIGNORE YES 
SET !ERRORCONTINUE YES
คำสั่งด้านบนใส่เข้าไปเพื่อให้ Macro ไม่หยุดทำงานกลางคันโดยที่งานขั้นตอนบางขั้นตอนยังคงค้างอยู่ นั่นคือหากพบความผิดพลาดในการดำเนินการบางขั้นตอน Macro ก็จะยังทำงานอยู่ 

SET !TIMEOUT_STEP 3 
SET !TIMEOUT_TAG 3
คำสั่งด้านบนใส่เข้าไปเพื่อให้การทำงานแต่ละขั้นตอนเร็วขึ้น ใช้เวลาอย่างมาก 3 วินาที 
SET !VAR1 ใส่username 
SET !VAR2 ใส่password 
SET !VAR3 ใส่URLที่ต้องการ Submit
โค้ด้านบนใส่เข้าไปเพื่อให้การแก้ไขข้อมูลทำได้ง่ายขึ้น เช่นถ้าจะเปลี่ยนชื่อ รหัสผ่านที่ใช้ ก็แก้ได้ตรงค่าตัวแปร ไม่ต้องก็ในตำแหน่ง CONTENT ซึ่งช่วยลดความสับสนได้ดี 
pause
ใส่เข้าไปเพื่อให้ Macro หยุดรอเรากรอกข้อมูล เมื่อเรากด Continue แล้ว Macro จึงจะทำงานต่อไป 
'หยุดเพื่อกรอก หัวเรื่อง เนื้อหา เลือกหมวดหมู่ และกรอก Captcha เสร็จแล้วกด Continue
บรรทัดนี้เป็น Comment ไม่ได้ส่งผลต่อการทำงานเลย ถ้าคุณใช้เองอาจจะใส่หรือไม่ใส่ก็ได้ 

วิธีแก้ไข Macro วิธีที่ 2 
แก้ไขโดยเข้าไปที่ 
C:\Documents and Settings\ชื่อผู้ใช้\My Documents\iMacros  
ซึ่งคุณจะพบกับไฟล์ของ Macro (ไฟล์สกุล .iim) อยู่ในโฟลเดอร์ Macro อยู่หลายไฟล์ 

สอนใช้งาน iMacros อย่างละเอียด 

ให้เปิดไฟล์ที่ต้องการแก้ไขกับโปรแกรมชนิด Text Editor เช่น Notepad หรือ Wordpad ที่มีอยู่ในทุกเครื่องอยู่แล้ว (แนะนำให้ใช้ Wordpad) 

สอน iMacro และ Blogger SEO 

จากนั้นแก้ไขตามแนวทางที่อธิบายเอาไว้ในวิธีที่ 1 และบันทึก 


การนำเข้า Macro จากภายนอกเพื่อใช้งาน

การนำ Macro จากภายนอกมาใช้งานทำได้คล้ายกับวิธีแก้ไข Macro ซึ่งทำได้ 2 วิธีดังนี้ 
วิธีนำเข้า Macro วิธีที่ 1 

1.1 ให้เรียกใช้ iMacros ก่อน โดย Click ที่ icon ของ iMacros 
1.2 จากนั้นมองทาง List ของ Macro ทางซ้ายมือคุณจะเห็นรายการแรกเป็น Macro ที่ชื่อว่า #Current.iim ทุกครั้งที่เปิดใช้งาน 
1.3 ให้คลิกขวาเพื่อ Edit Macro ตัวนี้ แล้วลบ Script และ Command เดิมออก 

ใช้ iMacro ทำ SEO  

1.4 จากนั้นวาง Script และ Command ของ Macro ที่ต้องการนำเข้าวางลงไปและบันทึกเป็นชื่อไฟล์ที่ต้องการ 

 iMacros Auto Post 

วิธีนำเข้า Macro วิธีที่ 2 
กรณีที่ไฟล์ที่จะนำเข้าเป็นไฟล์ Macro ที่มีสกุล .iim อยู่แล้วคุณสามารถคัดลอกไปวางใน 
C:\Documents and Settings\ชื่อผู้ใช้\My Documents\iMacros\Macros
 iMacro คือ ใช้งานอย่างไร Macro  

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

หมายเหตุ 
Script และคำสั่งที่แสดงให้ดูในตัวอย่างนี้ยังถือว่ายังไม่มีประสิทธิภาพสูงสุดเพราะยังต้องอาศัยให้เราคอยกำกับดูแลและกรอกข้อมูลช่วยอยู่ Macro ที่ดีควรจะต้องทุ่นแรงเราให้มากที่สุดและทำงานได้ตรงวัตถุประสงค์ที่เราต้องการมากที่สุดด้วย 

ในบทความตอนที่ 3 ผมจะนำเสนอวิธีนำเข้าข้อมูลที่อยู่ในรูป Matrix นั่นคืออยู่ในรูปแถวและหลัก ซึ่งสามารถกำหนดด้วยไฟล์สกุล .CSV ที่สร้างด้วยสมุดงาน Binary ของ Microsoft Excel ซึ่งเมื่อเราใช้ข้อมูลในรูป Matrix มาช่วยก็จะทำให้เราสามารถสั่งให้ Macro ทำงานซ้ำได้หลาย ๆ รอบ  และเราจะกรอกข้อมูลน้อยลง ซึ่งในบางกรณีเราอาจจะปล่อยให้ iMacro ทำงานแทนเราอย่างอัตโนมัติได้เลย 

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

ที่มา : http://www.hackublog.com/2010/08/imacros-tutorial-section-2-scripts-and.html

6/10/2561

MySql คำสั่ง Update ข้อมูลโดยดึงจากฟิลด์อีกตารางมาใส่

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

1. ตารางชื่อ employee เก็บข้อมูลพนักงาน มีฟิลด์ emp_id,name,pos_id (รหัส,ชื่อพนักงาน,รหัสตำแหน่ง)
2. ตารางชื่อ position เก็บข้อมูลตำแหน่งที่มีในบริษัท มีฟิลด์ pos_id,name (รหัสตำแหน่ง,ชื่อตำแหน่ง)
วันดีคืนดีเราจำเป็นต้องเพิ่มฟิลด์ที่ชื่อว่า emp_count ในตาราง position เพื่อเก็บจำนวนพนักงานในแต่ล่ะตำแหน่ง จะได้เป็น ตารางชื่อ position เก็บข้อมูลตำแหน่งที่มีในบริษัท มีฟิลด์ pos_id,name,emp_count (รหัสตำแหน่ง,ชื่อตำแหน่ง,จำนวนพนักงาน) ทีนี้เราจะต้องการนำ “จำนวนพนักงาน” ของแต่ละตำแหน่งมาใส่ในฟิลด์ emp_count ที่เราสร้างขึ้น เราก็ใช้คำสั่ง Sql ดังนี้
จากคำสั่งด้านบนเราก็จะได้จำนวนพนักงานของแต่ล่ะตำแหน่งเพื่อนำมากรอกลงในฟิลด์ emp_count แล้ว แล้วถ้าเกิดกรณีตำแหน่งมีร้อยกว่าตำแหน่งล่ะ ไม่กรอกจนมือหงิกเหรอ? นี่ล่ะจึงทำให้เราต้องใช้คำสั่ง Sql เพื่อ ดึงข้อมูลจากฟิลด์ของอีกตารางนึงมา Update นั่นเอง วิธีการมีดังนี้
อธิบายคำสั่งด้านบนดังนี้
บรรทัดที่ 1 อัพเดทตาราง position ตั้งชื่อย่อเป็น pos ขั้นด้วย ,
บรรทัดที่ 2 ภายในวงเล็บนำคำสั่งที่เรานับจำนวนพนักงานด้านบนมาใส่แล้วตั้งชื่อย่อตารางเป็น emp
บรรทัดที่ 3 ให้นำ emp.emp_count จำนวนพนักงานที่ได้จากการนับมาอัพเดทใส่ในฟิลด์ pos.emp_count
บรรทัดที่ 4 มีเงื่อนไขให้อัพเดทรหัสตำแหน่งรหัสเดียวกัน “ไม่งั้นเดี๋ยวอัพเดทผิดนะจ๊ะ”

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

6/07/2561

วิธีสร้าง Foreign Key บน MySQL

การสร้าง Foreign Key บน MySQL ด้วย phpmyadmin (How to create foreign key on MySQL with phpmyadmin)โดย Foreign Key ก็คือคีย์ร่วมที่ทำหน้าที่เชื่อมโยงความสัมพันธ์ระหว่างตารางนั่นเองหากคีย์นอกมีการเปลี่ยนแปลงก็จะส่งผลต่อการเชื่อมโยงข้อมูลระหว่างตารางตามเงื่อนไขที่เราได้กำหนดไว้ โดยข้อจำกัด ของความสัมพันธ์ระหว่างตารางที่เราสร้างเรามักจะเรียกว่า Constraint โดยการกำหนดรูปแบบของความสัมพันธ์ของ Constraint จะมีอยู่สองกรณี คือ on delete และ on update และแต่ละกรณีสามารถกำหนดข้อจำกัดของความสัมพันธ์ได้โดยมี keyword ซึ่งคำเหล่านี้จะนำไปเติมไว้ด้านหลังเงือนไข โดยมีความฟมายดังต่อไปนี้
1. Cascade คือเมื่อกำหนด keyword cascade เข้าไปด้านหลัง เช่น on delete cascade จะหมายความว่าให้ทำการลบโดยไม่ต้องสนใจความสัมพันธ์ระหว่างตาราง
2. Set null คือกำหนดให้เป็นค่าว่างใน field นั้นๆที่มีข้อจำกัดความสัมพันธ์เช่น on delete set null โดยเมื่อทำการลบข้อมูลใน field ที่อ้างอิงระหว่างตารางแล้วให้ระบบตั้งค่า field นั้นให้เป็นค่าว่าง
3. No Action คือกำหนดให้ไม่ต้องทำอะไร เมื่อมีการ update หรือ delete ข้อมูลใน field ที่มีความสัมพันธ์ระหว่างตาราง ข้อมูลที่อยู่ใน field ที่เชื่อมโยงก็จะอยู่เหมือนเดิมไม่มีการเปลี่ยนแปลงแต่อย่างใด
4. Restrict คือห้ามมีมิให้มีการเปลี่ยนแปลงใน field ที่ถูกกำหนดความสัมพันธ์ทั้งแบบ on delete หรือ on update เรียกว่า lock ไว้ไม่ให้ผู้ใช้สามารถลบหรือปรับปรุงค่าต่างๆได้เลย
บทความนี้จะยกตัวอย่างในการสร้างและแก้ไข Foreign Key ด้วย phpmyadmin และแบบ mysql syntax โดยอันดับแรกจะขอยกตัวอย่างตั้งแต่การออกแบบ ER-Diagram แบบ Chen Model โดยยกตัวอย่าง 3 Entity ได้แก่ Professor, Class, Course ) er-d_chen
จากนั้นจะทดลองสร้าง ตารางตาม ER-D ข้างบน จำนวน 3 ตาราง
3tables.jpg
และกำหนด Primary Key ของแต่ละตารางตามโดยกำหนดให้ Primary Key คือตัวที่ขีดเส้นใต้ ตามหลักของการเขียน ER-D แบบ Chen ที่เราออกแบบไว้พร้อมกำหนด Primary Key ให้เรียบร้อย
จากนั้นให้เข้าไปที่ตารางที่มี Foreign Key จากรูปคือตาราง class และไปที่ Structure และไปที่ Relation view   (Go to >class Table>structure>relation view ) ดังรูป
class_structure
เมื่อกำหนดแล้วจะได้หน้าตาแบบนี้ เราก็กรอกข้อมูลรายละเอียดของ Foreign Key ให้ครบถ้วน
foreignkey_gui.jpg
โดยผมจะลองยกตัวอย่างการสร้าง Foreign Key โดยกำหนดความสัมพันธ์แบบ no action เมื่อมีการ ลบหรือ เปลี่ยนแปลง ข้อมูลใน field prof_id ที่มีความสัมพันธ์กันระหว่างตาราง class กับ professor มันจะไม่เกิดอะไรขึ้น โดยจะลองทำให้ดูทีละแบบ และกำหนดความสัมพันธ์แบบ cascade เมื่อมีการลบ หรือเปลี่ยนแปลง ความสัมพันธ์ระหว่าง field crs_id ระหว่างตาราง class กับ course ซึ่งเมื่อมีการเปลี่ยนแปลงข้อมูลใน field   ***หมายเหตุ***โดยในการตั้งค่า foreign key ควรทำตอนสร้างตารางไม่ควรทำตอนมีข้อมูลอยู่ในตาราง
nocation_cascades
MySQL Syntax ในการสร้าง Foreign Key (กรณีสร้างตารางไปแล้ว เราต้องใช้คำสั่งปรับปรุงแก้ไขตาราง นั้นก็คือคำสั่ง Alter Table จากตัวอย่างเป็นการสร้าง Constraint สองครังไม่ได้สร้างพร้อมกัน แต่ Constraint สามารถสร้างพร้อมกันได้ )
ALTER TABLE `class` ADD CONSTRAINT `abc` FOREIGN KEY (`prof_id`) REFERENCES `professor`(`prof_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
———————————————————————————————–
ALTER TABLE `class` ADD CONSTRAINT `casecades` FOREIGN KEY (`crs_id`) REFERENCES `course`(`crs_id`) ON DELETE CASCADE ON UPDATE CASCADE;
เมื่อสร้างเสร็จแล้วจะได้ดังรูป
foreignkeycomplete
จากนั้นเรามาทดลองเพิ่มข้อมูลลงไปใน ตาราง course, professor, class
insertprofesssor
insertcourse
เมื่อเรา insert ข้อมูลที่ ตาราง course และ professor เสร็จแล้ว เรามา insert ข้อมูลต่อที่ตาราง class ระบบก็จะทำการ query ข้อมูลให้เราในหน้า insert เลย โดยเราสามารถเลือกเพิ่มข้อมูลได้จาก drop down ตามรูป สี่เหลี่ยมสีแดง และสีนำเงิน (นี่คือประโยชน์ของฐานข้อมูลเชิงสัมพันธ์)
insertclass
จากนั้นเราจะมาทดลองทำการลบข้อมูลดูโดยเข้าไปที่ตาราง course และเริ่มทำการลบข้อมูล รายวิชาไปหนึ่ง record โดยระบบจะสามารถลบข้อมูลใน record นั้นได้ (เพราะเราใช้เงื่อนไข on delete cascade) และการลบข้อมูลในตาราง course จะส่งกระทบไปยัง record ในตาราง class ด้วย เพราะถูกเชื่อมโยงกันด้วย foreign key ดังรูป
ondeletecascade
ในตาราง class จะไม่ปรากฏ record ของข้อมูลที่มีการเชื่อมโยงเลย ดังรูป
norecord
และหากทดลองลบข้อมูลในตาราง professor จะไม่สามารถลบข้อมูลได้เนื่องจาก foreign key ของ field prof_id ของตาราง professor เชื่อมโยงกับ field prof_id ของตาราง class อยู่ โดยมีความสัมพันธ์เป็น no action จึงทำให้ไม่สามารถลบข้อมูลได้ดังรูป
ondelete_onaction

สรุปจากบทความนี้หวังว่าผู้อ่านคงจะได้ความรู้และวิธีการสร้าง foreign key และการตั้งค่าความสัมพันธ์ของ foreign key บ้างไม่มากก็น้อยนะครับ หากสงสัยสามารถโพสสอบถามได้นะครับ

3/28/2561

วิธีเล่น LINE ในคอม ด้วยส่วนขยาย Google Chrome

ถัดจากข่าวที่ LINE เลิกสนับสนุน Webstore ตอนนี้หากจะใช้ LINE ในคอมด้วย Google Chrome ก็ยังคงใช้ได้ครับ แต่ต้องทำการติดตั้ง “ส่วนขยาย” หรือ extension เสียก่อน วันนี้ผมจะมาแนะนำการใช้งานให้ครับ
ก่อนอื่น ให้ทำการติดตั้ง LINE extension เสียก่อน โดยเข้าไปติดตั้งได้ที่ >>> คลิก
โดยกด Add To Chrome หรือเพิ่มส่วนขยายนี้เข้ามาใน Google Chrome ของเรา จากนั้นไอค่อนของ LINE จะไปอยู่ตรงมุมขวาบนของตัวเบราเซอร์
เมื่อกดเข้ามาก็จะมาที่หน้าล็อกอินตามปกติ โดยเราสามารถเลือกล็อกอินด้วยอีเมลที่ลงทะเบียนไว้กับ LINE ในมือถือ หรือจะล็อกอินด้วย QR Code ก็ได้ตามปกติครับ
เมื่อล็อกอินเข้ามาครั้งแรก ก็จะมีรหัสให้เราทำการกดยืนยันครับ (ป้องกันคนอื่นแอบล็อกอิน) ซึ่งเราต้องนำรหัสตัวเลข 6 ตัว ไปกรอกในแอป LINE บนมือถือ
จากนั้นจึงสามารถใช้งานได้ตามปกติ
LINE บน Google Chrome สามารถใช้ฟีเจอร์แชท หรือการส่งข้อความ ส่งสติ๊กเกอร์ได้ โดยไม่สามารถใช้ฟีเจอร์การโทร วิดีโอคอล หรืออ่านไทม์ไลน์ได้

LINE บน Google Chrome Webstore ใช้ไม่ได้แล้ว, ย้ายไปเป็น “ส่วนขยาย”

ก่อนหน้านี้หลายคนคงทราบดีว่า เราสามารถเล่น LINE บน PC หรือเครื่องคอมพิวเตอร์ได้ผ่าน Google Chrome โดยการลงส่วนเสริมของ Chrome App หรือ Chrome Webstore แต่ล่าสุดหลังจากวันที่ 8 มีนาคม 2561 แอพ LINE บน Google Chrome Webstore จะไม่สามารถใช้งานได้แล้ว แต่ไม่ต้องตกใจ เพราะจะเปลี่ยนไปเป็นในรูปแบบของส่วนขยาย หรือ Extension แทน
เมื่อกดเข้าใช้งาน LINE บน Google Chrome Webstore ตอนนี้จะมีป๊อปอัพเตือนว่าไม่สามารถใช้งานได้แล้ว ให้ดาวน์โหลดส่วนขยายของ LINE มาติดตั้งแทน
ดาวน์โหลดส่วนขยาย LINE บน Google Chrome ได้ที่ คลิก
กดไม่กี่ขั้นตอน ก็สามารถใช้งาน LINE ผ่าน Google Chrome ได้ตามปกติ

วิธีตั้งค่า ไม่ให้เพื่อนรู้ ว่าเรากำลังใช้/ออนไลน์ Facebook Messenger อยู่

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

วิธีสั่ง พิมพ์จากหลังมาหน้า ด้วยโปรแกรม Word แบบไม่ต้องตั้งค่าเครื่องพิมพ์

สำหรับคนที่ต้องการสั่งพิมพ์เอกสารผ่านโปรแกรม Word จากหลังมาหน้า เพื่อให้ง่ายต่อการจัดชุดหรือเข้าเล่ม ซึ่งโดยปกติแล้ว เครื่องพิมพ์แต่ละรุ่นจะตั้งค่ามาไม่เหมือนกัน บางรุ่นพิมพ์จากหลังมาหน้าเลย แต่บางรุ่นก็พิมพ์จากหน้ามาหลัง สำหรับเทคนิคนี้ เป็นการสั่งให้ Word พิมพ์จากหลังมาหน้า เสมือนว่าเราสั่งพิมพ์จากหน้าหลังมาก่อนจริงๆ
วิธีการก็ง่ายๆ ครับ ก่อนจะสั่งพิมพ์ ตรงรายละเอียดหน้า หรือ Pages ให้ใส่เงื่อนไขจากหน้าท้าย ไปหน้าแรก หรือหน้าที่ต้องการ ยกตัวอย่างเช่น ต้องการพิมพ์เอกสาร 10 หน้า ก็ให้สั่งว่า “10-1” หรือให้พิมพ์จากหน้า 10 ไปถึงหน้า 1 นั่นเอง
ที่มา – Microsoft Thailand Education
สำหรับการแก้ปัญหาที่ได้บอกไปด้านบนนั้น อาจจะเป็นการแก้ปัญหาที่ปลายเหตุ เน้นสะดวก รวดเร็วเฉพาะครั้งคราวเท่านั้น หากต้องการแก้ปัญหาแบบถาวร ควรจะต้องเข้าไปตั้งค่าที่ไดรเวอร์ของเครื่องพิมพ์ครับ
สามารถทำได้โดย ไปที่ Control Panel > Printers > คลิกขวาที่เครื่องพิมพ์ที่เราใช้ > เลือก Printing preferences
ในแท็บ Layout ตรงส่วน Page Order ให้เลือกเป็น Back to Front เป็นอันเสร็จพิธี

เปลี่ยน Mac Address Windows 8 ด้วยวิธีง่ายๆ และใช้โปรแกรมช่วย



มีคนอีเมลสอบถามมาครับ ว่าจะเปลี่ยน Mac Address ใน Windows 8 นั้นทำอย่างไร เลยขอเอามาเขียนเป็นวิธีสรุปลงในนี้ด้วยเลยละกัน เผื่อคนอื่นจะได้รู้กันด้วย ซึ่งผมก็มีวิธีการมาให้เลือกถึง 2 วิธีด้วยกัน คือ เปลี่ยนแบบไม่ใช่โปรแกรมช่วย และเปลี่ยนแบบใช้โปรแกรมช่วย
วิธีเปลี่ยน Mac Address ใน Windows 8 โดยไม่ต้องใช้โปรแกรมช่วย
คลิกขวาที่รูปหน้าจอ Connection ตรงมุมขวาล่างของจอแล้วเลือก “Open Network and Sharing Center”
คลิกตรงชื่อ Connection ที่เราใช้เชื่อมต่ออยู่ (อาจจะมีชื่อแตกต่างกันไป)
คลิก Properties
คลิกที่ Configure…
คลิกที่แท็บ Advance > Locally Administered address แล้วก็กรอก Mac Address ที่ต้องการได้เลยครับ (ดังภาพ)
วิธีเปลี่ยน Mac Address ใน Windows  8 ด้วยโปรแกรม Technitium MAC Address Changer
วิธีนี้สามารถเปลี่ยนได้ง่ายๆ ครับ เพียง ดาวน์โหลดโปรแกรม Technitium MAC Address Changer มาติดตั้ง (ดาวน์โหลดฟรี) จากนั้นก็เปลี่ยนได้ง่ายๆ จากในโปรแกรมนี้เลย เหมาะสำหรับคนที่ต้องเปลี่ยนบ่อยๆ ขี้เกียจคลิกหลายขั้นตอน