Set ให้ Emulator ออกเน็ตใน Vista (XP ก็ได้)

Posted 01/01/2008 18:09
by coreadmin
คะแนนนิยม

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

ปกติเราก็เคยทำให้ Emulator ออกเน็ตได้ใน XP โดยการใช้ ActiveSync ใช่ไหมล่ะครับ (แต่ผมเองก็ไม่เคยทำได้หรอกนะ...) แต่ใน Vista ตัว ActiveSync นั้นโดนเปลี่ยนร่างไปเป็น Mobile Device Center ไปแล้ว ซึ่งผมก็ได้เขียนถึงวิธีการลง WM5 SDK ใน Vista ทั้งๆ ที่มันต้องการ ActiveSync ไว้ก่อนหน้านี้ ลองกลับไปอ่านได้นะครับ แล้วคราวนี้จะมีวิธีอื่นอีกไหม ที่จะให้แขนขาของเรา เอ้ย Emulator สามารถออกเน็ตได้ใน Vista

อย่างแรกเลย ต้องทำความเข้าใจให้ตรงกันก่อนว่า Emulator นั้น ก็คือ Virtual PC จำแลงมาเป็น PocketPC Emualtor นั่นเองครับ ดังนั้นก็คิดเอาไว้ก่อนเลยว่า Emulator นั้น ก็เหมือนกับคอมพิวเตอร์เครื่องหนึ่ง นั่นเองครับ มี IP ได้ ต่อเน็ตได้ตามปกติ เพียงแค่ว่า คุณต้องมีที่ให้มันต่อได้ก่อนเท่านั้นเองครับ ซึ่งตามปกติแล้วคุณสามารถไปตั้งค่าให้ Emualtor นั้น ต่อเข้ากับ Network ได้ ผ่านทาง Connection ในวินโวส์ที่สามารถใช้งาน Network ได้อยู่ในขณะนั้น (เป็นการ Bridge ตัว Adapter ใน Emulator เข้ากับ Connection นั้น) แต่ปัญหาอย่างแรกเลยก็คือ คุณก็จะต้องต่อกับ Network อะไรซักอย่างหนึ่งตลอดเวลาที่จะใช้งาน Emulator น่ะสิครับ? สำหรับเครื่องที่ไม่ได้ยกไปไหนมาไหน ก็อาจจะไม่เป็นปัญหานัก เพราะยังไง เราก็คงต่อเน็ตกันตลอดอยู่แล้วในยุคนี้ แต่เครื่อง Laptop ก็เรียกได้ว่าเป็นอุปกรณ์มาตรฐานของนักพัฒนาทั่วไปแล้วด้วยเหมือนกัน ก็คงไม่สะดวกแน่ๆ เวลายกไปทำงานข้างนอกก็ต้องวิ่งหา WiFi น่ะสิ ถ้าอย่างนั้นจะทำอย่างไรดี?

ขอแนะนำ Loopback Adapter

ผมเชื่อว่า หลายๆ คนอาจจะคิดไม่ถึงมาก่อนเลยว่า Windows ก็มี Loopback Adapter กับเขาด้วย (ผมรู้มาจาก Linux น่ะครับ แล้วเลยลอง Search วิธีทำดู) หรือบางคนอาจจะไม่เคยรู้มาก่อนเลยก็ได้ว่า Loopback Adapter มันเอาไว้ทำอะไร ซึ่งที่จริงผมก็อธิบายไม่ค่อยจะได้นักหรอกครับ (อ้าว) แต่โดยสรุปแล้ว Loopback Adapter นี้ จะเป็นเหมือนกับ Adapter ที่เวลาข้อมูลถูกส่งออกไปแล้ว มันไปไหนไม่ได้น่ะครับ ได้แต่วนอยู่ในเครื่องเราเอง เพราะว่ามันเป็น Adapter ที่จำลองขึ้น ประโยชน์ของมันเอาไว้ใช้ทำอะไรนั้น ผมก็ยังไม่ทราบแน่ชัดครับ แต่ที่แน่ๆ มันเข้าข่ายที่จะเป็นฮีโร่ที่จะแก้ปัญหา Emulator ของเราได้ดีมากเลยเชียว เกริ่นกันมายาวแล้ว เพื่อไม่ให้เป็นการเปลืองที่ Server (ในการเก็บ Blog นี้) ก็มาติดตั้ง Loopback Adapter กันเลยดีกว่าครับ

