Q: Kernel ของ Windows Vista Service Pack 1 (SP1) และ Windows 7 เป็นตัวเดียวกันหรือไม่?
A: มีหลายไฟล์ที่แตกต่างกัน แต่โดยพื้นฐานแล้วใช้สถาปัตยกรรมเดียวกัน
Q: ReadbyBoost เปลี่ยนแปลงไปจาก Windows Vista หรือไม่?
A: ใน Windows 7 ความสามารถ ReadyBoost จะรองรับสื่อแบบ Flash ได้หลากหลายแบบมากขึ้น (เช่น USB key,
Secure Digital card และแบบติดตั้งภายใน) และแคชที่โตมากขึ้นถึง 4GB รวมถึงรองรับระบบไฟล์แบบ exFAT, FAT32 และ NTFS
Q: ที่บอกว่าแอปพลิเคชันใดๆ ที่รันบน Windows Vista ก็ควรจะรันบน Windows 7 ได้เช่นเดียว คำกล่าวนี้จะจริงกับแอปพลิเคชันใดๆ ที่รันบน Windows XP ด้วยหรือไม่? มันควรจะทำงานบน Windows 7 ด้วยใช่หรือไม่?
A: เนื่องจาก Windows Vista และ Windows 7 ใช้ design frameworks ที่คล้ายคลึงกัน จึงมีรากฐานที่ทำให้แอปพลิเคชันเข้ากันได้ (compatible) แต่สำหรับ Windows XP นั้นจะใช้ framework ที่ต่างออกไป ระดับของความเข้ากันของแอปพลิเคชันจึงต่างออกไป
Q: สามารถเขียนไฟล์ .iso โดยไม่ต้องใช้ซอฟต์แวร์ Burn เพิ่มเติมอีก ใช่หรือไม่?
A: ใช่แล้ว ให้ดับเบิลคลิกไฟล์ ISO แล้ว Windows 7 จะเปิดไดอะล็อกขนาดเล็กขึ้น ให้เลือกไดรฟ์ที่จะใช้เขียน เลือกว่าจะให้ตรวจสอบ (verify) ผลลัพธ์การเขียนด้วยหรือไม่ และสั่งเขียน (burn) หรือยกเลิก
Q: Microsoft ซัพพอร์ต Windows 7 ฉบับ RC หรือไม่?
A: ใช่แล้ว ทั้ง Beta และ RC ซัพพอร์ตผ่าน Windows 7 Forums ที่
http://social.technet.microsoft.com/Forums/en/category/w7itpro.
Q: จะมี Application Compatibility Toolkit สำหรับ Windows 7 แบบที่มีใน Windows Vista หรือไม่ ? ถ้ามี จะพร้อมให้ใช้ได้เมื่อใด?
A: มี เราได้วางแผนอัปเดต ACT (Application Compatibility Toolkit) นี้ในเดือน เมษายนนี้ เพื่อซัพพอร์ตต่อ Windows 7 pre-release ต่างๆ และแน่นอนว่าใน RTM จะมีเครื่องมือนี้ด้วย
Q: สิ่งใดบ้างที่จะได้รับการปรับปรุงในส่วนของการทดสอบว่าแอปพลิเคชันเข้ากันได้ (compatibility) และการย้าย (migration) ?
A: จะมี Application Compatibility Toolkit ที่ซัพพอร์ต Windows 7 ให้ใช้ได้ในกรอบเวลาของเดือนเมษายน 2552 นี้ ซึ่งฐานข้อมูลส่วนนี้จะถูกเพิ่มเติมอย่างสม่ำเสมอตลอดทุกระยะที่ออก Windows แต่ละครั้ง
Q: ทำไม Windows 7 จึงได้สตาร์ทได้เร็วกว่าเมื่อเทียบกับ Windows Vista?
A: ในการทำงานพัฒนาสมรรถนะสำหรับเรื่องของการสตาร์ทนี้ มีหัวข้อหลักที่ให้ความสนใจเป็นพิเศษในส่วนของ
• ประสิทธิภาพของโค้ดส่วนแกนหลักของ Windows (core Windows code)
• จะสตาร์ทเซอร์วิสเฉพาะที่จำเป็นเท่านั้น (demand-start services)
• วิธีการเตรียมพร้อมของไดรเวอร์ของอุปกรณ์เพื่อเริ่มทำงานได้ (initialized)
• การยอมให้ไดรเวอร์ของอุปกรณ์หลายตัวเริ่มต้นขึ้นพร้อมกัน (parallelization)
• การลดปริมาณการใช้หน่วยความจำและความต้องการต่อ CPU ตอนสตาร์ทและการรันระบบกราฟิกส์
Q: มีเครื่องมือใดที่จะใช้เฝ้าดูสมรรถนะที่อาจเกิดปัญหาขึ้นจากอุปกรณ์บางตัวหรือไม่ ที่ไม่จำเป็นจัดซื้อ จัดหาซอฟต์แวร์จากรายอื่นมาเพิ่มเองอีก?
A: Microsoft ได้ลงทุนจัดหาในส่วนที่มีชื่อว่า PerfTrack ซึ่งสร้างรายงานผลการเฝ้าติดตามสมรรถนะกว่า 400 รายการของ PC แบบอัตโนมัติ และใน Windows 7 ยังมีเครื่องมือแก้ไขปัญหาอย่างเช่น IE Performance และ Check for Performance Issues เพื่อช่วยให้ผู้ใช้สามารถตรวจสอบสมรรถนะของการทำงานได้ตลอดเวลา
Q: Windows เวอร์ชันอื่นๆ จะสามารถอ่าน BitLocker To Go โดยใช้ซอฟต์แวร์เพิ่มเติมได้หรือได้ ?
A: ได้ สามารถปลดล๊อคและอ่านไฟล์ BitLocker บน Windows XP และ Windows Vista ได้
วันพฤหัสบดีที่ 19 มีนาคม พ.ศ. 2552
วันอังคารที่ 17 มีนาคม พ.ศ. 2552
Windows 7: TIPS+FIXED เคล็ดลับซ่อนไฟล์ desktop.ini ที่มีกระจายไปทั่วใน Build 7057
ใน Build 7057 มีปัญหาเปิด Notepad แสดงผลไฟล์ desktop.ini ตอน Start ทุกครั้ง
ซึ่ง Fixed ได้โดยการลบไฟล์ desktop.ini ใน shell:startup กับ shell:common startup
ยังมีปัญหาที่ในตำแหน่งโฟลเดอร์บางแห่งยังคงมีไฟล์ desktop.ini กระจายอยู่ทั่วไปหมด
เราสามารถกำหนดให้ไฟล์ชื่อนี้ในตำแหน่งทั้งหลายถูกกำหนดซ่อนลงได้
โดยปิด UAC
และ รัน Command prompt แบบ Run as administrator
แล้วพิมพ์บน Command prompt ด้วยคำสั่ง DOS เป็น
c:
cd /
attrib +h +a +s desktop.ini /s
และกลับไปเปิดใช้ UAC ตามปกติ
Note: ทั้งนี้ใน Folder options ยังคงต้องการไม่แสดงผลไฟล์ซ่อนด้วย
Don't show hidden files ... กับ Hide protected operating files อยู่ด้วย
ซึ่ง Fixed ได้โดยการลบไฟล์ desktop.ini ใน shell:startup กับ shell:common startup
ยังมีปัญหาที่ในตำแหน่งโฟลเดอร์บางแห่งยังคงมีไฟล์ desktop.ini กระจายอยู่ทั่วไปหมด
เราสามารถกำหนดให้ไฟล์ชื่อนี้ในตำแหน่งทั้งหลายถูกกำหนดซ่อนลงได้
โดยปิด UAC
และ รัน Command prompt แบบ Run as administrator
แล้วพิมพ์บน Command prompt ด้วยคำสั่ง DOS เป็น
c:
cd /
attrib +h +a +s desktop.ini /s
และกลับไปเปิดใช้ UAC ตามปกติ
Note: ทั้งนี้ใน Folder options ยังคงต้องการไม่แสดงผลไฟล์ซ่อนด้วย
Don't show hidden files ... กับ Hide protected operating files อยู่ด้วย
Windows 7: TIPS เคล็ดลับ กำหนดสับเปลี่ยน (Shuffle) Desktop Wallpapers
ปกติการกำหนด Shuffle หรือสับเปลี่ยน Wallpapers ที่จะแสดงบนเดสก์ทอป
กระทำได้โดยตรงจากคลิกขวาเลือก Personalized ตามด้วย
ยังมีอีกวิธีคือ
เปิดโฟลเดอร์ภาพที่ต้องการขึ้น
คลิกเลือกไว้ตั้งแต่สองภาพขึ้นไป
แล้วคลิกขวาเลือก Set as Desktop wallpaper
เพียงเท่านี้ ก็จะเป็นการเลือกชุดภาพทั้งหมดที่มีในโฟลเดอร์นั้น
สำหรับนำมาแสดงแบบสับเปลี่ยนบนเดสก์ทอปแล้ว
Note: แต่ตัวเลือกช่วงเวลา ยังคงต้องเข้ากำหนดจากวิธีแรก
กระทำได้โดยตรงจากคลิกขวาเลือก Personalized ตามด้วย
- คลิก Desktop Background
- คลิก Browse เลือกโฟลเดอร์ใน Picture location
- คลิกเลือกภาพที่ต้องการ
- กำหนดช่วงเวลาที่จะให้แสดงภาพหนึ่งๆ ก่อนสับเปลี่ยนภาพใหม่ใน Change picture every: เช่น 20 miniutes
ยังมีอีกวิธีคือ
เปิดโฟลเดอร์ภาพที่ต้องการขึ้น
คลิกเลือกไว้ตั้งแต่สองภาพขึ้นไป
แล้วคลิกขวาเลือก Set as Desktop wallpaper
เพียงเท่านี้ ก็จะเป็นการเลือกชุดภาพทั้งหมดที่มีในโฟลเดอร์นั้น
สำหรับนำมาแสดงแบบสับเปลี่ยนบนเดสก์ทอปแล้ว
Note: แต่ตัวเลือกช่วงเวลา ยังคงต้องเข้ากำหนดจากวิธีแรก
Windows 7: TIPS เคล็ดลับ เปลี่ยน LOGON UI คืนแบบเดิม
จากบันทึกเมื่อวานที่ใช้แก้ไขเปลี่ยน LOGON UI ของ Windows 7 Build 7057
หากต้องการกลับคืนแบบเดิมตามต้นฉบับ ก็สามารถแก้ไขด้วย Registry ดังนี้
ให้บันทึกเป็นไฟล์นามสกุล .reg และคลิกขวาเพื่อ Merge
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background]
"OEMBackground"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"UseOEMBackground"=-
หากต้องการกลับคืนแบบเดิมตามต้นฉบับ ก็สามารถแก้ไขด้วย Registry ดังนี้
ให้บันทึกเป็นไฟล์นามสกุล .reg และคลิกขวาเพื่อ Merge
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background]
"OEMBackground"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"UseOEMBackground"=-
วันจันทร์ที่ 16 มีนาคม พ.ศ. 2552
Windows 7 Tips: เปลี่ยน Logon UI

