2. Nội dung trìnhbày Cáclỗigâykhôngtươngthíchtrên Windows 7 Kiểmtratínhtươngthíchcủaphầnmềm Sửdụngbộcôngcụ Application Compatibility Toolkitđểsửalỗikhôngtươngthích Microsoft Confidential
3. Câuchuyệntươngthích Microsoft Confidential Ở trườnghọc, họcsinhViệtnamđượcdạydấuthậpphânlàdấuphẩy. Vídụ: Pi = 3,14159 Ở côngty, chúng ta lạiquendùngdấuthậpphânlàdấuchấm. Pi = 3.14159 Chuẩn ổ cắmđiệnViệtnamlà 2 lỗ. Thiếtbịđiệntử ở VN cónhiềuloạiphíchcắm như haichântròn, haichândẹt, bachân, bachânvuông, 2 dẹtmộttròn…. Ô tôtayláithuận<> nghịch Bướcrănghệmét <> hệ Anh
4. Tạisaocầnchuyểnđổilên Windows 7? Microsoft Confidential Windows XP đủtốtnhữngđãquácũ. Windows Vista khôngcònđượcbán. Windows 7 nhanh, ổnđịnh, thânthiệnvàyêucầuphầncứngnhư Windows Vista. Phầnmềmkhôngchạyđượctrên Windows 7 ► mấtđicơhộibánphầnmềmtrên HĐH thịnhhànhtrongvòng 5 nămnữa.
10. User Account Control : Over View Mặcđịnh logon vớiquyền standard user Tựđộngnângquyềnkhicầnthiết Ngăncảnmọisựtruycậptàinguyên “nhạycảm” khichưađượcphép Standard user khôngthể Càiđặt 1 sốứngdụng Thayđổithànhphầnhệthống Thayđổicácthông tin thiếtlậpmáy Quảntrịquyền
12. Giảithíchmứcđộcảnhbáotrong UAC High: Cảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthống Cảnhbáokhingườisửdụngthayđổithiếtlậpchomáy Medium: Mứcmặcđịnh Chỉcảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthống Khôngcảnhbáokhingườisửdụngthayđổithiếtlậpchomáy Low: Chỉcảnhbáokhicóứngdụngmuốncàiđặthoặcthayđổithông tin hệthốngnhưngkhônglàmmờmànhình Off: UAC off Khôngcảnhbáogìcả
13. User Account Control Levels Chạy notepad và save file vàothưmục C: Với Normal user thìbáokhôngcóquyềnvàkhôngchoghi file. Với Administrator thìghi file thànhcông.
15. Chuyểnhướngkhitruyxuất file, registry Trong Windows 7, ngườidùngbìnhthườngbịgiớihạntruyxuấttớimộtsốtệp, thưmụcvà registry key baogồm: Thưmục Windows, Program Files, thưmụcgốc C:br />HKEY_LOCAL_MACHINE Ứngdụngcũkhichạytrên Windows 7 khôngghivàothưmụchệthống, registry HKLM -> gâylỗi. Đâylàlỗirấtphổbiến. Phânbiệtgiữaứngdụng UAC và non UAC: UAC: User Account Control Ứngdụng UAC: có file manifest địnhnghĩa UAC. Đượcbiêndịchbằng Visual Studio 2008 Ứngdụng non UAC khôngcófile manifest, đượcbiêndịchVisual Studio phiênbảncũ…
28. Ảohóakhitruyxuất file & registry Phầnmềm non-UAC truyxuấttệpvà registry bịgiớihạnsẽbịđổihướng Truyxuất file chuyểnhướng (ảohóa) vàoVirual Store (C:sersobppDataocal irtualStore) Truyxuất registry ảohóavào HKCUlassesirtualStore File, registry sẽđượccánhânhóachotừng normal user chứkhôngdùngchung như trước. Dữliệusẽđượclưuvàochỗkhác Services ngoạilệvới UAC vàkhôngbịảohóa Chạyứngdụngbằng Administrator thìsẽkhôngbịảohóa Ảohóalàgiảipháptrong Windows 7 32 bit sẽkhôngđượchỗtrợtrong Windows 7 64 bit vàthếhệkếtiếp.
29. Trườnghợpkhôngảohóa Ứngdụngchạytrên Windows 7 64 bit. Ứngdụngcó UAC khitruyxuấtvàothưmục , registry hệthốngsẽbịchặn Ảohóatruyxuấtkhôngđượckíchhoạt, thaotácvớidữliệusẽđượckiểmtraquyềntheo NFTS hoặc registry ACLs ápdụngchotừngvùngtàinguyên Mặcđịnhcácứngdụngđượcbiêndịchbằng Visual Studio 2008 sẽđikèmvới file manifest
30. Ảo hóa truy xuất file với normal user Ứng dụng cũ Ứng dụng cho Windows 7 indowspp.ini User mode Kernel mode Luafv.sys serslt;user>ppDataocalirtualStoreindowspp.ini indowspp.ini Ntfs.sys Access Denied
31. Ảo hóa truy xuất registry với normal user Ứng dụng cũ Ứng dụng cho Windows 7 HKLMoftwarepp User mode Access Denied Kernel mode Ntoskrnl.exe HKCUoftwarelassesirtualStoreachineoftwarepp Registry
32. Xửlýlỗiảohóa Nhúng file manifest vớirequestedExecution- Levelphùhợp GiảmbớthạnchếquyềntruycậptrongAccces Control List (ACL) Ghidữliệutheo user hoặcvàcáckhuvựcchung. Sửdụng Standard User Analyzer hoặc Compatibility Administrator đểsửa. Demo…
34. High DPI Problem: giao diện xô lệch ở mức DPI cao Clipped text Layout issues and image size issues Pixilated bitmaps WinForms issues Blurry UI Mismatched font sizes
35. Hight DPI : Problem Các control phóng to thunhỏkhôngđồngđều. Sửdụngnhiều font chữkhácnhaukhôngđồngnhất Sửdụngđồhọa raster Ảohóa DPI trong Window 7 làm UI bịmờ.
37. Chỉnh DPI qua Display Control Panel DPI: Dot Per Inch Windows 7 co dãn DPI theo tỷ lệ phần trăm 100% = 96 DPI 125% = 120 DPI 150% = 144 DPI DPI càng cao, HĐH sẽ dùng nhiều dot để vẽ giao diện control hơn. Một số control có kích thước dot cố định không tự động co dãn sẽ làm giao diện bị xô lệch.
38. Giao diện khi đổi thuộc tính AutoScaleMode từ DPI sang None Microsoft Confidential DPI Scalling None DPI Scalling, chữ không tương đương với form nữa
40. Xử lý lỗi giao diên xô lệch khi thay đổi DPI Vớiứngdụng .NET Đặtthuộctính“AutoScaleMode” = “Font” or “DPI” Native Win32 applications Be DPI Aware – include DPI Aware manifest Scale all UI text, points and sizes using the DPI values returned by the GetDeviceCaps API
41. Hight DPI : best practice Độphângiảihiệuquảlàđộphângiảitốithiểumàứngdụngcầnđểcóthểhiểnthịđầyđủ Tínhtoánđộphângiảihiệuquả Vídụ : Mànhìnhhiểnthị 1200x900 với DPI = 146 thìđộphângiảihiệuquảlà 800x600. Tậndụngđồhọa vector thaycho raster. Độ phân giải hiệu quả = Độ phân giải vật lý / (DPI/96).
43. Nhận diện sai trình cài đặt Trình cài đặt trước Vista dùng quyền administrator Ghi, sửa vào thư mục Program File, registry HKEY_LOCAL_MACHINE Windows 7 chạy chương trình dùng quyền của normal user Khiến trình cài đặt thất bại ở một số tác vụ Windows 7 nhận biết trình cài đặt để nâng cấp quyền hạn cho phù hợp. Giải pháp: dùng thuật toán phỏng đoán nếu một file chạy là trình cài đặt. Tuy nhiên phỏng đoán có xác suất bị sai.Chỉ áp dụng với file chạy 32 bit không có file Manifest đi kèm. Nếu tên file có chứa “install”, “setup”, “update” xác suất cao sẽ là trình cài đặt. Ngoại lệ, ví dụ Stock_Update.exe không phải là trình cài đặt. Hoặc CaiDatKeToan.exe lại là trình cài đặt.
45. Giải pháp Thêm file manifest mô tả thông tin UAC: nhúng hoặc đi kèm theo trình cài đặt Sử dụng file manifest đi kèm dễ hơn vì không cần biên dịch lại trình cài đặt Named MyApp.Exe.manifest <requestedExecutionLevel level=“?”> asInvoker– quyền bằng trình kích hoạt, không đủ để cài đặt requireAdministrator– yêu cầu nâng quyền lên Administrator để cài đặt
46. Session 0 Isolation Microsoft Confidential Se Session Window station (WinSta0) Desktop (default desktop) User application or service
47. Thay đổi trong kiến trúc session của HĐH Trong Windows XP, ứngdụnggiaodiệnvà service cùngchạytrong session 0. Từ Vista trởđi, session 0 dànhriêngđểchạy services. Ứngdụnggiaodiệnngườidùngsẽchạytrên session 1, 2, 3… Vấnđềphátsinhvớikiếntrúcmới: Lậptrìnhvới API cũ, Windows message khôngvượt qua ranhgiớicủa session. Kernel objects đượcnằmriêngtrongtừngsession. Service khôngthểtươngtác, hiểnthị UI trên desktop. Lỗinàyítxảyravớiứngdụngphầnmềm ở Việtnam.
48. Hướngxửlý Gửi message (thôngđiệp) từ service đếnứngdụng GUI bằnghàmWTSSendMessage. ThựcchấthàmWTSSendMessagedùngđểhiểnthị dialog box từmột remote session (phiênđiềukhiểnmáytínhtừxa) Hoặc service chạyhàmCreateProcessAsUsertạoramột process đểchạyứngdụng GUI
49. User Interface Privilege Isolation- vênhquyềngiữa 2 tiếntrình Từ Vista, Microsoft đưara integrity level (mứchòađồng) Mặcđinhmộttiếntrìnhkhôngthểgửithôngđiệpđếntiếntrìnhkháccómứchòađồngcaohơn. CơchếnàygọilàUser Interface Privilege Isolation (UIPI) ~ phânbiệtđặcquyềngiaodiện. Thườngxảyravớinhữngchươngtrìnhviếtbằng C++.
50. Unikeyvà Internet Explorer UnikeyphiênbảntrướcđâykhôngthểgõtiếngViệtvào IE 7, 8. Khihạmức UAC thìlạigõđược. TìnhtrạngcủaUnikeyphiênbảncũ, gõtiếngViệtvào IE. IE chạy ở low integrity level Unikeydùngmột shared resource nêncó integrity level là medium KhiUnikey hook vào IE nhậnthôngđiệpbànphím do cơchế UIPI, IE khôngthểgửithôngđiệpđếnchochoUnikey. KếtquảUnikeykhôngchuyểnđổidấuchocáckýtự. GiảiphápcủaanhPhan Kim Long: Hạmức integrity level củashared resource trong Unikeyxuốngmức low bằngvớimứccủa IE. IE sẽgửiđượcthôngđiệpđếnUnikey. Microsoft Confidential
52. Version checking -Kiểmtrasaiphiênbản HĐH Windows 7 có version number làWindows NT 6.1 chứkhôngphảilà 7.x. Lỗixảyrakhiphầnmềmkiểmtra version của HĐH dùng so sánh = hoặc !=. Cáchđúnglàphải so sánh <= và >= Khôngnhấtthiếtkiểmtraversion, vớihàmđặcbiệtcóthểđặtlờigọitrongtry catch Microsoft Confidential
53. Version Checker : Solutions Khôngnên if (Environment.OSVersion.Version!=new Version(5, 1)) { MessageBox.Show("Windows XP required.", "Incompatible Operating System", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Nên if (Environment.OSVersion.Version <new Version(5, 1)) { MessageBox.Show("Windows XP or later required.", "Incompatible Operating System", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
56. Application Compatibility Toolkit ACT là gì ? Bộ công cụ hỗ trợ tương thích ứng dụng ACT dùng để làm gì ? ( Tại sao cần ?) Kiểm tra độ tương thích ứng dụng Cung cấp thông tin về vấn đề không tương thích Sửa và làm giảm nhẹ vấn đề tương thích Tôi có thể lấy về ở đâu ? Tải xuống miễn phí tại http://tiny.cc/JZzeC (http://www.microsoft.com/downloads/details.aspx?familyid=24da89e9-b581-47b0-b45e-492dd6da2971&displaylang=en)
57. Cáccôngcụchínhtrong ACT Internet Explorer Compatibity Test Tool: kiểmtratínhbảomật, tươngthíchcủaứngdụng web trêntrìnhduyệt IE7, IE8. Standard User Analyzer: chạythửứngdụng, bắtnhữnglệnhgọi API khôngtươngthíchvớiWindows 7, tạomảnhválỗikhôngtươngthích– shim. Compatibility Administrator: sửađổi chi tiếttừnglỗikhôngtươngthíchvàtạoramảnhvá shim. Application Compatibility Manager: tạo package đểtheodõilỗikhôngtươngthíchsauđógửilên server.
60. Application Compatibility Toolkit Thành phần chính của ACT Application Compatibility Manager Compatibility Administrator Standard User Analyzer IE Compatibility Test Tool Setup Analysis Tool
61. Application Compatibility Toolkit Data Collector Tạo gói cài đặt triển khai được trên nhiều máy Thu thập dữ liệu về lỗi không tương thích ứng dụng Ghi ra file log Service Upload dữ liệu vào DB MS SQL SERVER 2005
63. Application Compatibility Toolkit Test & Mitigate Test tool : SUA, IE Compatibility Test Tool, Setup Analyzer Tool Mitigatation Tool : Compatibility Administrator
64. Shim – Miếngvá Shim sử dụng các kỹ thuật được tích hợp sẵn như ảo hóa, sửa đổi ACL, …
65. Phát triển ứng dụng tương thích Xác định loại ứng dụng Standard User only Administrator only Mix Xây dựng theo mô hình Admin Broker Lưu trữ thông tin theo user ( per user ) Hiển thị theo chế độ DPI Tách biệt trình cập nhập (nếu có) Sử dụng trình cài đặt hỗ trợ Window 7
Notes de l'éditeur
Tất nhiên với mức mặc định
TrueType khác với OpenType ở điểm nào?OpenType được xây dựng từ TrueType và được thêm một số đặt điểm mới thông minh hơn. Tuy nhiên cả 2 loại font đề hỗ trợ hiển thị font ở các kích thước khác nhau rất tốt. Không giống như bitmap font chỉ cố định trông một kích thước, khi bị phóng to sẽ bị răng cưa giống nhu khi ta phóng to ảnh bitmap trong Window.
Độ phân giải hiệu quả là gì?Hãy giải thích thêm lên trang hoặc vào phần NotesVới ứng dụng cần hiển thị 1200x900 với DPI = 150% thì có thể tương đương với độ phân giải 800x600 với mức DPI = 100%. Nếu nhỏ hơn thì ứng dụng sẽ không thể hiển thị hết toàn bộ giao diện và bị lỗi
Services are an integral mechanism built into any Windows operating systems. Services are different from user applications because you can configure them to run from the time a system starts up until it shuts down, without requiring an active user to be present. Services on Windows are responsible for all kinds of background activity that do not involve the user, ranging from the Remote Procedure Call (RPC) service to the Network Location Awareness service. Some services may attempt to display user interface dialogs or communicate with user applications. Such services face compatibility problems with Windows 7. You may own a service that is trying to display a dialog box, but instead, displays only a flashing icon on the taskbar. To be specific, your service may experience one or more of the following symptoms. The service: 1. Is running, but it is not doing anything that it is supposed to do 2. Is running, but other processes cant communicate with it 3. Is trying to communicate with user applications through window messages, but the window messages are not reaching their destination 4. Displays a flashing icon on the taskbar