เริ่มติดตั้ง...

สิ่งแรกที่คุณต้องทำเลย ก็คือเข้า คอนโทรลพาเนล และเลือก Add Hardware ครับ อ้อ! ขั้นตอนผมขออิงตาม Vista เลยนะครับ แต่ XP ก็ทำได้เหมือนกัน แต่อาจจะแตกต่างไปบ้างในบางขั้นตอน

จากนั้น จะมีหน้าต่างให้เลือกว่า จะติดตั้ง Hardware อะไร ให้เลือก Show All Devices ตามรูปครับ (XP นั้น รู้สึกว่าจะต้องเลือกเป็น Network Adapter ครับ ใครว่างๆ มาช่วย Confirm ที ผมไม่มีเครื่องที่เป็น XP แล้วอ่ะครับ...)

เมื่อ Vista ทำการแสดงรายชื่อ Hardware ทั้งหมดมาแล้ว (สังเกตว่าเร็วกว่า XP มากเลย) ให้เลือกผู้ผลิตเป็น Microsoft และทางด้านขวาก็จะมี Loopback Adapter ให้เลือกครับ

จากนั้นทำการติดตั้งไปตามปกติ เหมือนว่าคุณได้ติดการ์ดแลนเพิ่มให้เครื่องคุณขึ้นมาอีกอันนั่นหละครับ (คุณสามารถใส่เพิ่มได้หลายอันนะครับ) หลังจากติดตั้งเสร็จแล้ว ให้ไปที่ Network and Sharing Center โดยการคลิ๊กที่ไอคอนรูปเครื่องคอมฯ ที่ Task Bar ครับ

จะเห็นว่า ตอนนี้มีการ์ดแลนเพิ่มขึ้นอีกอันหนึ่งแล้ว ในเครื่องผมได้ทำการ Rename ชื่อเป็น Loopback ไว้แล้ว มันก็เลยเขียนว่า Loopback น่ะครับ ของคุณอาจจะเป็น "Local Area Connection 2"

 

เปิดใช้ Virtual Machine Network Service

ขั้นตอนต่อไป ก็คือติดตั้ง Driver พิเศษ เพื่อให้ Emulator สามารถใช้งานการ์ดแลน เพื่อใช้ต่อกับ Network จริงได้ครับ คุณสามารถดาวน์โหลดได้ที่ เว็บของไมโครซอฟท์ หรือว่าจะใช้ตัวที่ Attach มากับ Article นี้ก็ได้ครับ

เมื่อติดตั้งเรียบร้อย ให้กดที่ View Status เพื่อเปิดหน้าจอ Status ของ Loopback จากนั้นกด Properties อีกครั้งหนึ่ง เพื่อเข้ามาดู Properties ของ Loopback ครับ ในหน้านี้ คุณจะเห็นว่ามีรายชื่อของ Protocol ที่ติดตั้งอยู่ในเครื่อง พร้อมกับ Virtual Machine Network Service ที่เพิ่มเข้ามา ให้คุณไปคลิ๊กทำเครื่องหมายถูก เพื่อให้ Loopback สามารถใช้งาน Virtual Machine Network Service ได้ครับ ดังรูปด้านล่างนี้

จากนั้น ก็ไปยัง Visual Studio ที่ได้ทำการสร้าง Project ที่ใช้ Windows Mobile Device เพื่อที่เราจะได้ตั้งค่าของ Emulator ให้สามารถใช้งาน Network ได้ครับ ซึ่งการทำเพียงครั้งเดียว ก็จะมีผลไปตลอดครับ ถ้าหากว่าใช้ Emulator ตัวเดียวกัน

ตั้งค่า Emulator...ยังไงล่ะ?

คุณก็แค่กดปุ่ม  Device Options บนทูลบาร์ Device ภายใน Visual Studio เพื่อเปิดหน้าต่างตั้งค่าของ Emulator ครับ เมื่อมีหน้าต่างขึ้นมา ก็เลือก Emulator ที่คุณต้องการ กดปุ่ม Properties และ Emulator Options ตามลำดับครับ

