出版時(shí)間:2012-9 出版社:清華大學(xué)出版社 作者:米勒 頁數(shù):469 譯者:賀新征
Tag標(biāo)簽:無
內(nèi)容概要
《Windows 7高級(jí)編程》深入研究了微軟自Vista以來修改的各種元素,以及微軟根據(jù)用戶需求添加的新功能。作者John Paul Mueller具有豐富的實(shí)踐經(jīng)驗(yàn),他在書中深入講解了如何使用安全策略,同時(shí)還從不同的角度討論了Windows Firewall的管理。此外,他還以一種簡單直接的、過程化的方法講解了如何使用觸發(fā)器啟動(dòng)服務(wù),深入討論了如何利用應(yīng)用程序的用戶賬戶控制(UAC)功能,細(xì)致地分析了通過組策略對(duì)象來使用Windows Firewall的方法。
作者簡介
作者:(美國)米勒(John Paul Mueller) 譯者:賀新征 米勒(John Paul Mueller),是一位自由職業(yè)作家和科技文章編輯。他的寫作天賦是與生俱來的,時(shí)至今日,他已經(jīng)出版了87本專著,并發(fā)表了300多篇文章。從網(wǎng)絡(luò)技術(shù)到人工智能、從數(shù)據(jù)庫管理到自頂向下的程序設(shè)計(jì),涉獵范圍極廣。最近出版的一些書涉及了Windows命令行參考、VBA和Visio 2007的設(shè)計(jì)、C#的設(shè)計(jì)和開發(fā)手冊(cè)以及IronPython編程指導(dǎo)。他運(yùn)用自己嫻熟的科技文章撰寫經(jīng)驗(yàn)至少幫助過52位作者修訂他們的手稿。John還為DataBased Advisor和Coast Compute雜志提供科技文章編輯服務(wù)。他還積極為其他雜志撰寫文章,如DevSource、InformIT、SQL Server Professional、Vsual C++ Developer、Hard Core VisualBasic、asp.netPRO、Software Test & Performance 和Visual Basic Developer。當(dāng)John不使用計(jì)算機(jī)時(shí),他一定是在自己的工作室中。他是一位狂熱的木制工藝和蠟質(zhì)工藝愛好者。每個(gè)午后,他或是坐在車床旁,或是對(duì)他的書籍進(jìn)行加工。他同時(shí)還喜歡制作甘油肥皂和蠟燭,這些物件遲早會(huì)在禮籃中派上用場。
書籍目錄
第1部分 Windows 7簡介 第1章 WindOWS 7的改進(jìn)之處 1.1 WindOWS 7是否真的只是增強(qiáng)版的Vista 1.2 從開發(fā)人員的角度分析主要的改進(jìn) 1.2.1 了解用戶界面的改進(jìn)之處 1.2.2 考慮安全的改進(jìn)之處 1.2.3 開發(fā)可擴(kuò)展的應(yīng)用程序 1.3 考慮Wllldows xP模式 1.4 開發(fā)Windows PowerlsheU 2 1.5 將應(yīng)用程序移植到windows 7 第2章 開發(fā)Windows 7的策略 2.1 確定用戶WindOWS 7的舒適級(jí)別 2.1.1 明確使用需求 2.1.2 考慮培訓(xùn)需求 2.1.3 取悅于用戶 2.2 考慮是否移植 2.2.1 測(cè)試應(yīng)用程序中的問題 2.2.2 明確向Windows 7移植的優(yōu)勢(shì) 2.2.3 采用Windows XP模式 2.3 將應(yīng)用程序移植到wiIldtows 7 第3章 了解NET 4.0 3.1 了解為什么需要.NET 4.0 3.1.1 定義應(yīng)用程序的兼容性和部署 3.1.2 研究新核心功能及其改良之處 3.1.3 使用Managed Extensibility Framework 3.1.4 實(shí)現(xiàn)并行計(jì)算 3.1.5 考慮聯(lián)網(wǎng)問題 3.1.6 了解數(shù)據(jù)的改進(jìn)之處 3.2 獲取和安裝.NET 4.0 3.3 考慮Windows 7的擴(kuò)展功能 3.4 將應(yīng)用程序移植到Willdows 7 第Ⅱ部分 使用Windows7用戶界面 第4章 使用任務(wù)欄 4.1 簡單了解Windows 7的新任務(wù)欄 4.1.1 深入了解各項(xiàng)新功能 4.1.2 了解應(yīng)用程序設(shè)置的重要性 4.2 考慮任務(wù)欄的升級(jí) 4.2.1 任務(wù)欄是應(yīng)用程序的一種交互工具 4.2.2 任務(wù)欄新功能簡介 4.3 創(chuàng)建基本的任務(wù)欄應(yīng)用程序 4.3.1 獲取Microsoft.NET Framework的Windows API.Code Pack 4.3.2 創(chuàng)建解決方案 4.3.3 添加跳轉(zhuǎn)列表代碼 4.3.4 測(cè)試Code Pack結(jié)果 4.4 使用.NET 4.0的方法 4.4.1 建立解決方案 4.4.2 添加代碼 4.5 避免濫用任務(wù)欄 4.6 將應(yīng)用程序移植到Windows 7 第5章 高級(jí)任務(wù)欄技術(shù) 5.1 使用跳轉(zhuǎn)列表 5.1.1 添加通用類別 5.1.2 添加自定義類別 5.1.3 執(zhí)行自定義任務(wù) 5.1.4 使用跳轉(zhuǎn)列表導(dǎo)航到網(wǎng)頁 5.2 使用進(jìn)度條 5.2.1 配置進(jìn)度條應(yīng)用程序 5.2.2 管理進(jìn)度條 5.2.3 更改狀態(tài) 5.3 使用縮略圖工具欄 5.3.1 定義縮略圖工具欄應(yīng)用程序 5.3.2 繪制按鈕圖標(biāo) 5.3.3 創(chuàng)建工具欄和事件處理程序 5.4 使用覆蓋圖標(biāo) 5.5 組合使用任務(wù)欄的各種控件 5.6 創(chuàng)建完備的接口 5.6.1 應(yīng)用程序用跳轉(zhuǎn)列表和縮略圖工具欄交互 5.6.2 使用覆蓋圖標(biāo)和進(jìn)度條顯示狀態(tài) 5.7 將應(yīng)用程序移植到Windows 7 第6章 使用Ribbon界面 6.1 把Ribbori作為一個(gè)整體考慮 6.1.1 Ribbon到底是什么 6.1.2 了解Ribbon如何幫助初學(xué)用戶 6.1.3 在Windows中查看Ribbon 6.2 查看Office中的Ribbon 6.2.1 了解Office的文檔鏈接 6.2.2 考慮如何將Office的技術(shù) 擴(kuò)展到Windows 7 6.3 定義Windows 7中的Ribbon功能 6.3.1 介紹Windows 7中的Ribbon控件 6.3.2 了解控件屬性 6.4 將應(yīng)用程序移植到Windows 7 第7章 創(chuàng)建自定義Ribbon界面應(yīng)用程序 7.1 開始學(xué)習(xí)Ribbon 7.1.1 獲取Windows 7 SDK 7.1.2 獲取RibbonLib 7.1.3 配置應(yīng)用程序 7.1.4 定義一個(gè)Ribbon界面 7.1.5 創(chuàng)建應(yīng)用程序 7.2 WPF下使用Ribbon 7.2.1 為WPF獲取微軟的Ribbon 7.2.2 配置WPF應(yīng)用程序 7.2.3 定義WPF應(yīng)用程序的Ribbon界面 7.2.4 創(chuàng)建WPF應(yīng)用程序 7.3 將應(yīng)用程序移植到Windows 7 第8章 Aero Glass編程 8.1 設(shè)計(jì)Aero Glass需考慮的問題 8.2 使用Windows 7通用文件對(duì)話框 8.2.1 Common File Dialog控件 8.2.2 配置Common File Dialogs示例程序 8.2.3 定義File Open對(duì)話框 8.2.4 定義File Save對(duì)話框 8.3 使用Windows 7的Task對(duì)話框 8.3.1 有效地使用Task對(duì)話框 8.3.2 配置Task對(duì)話框示例程序 8.3.3 定義Task對(duì)話框 8.3.4 編寫自動(dòng)選擇代碼 8.4 提供擴(kuò)展語言服務(wù) 8.4.1 了解擴(kuò)展語言服務(wù)的角色 8.4.2 配置Extended Linguistic Services示例程序 8.4.3 向應(yīng)用程序添加擴(kuò)展語言服務(wù) 8.5 將應(yīng)用程序移植到Windows 7 第9章 使用多點(diǎn)觸摸用戶界面 9.1 多數(shù)公司對(duì)多點(diǎn)觸摸的需求分析 9.2 明確多點(diǎn)觸摸的用戶需求 9.3 向應(yīng)用程序添加多點(diǎn)觸摸功能 9.3.1 獲取多點(diǎn)觸摸平臺(tái)互操作庫 9.3.2 配置應(yīng)用程序 9.3.3 添加多點(diǎn)觸摸界面的功能 9.4 將應(yīng)用程序移植到Windows 7 第Ⅲ部分 開發(fā)安全的應(yīng)用程序 第10章 使用Windows 7的標(biāo)準(zhǔn)NT安全功能 10.1 了解基礎(chǔ)NT安全功能的變化 10.2 了解基礎(chǔ)NT安全 10.2.1 使用ACL 10.2.2 了解安全描述符 10.2.3 了解ACE 10.3 直接使用Windows NT安全 10.3.1 檢查用戶權(quán)限 10.3.2 修改用戶權(quán)限 10.3.3 審核用戶動(dòng)作 10.3.4 檢測(cè)文件和目錄的權(quán)限 10.3.5 修改文件和目錄的權(quán)限 10.3.6 審核文件和目錄 10.4 將應(yīng)用程序移植到Windows 7 第11章 了解用戶賬戶控制 11.1 了解UAC 11.1.1 分析UAC的需求 11.1.2 覆蓋UAC不是什么好主意 11.1.3 用較少權(quán)限開發(fā)應(yīng)用程序 11.2 使用UAC 11.3 為應(yīng)用程序添加UAC支持 11.3.1 創(chuàng)建清單文件 11.3.2 作為一個(gè)獨(dú)立進(jìn)程執(zhí)行 11.4 將應(yīng)用程序移植到Windows 7 第12章 開發(fā)增強(qiáng)安全性的應(yīng)用程序 12.1 現(xiàn)代應(yīng)用程序的安全需求 12.1.1 使用傳統(tǒng)的Windows NT安全 12.1.2 使用新的NT安全功能 12.1.3 使用區(qū)域 12.1.4 添加安全角色 12.1.5 添加權(quán)限 12.1.6 使用安全策略 12.2 定義應(yīng)用程序的安全需求 12.3 創(chuàng)建增強(qiáng)安全的應(yīng)用程序 12.3.1 開發(fā)區(qū)域 12.3.2 開發(fā)安全角色 12.3.3 開發(fā)權(quán)限 12.4 設(shè)計(jì)并實(shí)現(xiàn)安全策略 12.4.1 配置ClickOnce Intranet示例程序 12.4.2 調(diào)試和安裝ClickOnce Intranet示例程序 12.4.3 配置ClickOnce Custom示例程序 12.5 避免過多的安全機(jī)制 12.6 將應(yīng)用程序移植到Windows 7 第13章 使用內(nèi)置安全功能 13.1 使用防火墻 13.1.1 使用防火墻 13.1.2 檢驗(yàn)防火墻的狀態(tài) 13.1.3 修改設(shè)置 13.1.4 添加和刪除端口 13.1.5 添加應(yīng)用程序 13.1.6 使用GPO技術(shù) 13.2 使用自動(dòng)更新 13.2.1 配置Automatic Update示例程序 13.2.2 編寫設(shè)置代碼 13.2.3 編寫更新代碼 13.3 訪問AppLocker 13.3.1 在注冊(cè)表中查看AppLocker項(xiàng) 13.3.2 配置AppLocker Demo示例程序 13.3.3 讀取AppLocker項(xiàng) 13.3.4 創(chuàng)建AppLocker項(xiàng) 13.4 將應(yīng)用程序移植到Windows 7 第Ⅳ部分 Windows 7高級(jí)編程 第14章 后臺(tái)運(yùn)行 14.1 后臺(tái)運(yùn)行的優(yōu)勢(shì) 14.2 開發(fā)觸發(fā)器—啟動(dòng)服務(wù) 14.2.1 觸發(fā)服務(wù) 14.2.2 獲取ServiceNative.CS文件 14.2.3 配置TriggerStartService示例程序 14.2.4 編寫TriggerStartService示例程序代碼 14.2.5 測(cè)試TriggerStartService 14.3 提供電源管理 14.3.1 配置Power Management示例程序 14.3.2 獲取電源管理狀態(tài) 14.3.3 檢測(cè)顯示器的狀態(tài)變化 14.4 實(shí)現(xiàn)應(yīng)用程序的重新啟動(dòng)和恢復(fù) 14.4.1 配置Application Restart示例 14.4.2 編寫Application Restart示例程序代碼 14.5 使用網(wǎng)絡(luò)列表管理器 14.5.1 配置Network List Manager示例程序 14.5.2 編寫Network List Manager示例程序代碼 14.6 將應(yīng)用程序移植到Windows 7 第15章 使用Windows 7庫 15.1 使用已知文件夾 15.1.1 配置Known Folders示例程序 15.1.2 編寫Known Folders示例程序代碼 15.2 使用非文件系統(tǒng)容器 15.2.1 配置Non—Filesystem示例程序 15.2.2 編寫Non—Filesystem示例程序代碼 15.3 考慮用戶自定義集合 15.3.1 配置User—Defined Collection示例程序 15.3.2 列舉庫 15.3.3 添加庫 15.4 使用Explorer Browser控件 15.4.1 向Toolbox中添加 Explorer Browser 15.4.2 配置Explorer Browser 示例程序 15.4.3 編寫Explorer Browser 示例程序代碼 15.5 將應(yīng)用程序移植到 Windows 7 第16章 編寫基于Windows 7的64位應(yīng)用程序 16.1 分析64位應(yīng)用程序的優(yōu)點(diǎn) 16.2 了解64位應(yīng)用程序的相關(guān)需求 16.3 解決64位應(yīng)用程序的開發(fā)問題 16.3.1 處理編程問題 16.3.2 訪問Windows 7的注冊(cè)表 16.3.3 承載陳舊的DLL文件 16.4 編寫64位應(yīng)用程序 16.4.1 配置Large—Number示例程序 16.4.2 使用Configuration Manager 16.4.3 編寫Large—Number示例程序代碼 16.4.4 運(yùn)行Large—Number測(cè)試 16.5 將應(yīng)用程序移植到 Windows 7 第17章 在Windows 7系統(tǒng)下使用并行編程 17.1 分析并行處理機(jī)制的優(yōu)點(diǎn) 17.2 了解并行處理機(jī)制的一些需求 17.2.1 評(píng)估任務(wù)長度 17.2.2 評(píng)估任務(wù)類型 17.2.3 有關(guān)調(diào)試的問題 17.2.4 獲取所需求的資源 17.2.5 團(tuán)隊(duì)技能 17.3 編寫運(yùn)用并行處理技術(shù)的應(yīng)用程序 17.3.1 了解Parallel類 17.3.2 配置Parallel Process示例程序 17.3.3 編寫Parallel Process示例程序代碼 17.3.4 調(diào)試Parallel Process示例程序代碼 17.4 將應(yīng)用程序移植到Windows 7 第18章 使用傳感器和位置平臺(tái) 18.1 定義傳感器和位置設(shè)備 18.1.1 傳感器種類概述 18.1.2 軟件設(shè)備 18.2 獲取傳感器列表 18.2.1 配置Get Sensors示例程序 18.2.2 編寫Get Sensors代碼 18.3 獲取特定傳感器信息 18.3.1 了解Geosense for Windows的數(shù)據(jù) 18.3.2 配置Get Location示例程序 18.3.3 初始化傳感器 18.3.4 創(chuàng)建和處理傳感器事件 18.3.5 配置Geosense for Windows安全 18.3.6 查看位置傳感器的活動(dòng) 18.4 開發(fā)其他傳感器和位置設(shè)備 18.5 將應(yīng)用程序移植到Windows 7 第19章 有效使用Windows XP模式 19.1 分析Windows XP模式的問題 19.1.1 為更新進(jìn)行檢測(cè) 19.1.2 尋求第三方支持 19.1.3 使用Compatibility Troubleshooter 19.1.4 直接更改應(yīng)用程序兼容性設(shè)置 19.1.5 使用應(yīng)用程序兼容性工具包 19.1.6 調(diào)整用戶賬戶控制 19.2 在Windows XP模式下測(cè)試應(yīng)用程序 19.2.1 獲取并安裝Windows XP模式 19.2.2 配置Windows XP模式 19.2.3 在虛擬環(huán)境中使用應(yīng)用程序 19.3 Windows XP模式常見問題解決方法 19.3.1 資源權(quán)限問題 19.3.2 應(yīng)用程序拒絕使用資源 19.3.3 運(yùn)行緩慢的虛擬環(huán)境 19.4 將應(yīng)用程序移植到Windows 7 …… 第Ⅴ部分 在命令行方式下工作
章節(jié)摘錄
版權(quán)頁: 插圖: 有趣的是,數(shù)據(jù)結(jié)構(gòu)PortData也位于托管內(nèi)存中,所以代碼必須將其封送到本機(jī)內(nèi)存中,以便Win32 API可以訪問。與字符串不同,指針PortDataPtr指向的本機(jī)內(nèi)存結(jié)構(gòu)的大小不容易確定。因此,代碼調(diào)用MarshaI.AllocHGlobal()從全局堆中分配本機(jī)內(nèi)存結(jié)構(gòu)要求的內(nèi)存,但它必須告訴該方法要分配多少內(nèi)存。所以代碼調(diào)用Marshal.SizeOf()來確定SERVICE_TRIGGER_SPECIFIC_DATA_ITEM所需本機(jī)內(nèi)存的大小。但您決不可調(diào)用標(biāo)準(zhǔn)的sizeof()方法來確定數(shù)據(jù)結(jié)構(gòu)的大小,因?yàn)閟izeof()返回的是托管內(nèi)存的大小。 分配PortData需要的內(nèi)存僅是第一步。所分配內(nèi)存尚未包含任何數(shù)據(jù)。Marshal.StructureToPtr()方法將PortData中的數(shù)據(jù)轉(zhuǎn)移到本機(jī)內(nèi)存中,同時(shí)用PortDataPtr存放指向該內(nèi)存地址的指針。如果您不想刪除原先的內(nèi)容,就將第三個(gè)參數(shù)設(shè)置為false。 上述步驟為觸發(fā)器創(chuàng)建了一個(gè)數(shù)據(jù)元素,并將其封送到本機(jī)內(nèi)存中?,F(xiàn)在需要?jiǎng)?chuàng)建實(shí)際的觸發(fā)器。第一步是將FIREWALL_PORT_OPEN_GUID所描述的觸發(fā)器子類型封送到本機(jī)內(nèi)存中。因?yàn)镚uid是一個(gè)結(jié)構(gòu),所以采用與處理PortData相同的方法——調(diào)用Marshal.AllocHGlobal()為其分配內(nèi)存,然后調(diào)用Marshal.StructureToPtr()將數(shù)據(jù)移動(dòng)到該內(nèi)存中。 通過定義SERVICE_TRIGGER對(duì)象創(chuàng)建一個(gè)觸發(fā)器。此例中,代碼先創(chuàng)建StartTrigger然后填充數(shù)據(jù)。一個(gè)觸發(fā)器由4種元素組成:觸發(fā)器類型、觸發(fā)器子類型、動(dòng)作和數(shù)據(jù)。觸發(fā)器StartTrigger.dwTriggerType是一個(gè)簡單的枚舉值SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT。動(dòng)作StartTrigger.dwAction是一個(gè)簡單的枚舉值SERVICE_TRIGGER_ACTION_SERVICE_START。觸發(fā)器子類型StartTrigger.pTriggerSubtype是到FirewallPortOpen所指向的先前已封送的數(shù)據(jù)的指針。同樣,數(shù)據(jù)StartTrigger.pDataItems是到PortDataPtr所指向的先前已封送的數(shù)據(jù)的指針。該結(jié)構(gòu)還需使用StartTrigger.cDataItems元素告訴Win32 API在PortDataPtr中包含多少個(gè)數(shù)據(jù)項(xiàng)。 終止觸發(fā)器的創(chuàng)建過程和啟動(dòng)觸發(fā)器的創(chuàng)建過程一樣。至此,代碼有兩個(gè)托管觸發(fā)器。觸發(fā)器指向本機(jī)內(nèi)存,但數(shù)據(jù)本身、枚舉值和指針駐留在托管內(nèi)存中。代碼必須創(chuàng)建一個(gè)觸發(fā)器數(shù)組,并將其放到ServiceTriggersPtr中。數(shù)組通常是使用托管代碼創(chuàng)建的,但為本機(jī)代碼創(chuàng)建數(shù)組則與之不同。
編輯推薦
《Windows 7高級(jí)編程》深入研究了微軟自Vista以來修改的各種元素,以及微軟根據(jù)用戶需求添加的新功能。作者John Paul Mueller具有豐富的實(shí)踐經(jīng)驗(yàn),他在書中深入講解了如何使用安全策略,同時(shí)還從不同的角度討論了Windows Firewall的管理。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載