Archive for May, 2010

วิธีการเรียกใช้ External EXE file จาก Flash (Windows App เท่านั้น)

Wednesday, May 26th, 2010

วันนี้มีโจทย์มาว่าใน Flash (Windows App) ต้องทำ Link ให้สามารถเปิดสิ่งต่อไปนี้ได้
1. PowerPoint file (*.ppt)
2. E-Mail Client (mailto:)
3. Windows Live Messenger (exe file)
4. Skype (exe file)
5. Google Talk (exe file)

สองตัวแรกไม่มีปัญหา
- PowerPoint file ใช้ fscommand เปิด ppt file ที่อยู่ใน fscommand folder ได้ เพราะอยู่ใน sandbox อยู่แล้ว
- mailto นี่ตรงไปตรงมาทำ URL เป็น mailto:who@where.com ก็ได้เลย

ไอ้สามตัวหลังนี่แหละที่มีปัญหา ถ้าดูตามเอกสาร fscommand ของ Adobe จะบอกไว้ชัดเลยว่า exec ของ fscommand จะเรียกได้เฉพาะไฟล์ใน fscommand folder เท่านั้น อ้าว แล้วพวก exe ข้างนอกละจะเรียกได้ไง

ตอนแรกคิดแบบง่ายเข้าว่า ทำ proxy เองเป็น .bat เช่น googletalk_proxy.bat เขียนดังนี้

1
"C:\Program Files\Google\Google Talk\googletalk.exe"

แล้วใน Flash เรียกแบบนี้

1
fscommand("exec", "googletalk_proxy.bat");

แต่ชีวิตมันไม่ง่ายเหมือนการ์ตูนแบบนั้น ดูเหมือน Flash จะมีปัญหาการเรียก .bat บนตระกูล NT เช่น 2000/XP/Vista
วิธีการมันเลยต้องซับซ้อนอีกหน่อยดังข้างล่าง

Flash <-> Proxy.exe <-> Proxy.bat <-> Any.exe

คือต้องเพิ่ม exe อีกตัวนึงเพื่อเป็น Proxy ไปเรียก .bat ซึ่ง Mr.Tim Goss ได้ทำเอาไว้ให้แล้ว
โดยหลักการมันจะเป็น naming convention คือเรียก .bat ที่ชื่อเหมือนกับ .exe ให้เอง เช่นถ้าจะเรียก GoogleTalk เราอาจตั้งชื่อไฟล์แบบนี้

googletalk_proxy.exe
googletalk_proxy.bat

โดยทั้งสองไฟล์อยู่ใน fscommand folder
จากนั้นใน googletalk_proxy.bat จะเขียนดังนี้

1
"C:\Program Files\Google\Google Talk\googletalk.exe"

แล้วใน Flash จะเรียกแบบนี้

1
fscommand("exec", "googletalk_proxy.exe");

ผมทดสอบกับอะไรบ้าง
- Flash 9 AS3
- Windows XP SP3
- Admin role user

สรุปสิ่งที่ต้องทำมีอะไรบ้าง
1. Flash ต้อง publish เป็น exe เท่านั้น
2. ไฟล์ที่เกี่ยวข้องได้แก่ proxy.bat กับ proxy.exe ต้องอยู่ใน subfolder ชื่อ fscommand โดย folder นี้อยู่ระดับเดียวกันกับไฟล์ flashapp.exe ของเรา
3. การตั้งชื่อไฟล์ proxy.exe จะเป็น naming convention ให้ตรงกับ .bat เช่น googletalk_proxy.exe จะเรียกไฟล์ googletalk_proxy.bat ให้เอง

Remarks
1. ถ้าไม่ใช้ Flash เพรียวๆ สามารถใช้ Flash Wrapper เช่น Zinc ก็สามารถแบบข้างต้นได้
2. ดูเหมือนใน AIR 2.0 จะมีความสามารถเกี่ยวกับการเรียกไฟล์ที่ดีขึ้น แต่เนื่องจากยังเป็น Beta อยู่ และผมยังไม่มีโอกาสเอา Flash CS5 มาลองด้วย เลยใช้วิธีข้างต้นไปก่อน
3. งานนี้ถ้าไม่จำเป็นต้องใช้ Flash ผมว่าใช้ VB จะ VB6 หรือ VB.NET ก็ได้ ง่ายสุด :P

บริเวณที่ปิดการจราจรและห้ามเข้าพื้นที่เด็ดขาด

Tuesday, May 18th, 2010