ใน Windows 7 Build 7057 สามารถเปลี่ยน Logon UI เองได้ ไม่ต้องใช้ซอฟต์แวร์เพิ่มเติม
มีขั้นตอนดังนี้
1. เพิ่ม Registry OEMBackground ให้ใส่ข้อความถัดไปนี้ใน Notepad และบันทึกเป็นไฟล์นามสกุล .reg ตอน Save พิมพ์ชื่อพร้อมนามสกุลในเครื่องหมายคำพูดเช่น "OEMB.reg"
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background]
@="1"
"OEMBackground"=dword:00000001
คลิกด้วยปุ่มขวาบนไฟล์ .reg ที่เพิ่งสร้างนี้ แล้วเลือก Merge
2. สร้างโฟลเดอร์
\Info\backgrounds ใน C:\Windows\System32\oobe
3. ใส่ภาพโดยตั้งชื่อไว้เป็น backgroundDefault.jpg
เข้ามาในโฟลเดอร์ที่เพิ่งสร้างไว้นี้
เงื่อนไขของภาพนี้
1. ตั้งชื่อเป็น backgroundDefault.jpg
2. ความละเอียดภาพ 96 dpi
3. ขนาดตาม Resolution ของจอที่ใช้ เช่น
จอ 22 นิ้ว LCD ปกติจะเป็นที่ 1680x1050
จอ 17 นิ้ว LCD ปกติจะเป็นที่ 1280x1024
4. ขนาดภาพต้องไม่เกิน 256KB
4. หลังจากใส่ภาพเข้ามาเรียบร้อยแล้ว Reboot
ตอนนี้หน้าจอ Logon จะเปลี่ยนไปตามที่เราได้แก้ไขใหม่แล้ว
ข้อมูลเพิ่มเติมสำหรับ Resolution จอภาพ เป็นตามภาพนี้