ขั้นตอนต่อมาก็ตรงตัวมากครับ ไปที่แถบ Network เลือก Enable NE2000 PCMCIA... ดังรูปด้านบน หรือจะใช้อีกตัวหนึ่งก็ได้ครับ ไม่ว่ากัน เพื่อ Bridge ตัว Emulator เข้ากับ Loopback ที่เราได้ทำการติดตั้งไว้ เมื่อเปิด Emulator ขึ้นมา เพียงเท่านี้ Emulator ของคุณ ก็มาอยู่ร่วมวง Network เดียวกับเครื่องเราแล้วครับ!!!

แต่ว่า แบบนี้ก็ยังออกเน็ตไม่ได้น่ะสิ???

ถูกต้องแล้วครับ เพราะสถาณการณ์ในตอนนี้คือ เครื่องคุณจะทำตัวเหมือน Switch ที่มี Emulator และเครื่องของคุณ (ซึ่งผมเดาว่า สามารถต่ออินเตอร์เน็ตได้) เสียบสายอยู่ สิ่งที่คุณจะต้องทำก็คือ ติด NAT Server เข้าไปในเครื่องของคุณ เพื่อให้เครื่องทุกเครื่องในวงนี้ สามารถออกอินเตอร์เน็ตได้ผ่านทางเครื่องของคุณอีกทีหนึ่ง ฟังดูอาจจะยุ่งยาก แต่จริงๆ แล้วก็คือการไปเปิด Internet Connection Sharing เท่านั้นเองครับ ซึ่งวิธีทำนั้นก็แสนจะง่าย เพียงแค่คุณไปที่ Properties ของ Connection ที่ออกเน็ตได้ แล้วสั่ง Share ไปที่ Loopback เท่านั้นเองครับ

ปกติ Share ไว้ให้คนอื่นอยู่แล้ว แบบนี้คนอื่นก็ใช้ไม่ได้สิ...

อ้าว ใช้ ICS อยู่แล้วเหรอครับ งั้นไม่เป็นไรครับ แบบนี้ ขั้นตอนจะเพิ่มขึ้นมาเล็กน้อย ตรงที่คุณจะต้อง Bridge ตัว Loopback เข้ากับ Connection ที่คุณแชร์ไว้อยู่แล้วตามปกติ ซึ่งวิธีทำก็ไม่ยากเหมือนกันครับ เพียงแค่เปิด Network and Sharing Center และเลือก เพื่อเปิดหน้าต่างที่แสดงรายการของ Connection ทั้งหมดในเครื่องคุณขึ้นมา จากนั้นเลือก Connection ที่คุณเคยแชร์เน็ตไว้ กับ Loopback แล้วคลิ๊กขวา เลือก Bridge Connection ครับ

หลังจากรออยู่ครู่หนึ่ง เนื่องจาก Vista จะทำการติดตั้ง Driver ของ Connection ใหม่ขึ้นมาอีกตัวหนึ่ง คุณก็จะพบว่า มี Network Bridge เพิ่มเข้ามา คุณก็ต้องเปิด Properties เพื่อเปิดใช้งาน Virtual Machine Network Services ก่อนครับ

แล้วแทนที่คุณจะเลือก Bridge ตัว Emulator ไปยัง Loopback (โดยการเปลี่ยนค่าใน Emulator Options) ก็เปลี่ยนเป็น Mac Bridge Miniport แทนครับ คุณอาจจะต้อง Restart เครื่อง หรือไม่ก็เปิด Visual Studio ใหม่ หรือไม่ก็ เอา Loopback ออกจาก Bridge แล้วค่อยเพิ่มกลับเข้าไปใหม่หลายๆ ครั้ง กว่าที่ Mac Bridge Miniport นี้จะแสดงขึ้นมาให้เลือกก็ได้นะครับ ไม่ทราบเหมือนกันว่าทำไม...

อย่าลืมตั้งค่าของ Windows Mobile ใน Emulator ด้วย