บริเวณที่ปิดการจราจรและห้ามเข้าพื้นที่เด็ดขาด มีดังนี้
1 ถ.เพชรบุรี ตั้งแต่ แยกขึ้นทางด่วนเพชรบุรี ถึง สี่แยกราชเทวี
2 ถ.พญาไท ตั้งแต่ สี่แยกราชเทวี ถึง สี่แยกสามย่าน
3 ถ.วิทยุ ตั้งแต่ สี่แยกถ.วิทยุ ถึง แยกขึ้นทางด่วนเพชรบุรี
4. ถนนในพื้นที่ต้องห้าม ตามข้อ 1 – 3 จนถึงแนวพระราม 4
5. ถ.ราชปรารภ ถึง สี่แยกประตูน้ำ ถึง สี่แยกมักกะสัน
6. ถ.ศรีอยุธยา จากแยกหมอเหล็ง มุ่งหน้ าแยกศรีอยุธยา
7. ถ.สามย่าน จนถึง ปากซอยงามดูพลี
8. ตึกใบหยก2 ถึง แยกราชปรารภ ถึง แยกดินแดง
***[บริเวณนี้ห้ามเข้าเด็ดขาดทหารใช้กระสุน จริง]
9. แยกราชปรารถ ถึง ซ.รางน้ำ
***[บริเวณ นี้ห้ามเข้าเด็ดขาดทหารใช้กระสุนจริง]
10. วิภาฯขาเข้า หน้ารร.Miracle Grand ทหารตั้งด่าน ปิดเหลือ 1 เลน
11. แยกพระราม9 ถึง fortuneมุ่งหน้าไปยังโบสถ์แม่พระ สามเหลี่ยมดินแดง
12. อนุสาวรีย์ชัย หน้าซอยดุสิต (ราชวิถี 5) และราชวิถี 7
13. ทางด่วน ปิดทางขึ้น-ลงเพชรบุรี และทางขึ้น-ลง พระราม 4 ทั้ง 2 ฝั่ง
14. ย่านบ่อนไก่ *****พื้นที่ใช้กระสุนจริง
15. ทางด่วนใช้ได้ปกติ แต่ปิดทางลงบางส่วน เช่น ทางขึ้น-ลงดินแดง ทางขึ้น-ลงเพชรบุรี ทางขึ้น-ลงพระราม4
16. อนุสาวรีย์ถูกปิดแล้วครับ
17. ถนนพระราม 4 ปิด ระหว่างแยกสามย่าน-สามแยกคลองเตย
18. ปิดการจราจรลงด่วนพระราม4-1 ด่านพระราม4-2 ลงด่านดวงพิทักษ์ ถ้าลงด่านเพลินจิตซ้ายนานาใช้การได้
19. ถ.เพชรบุรี ขาเข้า ปิดขยายถึงแยก อโศก-เพชรฯ
20. ปิดถ.พระราม4 แยกสามยาน-สะพานเหลือง ต่อเนื่อง ถ.บรรทัดทอง แยกเจริญผล
21. เลี่ยงการจราจรสะพานข้ามแยกคลองเตย นปช.จอดรถปิดขวางถนน
22. นปช.เผายางรถยนต์กลางสะพานกรุงธนบุรี (ซังฮี้)ขาเข้า /หลีกเลี่ยงเส้นทางด่วน

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

วิธีการ limit จำนวน Items ในการดึง Feed แต่ละครั้งของ SMF

Monday, May 3rd, 2010

ต่อจากครั้งที่แล้ว วิธีการดึง Feed ของ SMF เฉพาะ New Topics อาจจะเคยเจอปัญหาว่า Feed Reader เก็บกระทู้ได้ไม่หมด

เนื่องจากว่าค่า Default ของ SMF จะคืน Feed ให้ครั้งละ 5 Items เท่านั้น ทำให้ถ้า Feed Reader เข้ามาดึงไม่บ่อยพอ ก็อาจเกิดการพลาดกระทู้ได้

วิธีแก้ก็แค่เพิ่ม parameter เข้าไปที่ Default Feed URL ดังข้างล่าง

http://www.simplemachines.org/community/index.php?type=rss;action=.xml;sa=news;limit=200

เพียงเท่านี้เราก็จะดึง Feed ของ SMF ครั้งละ 200 topics แล้ว

ป.ล. เท่าที่ลองมาหลายเว็บที่ใช้ SMF การเพิ่มตัวเลขให้มากกว่า 200 ไม่มีประโยชน์อะไรเลย เว็บส่วนใหญ่จะคืนค่าที่ประมาณ 140-160 items เอาไว้ผมจะลองตรวจสอบดูอีกทีว่าตัวเลขนี้มีการกำหนดไว้ตรงไหน