วันอังคารที่ 10 มีนาคม พ.ศ. 2552
Visual LISP: Tips เคล็ดลับ แก้ไขความสูงของ Attributes พร้อมกันหลายตัว
การแก้ไขความสูงตัวอักษรใน Attributes สามารถดับเบิลคลิกเพื่อใช้ไดอะล็อก Enhanced Attribute Editor เพื่อแก้ไขคุณสมบัติและค่าต่างๆ ของ Attribute นั้นๆ ได้ แต่เป็นเพียงคราวละตัวเท่านั้น
ใน Tip นี้ขอเสนอวิธีการแก้ไข Attribute แบบให้เลือกชุดวัตถุ (Selection set) ซึ่งจะเป็นวัตถุชิ้นเดียวหรือหลายตัวก็ได้ และมีพรอมต์ให้กำหนดค่าความสูงใหม่
จากนั้นคำสั่งนี้จะแก้ไขความสูงใหม่ให้พร้อมกันในคราวเดียว
;;; Change Hieght of Attributes.
;;; Developed by S.Chatchawal, schatchawal@gmail.com
(defun c:attH (/ s obj tmp j atts L tag *error*)
(vl-load-com)
(defun *error* (msg)
(if (not
(member msg (list "Function cancelled" "quit / exit abort"))
)
(princ (strcat "ATTH Error: " msg))
)
(princ)
)
(if (setq s (ssget (list (cons 0 "INSERT") (cons 66 1))))
(progn
(if (not #attH)
(setq #attH 25.0)
)
(foreach L (list (strcat "\nNew Text Height : " (chr 60))
#attH
(chr 62)
(chr 32)
)
(princ L)
)
(if (setq tmp (getdist))
(setq #attH tmp)
)
(setq j -1)
(repeat (sslength s)
(setq obj (vlax-ename->vla-object (ssname s (setq j (1+ j)))))
(if
(safearray-value
(setq atts
(vlax-variant-value
(vla-getattributes obj)
)
)
)
(foreach tag (vlax-safearray->list atts)
(vla-put-height tag #attH)
)
(vla-update obj)
)
)
)
(princ "\nNo ATTRIBUTE object found!!!")
)
(princ)
)
ใน Tip นี้ขอเสนอวิธีการแก้ไข Attribute แบบให้เลือกชุดวัตถุ (Selection set) ซึ่งจะเป็นวัตถุชิ้นเดียวหรือหลายตัวก็ได้ และมีพรอมต์ให้กำหนดค่าความสูงใหม่
จากนั้นคำสั่งนี้จะแก้ไขความสูงใหม่ให้พร้อมกันในคราวเดียว
;;; Change Hieght of Attributes.
;;; Developed by S.Chatchawal, schatchawal@gmail.com
(defun c:attH (/ s obj tmp j atts L tag *error*)
(vl-load-com)
(defun *error* (msg)
(if (not
(member msg (list "Function cancelled" "quit / exit abort"))
)
(princ (strcat "ATTH Error: " msg))
)
(princ)
)
(if (setq s (ssget (list (cons 0 "INSERT") (cons 66 1))))
(progn
(if (not #attH)
(setq #attH 25.0)
)
(foreach L (list (strcat "\nNew Text Height : " (chr 60))
#attH
(chr 62)
(chr 32)
)
(princ L)
)
(if (setq tmp (getdist))
(setq #attH tmp)
)
(setq j -1)
(repeat (sslength s)
(setq obj (vlax-ename->vla-object (ssname s (setq j (1+ j)))))
(if
(safearray-value
(setq atts
(vlax-variant-value
(vla-getattributes obj)
)
)
)
(foreach tag (vlax-safearray->list atts)
(vla-put-height tag #attH)
)
(vla-update obj)
)
)
)
(princ "\nNo ATTRIBUTE object found!!!")
)
(princ)
)
วันเสาร์ที่ 7 มีนาคม พ.ศ. 2552
Visual LISP Tips เคล็ดลับ คำสั่งเขียนเส้นขั้นบันได Staircase
คำสั่ง Staircase ใช้สำหรับเขียนเส้นขั้นบันได (2D) โดยให้กำหนดจุดเริ่มต้นและจุดสิ้นสุด ตามด้วยจำนวนลูกขั้นที่ต้องการ โดยเป็นไฟล์ .LSP ตามโค้ดดังนี้
;;; Staircase 2D
;;; Deveoped by S.Chatchawal, schatchawal@gmail.com
(defun IsEven (int)
(zerop (rem int 2))
)
(defun 1u (u / d)
(setq d (sqrt (apply '+ (mapcar '* u u))))
(mapcar '/ u (list d d d))
)
(defun PointUD (pt u D)
(mapcar '+ pt (mapcar '* u (list D D D)))
)
(defun staircasedraw
(pt xdir w h nos / p0 j coords ydir *acaddoc* *model-space*)
(vl-load-com)
(setq
j 0
coords (reverse (cdr (reverse (trans pt 1 0))))
p0 coords
ydir (getvar "ucsydir")
)
(repeat (* 2 nos)
(setq j (1+ j))
(cond
((IsEven j) (setq p0 (PointUD p0 xdir w)))
(T (setq p0 (PointUD p0 ydir h)))
)
(setq
coords
(append coords p0)
)
)
(setq *acaddoc* (vla-get-activedocument
(vlax-get-Acad-Object)
)
*model-space*
(vla-get-modelspace
*acaddoc*
)
)
(vla-startundomark *acaddoc*)
(vlax-invoke
*model-space*
'AddLightweightPolyline
coords
)
(vla-endundomark *acaddoc*)
)
(vl-load-com)
(defun c:staircase (/ p q delta fuzz x msg tmp
pq p0 q0 delta L 1pq cosine
sine w h xdir *error*
)
(defun *error* (msg)
(if (not
(member msg (list "Function cancelled" "quit / exit abort"))
)
(princ (strcat "STAIRCASE Error: " msg))
)
(princ)
)
(initget 1)
(setq p (getpoint "\nSpecify start point: "))
(initget 33)
(setq q (getpoint p "\nSpecify end point: "))
(setq delta (mapcar '- q p)
fuzz (expt 0.1 (getvar "luprec"))
)
(cond
((vl-some '(lambda (x) (equal x 0.0 fuzz))
(reverse (cdr (reverse delta)))
)
(princ
"\nCannot draw staircase for 2 Horizontal or Vertical points!!!"
)
(exit)
)
(T
(if (not #staircase_nos)
(setq #staircase_nos 10)
)
(foreach msg (list "\nNumber of risers (or treads): <" #staircase_nos "> ")
(princ msg)
)
(if (setq tmp (getint))
(setq #staircase_nos tmp)
)
(setq pq (list p q)
pq (vl-sort pq '(lambda (x y) (< (cadr x) (cadr y))))
p0 (car pq)
q0 (cadr pq)
delta (mapcar '- q0 p0)
L (distance p0 q0)
1pq (1u delta)
cosine (abs (apply '+ (mapcar '* 1pq (list 1.0 0.0 0.0))))
sine (sqrt (- 1 (* cosine cosine)))
w (/ (* L cosine) #staircase_nos)
h (/ (* L sine) #staircase_nos)
)
(if (minusp (car (mapcar '- q0 p0)))
(setq xdir (mapcar '* (list -1.0 -1.0 -1.0) (getvar "ucsxdir")))
(setq xdir (getvar "ucsxdir"))
)
(staircasedraw p0 xdir w h #staircase_nos)
)
)
(princ)
)
;;; Staircase 2D
;;; Deveoped by S.Chatchawal, schatchawal@gmail.com
(defun IsEven (int)
(zerop (rem int 2))
)
(defun 1u (u / d)
(setq d (sqrt (apply '+ (mapcar '* u u))))
(mapcar '/ u (list d d d))
)
(defun PointUD (pt u D)
(mapcar '+ pt (mapcar '* u (list D D D)))
)
(defun staircasedraw
(pt xdir w h nos / p0 j coords ydir *acaddoc* *model-space*)
(vl-load-com)
(setq
j 0
coords (reverse (cdr (reverse (trans pt 1 0))))
p0 coords
ydir (getvar "ucsydir")
)
(repeat (* 2 nos)
(setq j (1+ j))
(cond
((IsEven j) (setq p0 (PointUD p0 xdir w)))
(T (setq p0 (PointUD p0 ydir h)))
)
(setq
coords
(append coords p0)
)
)
(setq *acaddoc* (vla-get-activedocument
(vlax-get-Acad-Object)
)
*model-space*
(vla-get-modelspace
*acaddoc*
)
)
(vla-startundomark *acaddoc*)
(vlax-invoke
*model-space*
'AddLightweightPolyline
coords
)
(vla-endundomark *acaddoc*)
)
(vl-load-com)
(defun c:staircase (/ p q delta fuzz x msg tmp
pq p0 q0 delta L 1pq cosine
sine w h xdir *error*
)
(defun *error* (msg)
(if (not
(member msg (list "Function cancelled" "quit / exit abort"))
)
(princ (strcat "STAIRCASE Error: " msg))
)
(princ)
)
(initget 1)
(setq p (getpoint "\nSpecify start point: "))
(initget 33)
(setq q (getpoint p "\nSpecify end point: "))
(setq delta (mapcar '- q p)
fuzz (expt 0.1 (getvar "luprec"))
)
(cond
((vl-some '(lambda (x) (equal x 0.0 fuzz))
(reverse (cdr (reverse delta)))
)
(princ
"\nCannot draw staircase for 2 Horizontal or Vertical points!!!"
)
(exit)
)
(T
(if (not #staircase_nos)
(setq #staircase_nos 10)
)
(foreach msg (list "\nNumber of risers (or treads): <" #staircase_nos "> ")
(princ msg)
)
(if (setq tmp (getint))
(setq #staircase_nos tmp)
)
(setq pq (list p q)
pq (vl-sort pq '(lambda (x y) (< (cadr x) (cadr y))))
p0 (car pq)
q0 (cadr pq)
delta (mapcar '- q0 p0)
L (distance p0 q0)
1pq (1u delta)
cosine (abs (apply '+ (mapcar '* 1pq (list 1.0 0.0 0.0))))
sine (sqrt (- 1 (* cosine cosine)))
w (/ (* L cosine) #staircase_nos)
h (/ (* L sine) #staircase_nos)
)
(if (minusp (car (mapcar '- q0 p0)))
(setq xdir (mapcar '* (list -1.0 -1.0 -1.0) (getvar "ucsxdir")))
(setq xdir (getvar "ucsxdir"))
)
(staircasedraw p0 xdir w h #staircase_nos)
)
)
(princ)
)
สมัครสมาชิก:
บทความ (Atom)