เมื่อเรามีทุกอย่างครบแล้ว ก็อย่าลืมไปตั้งค่า Connection ภายในตัว Emulator ด้วยล่ะครับ ซึ่งปกติแล้ว เวลาเปิด Emulator ขึ้นมาครั้งแรกจาก Cold Boot ก็จะมีไอคอรรูปเสาสัญญาณอยู่ด้านบนอยู่แล้ว เพียงแค่คลิ๊กไอคอนนั้น และบอกกับ WM ว่า คุณสามารถต่อ Internet ผ่าน Connection นี้ได้ก็เรียบร้อย จะเห็นว่าผมสามารถเปิด Live.com ได้ แล้ว Live.com ก็รู้ด้วยว่าเป็น PocketPC ต่อเข้ามา และ Redirect ไปยัง mobile.live.com ให้ครับ

แล้วถ้าอย่างนั้น ทำไมไม่ Bridge ตัว Emulator ไป Connection ที่ออกเน็ตได้ซะก็หมดเรื่อง...?

ใช่ครับ...แต่อย่าลืมว่าถ้าทำแบบนั้น ก็คือ Connection ของคุณนั้น จะต้อง Online ตลอดเวลา ไม่อย่างนั้นแล้ว เครื่องคุณ กับตัว Emulator จะไม่สามารถติดต่อกันได้ แม้ว่าจะมีการตั้ง IP Address ไว้อย่างถูกต้องแล้วก็ตาม อันที่จริงแล้ว มันก็คือปัญหาที่เราต้องการแก้ไขในตอนแรกนั่นเองครับ...

การใช้ ICS กับ Loopback นี้ คุณก็จะมี Connection ที่ต่ออยู่ตลอดเวลา 1 อัน สำหรับให้ Emulator ใช้งาน โดยที่ไม่ต้องตั้งค่าอะไรเพิ่มเติมเลย และทั้งเครื่องของคุณ กับ Emulator ก็สามารถใช้งานอินเตอร์เน็ตได้ทันทีที่มี Connection ที่ต่อกับ ISP

นั่นก็เพราะว่า การใช้ ICS นั้น จะเป็นการตั้ง DHCP Server เพื่อจ่าย IP Address ขึ้นมาในเครื่องของคุณครับ ตัว Emulator ซึ่งก็ต่อกับเครื่องของคุณ ผ่านทาง Loopback อีกทีหนึ่ง ก็จะได้ IP Address โดยอัติโนมัติไปด้วยเลย และตัว Loopback ก็จะมี IP Address ตายตัว คือ 192.168.0.1 ครับ ส่วนที่ Emualtor สามารถออกเน็ตได้ด้วย เพราะว่า ICS จะทำตัวเป็น NAT Server ให้กับ Emulator ครับ (ก็คือการแชร์ Internet นั่นเอง)

ส่งท้าย

หวังว่า ทุกคนคงจะทำให้ Emulator ออกเน็ตกันได้ใน Vista อย่างถ้วนหน้ากันแล้วนะครับ และบทความนี้คงมีประโยชน์บ้าง ไม่มากก็น้อย ไว้โอกาสหน้า ผมจะหาเรื่องดีๆ มาเล่าให้ฟังอีกครับ

 

BINS » Blog Archive » Cennect internet with WM Emulator said:

Pingback from  BINS  » Blog Archive   » Cennect internet with WM Emulator

July 8, 2008 11:01 PM
 

Gunner said:

ตอนนี้ใช้ xp แล้วลองทำตามแล้วมันก็ติดในเรื่องของการ shared loopback โดยระบบไม่ยอมแชร์ให้ อยากได้ตัวอย่างที่เป็น xp เลย เพราะไม่เข้าใจว่าติดตรงไหนนะครับ อ๋อผมต่อเน็ตแบบผ่าน rounter นะครับมันควรจะต้องสร้างตัว connection ที่ออกเน็ตได้ในลักษณะ boardbrand หรือเปล่าครับ แล้วมันจะเป็นผลให้ผม set ไม่ผ่านรึเปล่าครับ

gunnermontana@hotmail.com

October 9, 2008 12:40 AM
(required)  
(optional)
(required)  
Add
คอแหลม
โฆษณาออนไลน์,
				โฆษณา,ออนไลน์,ลงโฆษณา,ประกาศ,online advertising,online
				,advertising,โปรโมทสินค้า,โปรโมทเว็บไซต์,promote website,
				seo,pay per click,ad per click,media,ค้นหาเว็บ,media,
				สื่อ