<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ![](https://box.kancloud.cn/2016-03-18_56eb67c868925.jpg) 在前面已經介紹了Silverlight的[Out of Browser模式與COM的基本操作](http://www.cnblogs.com/jv9/archive/2010/07/23/1783379.html)以及[與Office COM的交互](http://www.cnblogs.com/jv9/archive/2010/07/24/1784102.html)。這篇我們將介紹更多Silverlight Out of Brwoser的COM實例。 我們將繼續使用過去的SilverlightOOBDemo項目進行簡單擴展。 ![](https://box.kancloud.cn/2016-03-18_56eb67c95a9ed.jpg) 實例1:演示Silverlight與DOS的交互,對于Windows API熟悉的朋友應該了解,使用[WShell](http://msdn.microsoft.com/en-us/library/ahcz2kh6(VS.85).aspx)可以運行任何Dos命令。 ~~~ ?private?void?dosBtn_Click(object?sender,?RoutedEventArgs?e) ?{ ?????????????using?(dynamic?shell?=?AutomationFactory.CreateObject("WScript.Shell")) ?????????????{ ?????????????????//shell.Run(@"cmd?/k?dir?/w?/p"); ?????????????????shell.Run(@"cmd?/k?ping?www.cnblogs.com?-t"); ?????????????} } ~~~ ![](https://box.kancloud.cn/2016-03-18_56eb67c96b23d.jpg) 實例2:使用[WShell API](http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx)模擬用戶輸入實例。使用WShell的SendKeys可以模擬用戶輸入效果到應用程序中,并且可以模擬一些特殊鍵功能,例如,回車,Tab,Ctrl等按鍵。 ![](https://box.kancloud.cn/2016-03-18_56eb67c985548.jpg) 其中要實現模擬輸入代碼如下: ~~~ ?private?void?inputBtn_Click(object?sender,?RoutedEventArgs?e) ?{ ?????using?(dynamic?shell?=?AutomationFactory.CreateObject("WScript.Shell")) ?????{ ?????????shell.Run(@"c:/windows/notepad.exe"); ?????????shell.SendKeys("my?blog:{Enter}jv9.cnblogs.com"); ?????} ?} ~~~ ![](https://box.kancloud.cn/2016-03-18_56eb67c992e37.jpg) 實例3:Silverlight OOB應用讀取注冊表信息實例 ![](https://box.kancloud.cn/2016-03-18_56eb67c9a50cd.jpg) 使用Shell.Application的[RegRead方法](http://msdn.microsoft.com/en-us/library/x05fawxd(VS.85).aspx)可以讀取本地注冊表鍵值,例如,讀取“HKLM/Software/Microsoft/ASP.NET/RootVer”,.Net Framework的版本。 ~~~ ?private?void?regBtn_Click(object?sender,?RoutedEventArgs?e) ?{ ?????????????using?(dynamic?WShell?=?AutomationFactory.CreateObject("WScript.Shell")) ?????????????{ ?????????????????string?reg?=?WShell.RegRead(@"HKLM/Software/Microsoft/ASP.NET/RootVer"); ?????????????????MessageBox.Show(".Net?Framework?Root?Version:?"?+?reg); ?????????????} } ~~~ 讀取結果: ![](https://box.kancloud.cn/2016-03-18_56eb67c9b5a6b.jpg) 實例4:使用Shell.Application的[RegWrite方法](http://msdn.microsoft.com/en-us/library/yfdfhz1b(VS.85).aspx)可以對注冊表進行寫操作。這個實例將實現添加Silverlight Out of Browser應用到Windows啟動項。 ![](https://box.kancloud.cn/2016-03-18_56eb67ca1a6c4.jpg) ~~~ ??private?void?regWriteBtn_Click(object?sender,?RoutedEventArgs?e) ??{ ??????????????using?(dynamic?ShellApplication?=?AutomationFactory.CreateObject("Shell.Application")) ??????????????{ ??????????????????dynamic?commonPrograms?=?ShellApplication.NameSpace(11); ?????????????????string?allUsersPath?=?commonPrograms.Self.Path; ?????????????????dynamic?directory?=?ShellApplication.NameSpace(allUsersPath?+?@"/Programs"); ??????????????????dynamic?link?=?directory.ParseName(Deployment.Current.OutOfBrowserSettings.ShortName?+?".lnk"); ?????????????????string?OOBLink?=?link.Path; ?????????????????using?(dynamic?WShell?=?AutomationFactory.CreateObject("WScript.Shell")) ?????????????????{ ?????????????????????WShell.RegWrite(@"HKLM/Software/Microsoft/Windows/CurrentVersion/Run/" ??????????????????????????????????????????????????+?Deployment.Current.OutOfBrowserSettings.ShortName, ??????????????????????????????????????????????????OOBLink); ?????????????????????MessageBox.Show("請重啟你的機器,你的應用將被自動載入啟動列表."); ?????????????????} ????????????} ?} ~~~ 當運行以上代碼后,應用會將OOB應用快捷方式寫入注冊表HKLM/Software/Microsoft/Windows/CurrentVersion/Run/ 應用程序將在下次重啟后,自動啟動。 實例5:使用Windows 7 API實現鎖定應用到Windows 7任務欄 ![](https://box.kancloud.cn/2016-03-18_56eb67ca29112.jpg) 在Windows 7中使用Shell.Application類庫允許遍歷應用,檢查Verbs進行應用鎖定。 ~~~ ??private?void?pinBtn_Click(object?sender,?RoutedEventArgs?e) ??{ ??????????????using?(dynamic?ShellApplication?=?AutomationFactory.CreateObject("Shell.Application")) ??????????????{ ??????????????????dynamic?commonPrograms?=?ShellApplication.NameSpace(23); ??????????????????string?allUsersPath?=?commonPrograms.Self.Path; ?????????????????dynamic?directory?=?ShellApplication.NameSpace(allUsersPath?+?@"/Accessories"); ??????????????????dynamic?link?=?directory.ParseName("Calculator.lnk"); ?????????????????dynamic?verbs?=?link.Verbs(); ?????????????????for?(int?i?=?0;?i?<?verbs.Count();?i++) ?????????????????{ ?????????????????????dynamic?verb?=?verbs.Item(i); ?????????????????????if?(verb.Name.Replace(@"&",?string.Empty).ToLower()?==?"pin?to?taskbar") ?????????????????????{ ?????????????????????????verb.DoIt(); ?????????????????????} ?????????????????} ?????????????} ?} ~~~ 當執行以上代碼后,獲取計算器應用快捷方式,然后執行“Pin to Taskbar”后,將應用鎖定在Windows 7任務欄。 ![](https://box.kancloud.cn/2016-03-18_56eb67ca38de0.jpg) 實例6:Silverlight Out of Browser語音閱讀實例 使用Windows自帶的Speech API中的SAPI引擎SpVoice類可以實現語音閱讀功能。 ![](https://box.kancloud.cn/2016-03-18_56eb67ca498c5.jpg) ~~~ ?private?void?speechBtn_Click(object?sender,?RoutedEventArgs?e) ?{ ?????????????using?(dynamic?ISpeechVoice?=?AutomationFactory.CreateObject("SAPI.SpVoice")) ?????????????{ ?????????????????ISpeechVoice.Volume?=?100; ?????????????????ISpeechVoice.Speak("<rate?speed=/"0/"><pitch?middle=/"0/">Hello?everyone!?Welcome?to?my?blog,http://jv9.cnblogs.com"); ?????????????} ?} ~~~ 當運行以上代碼后,會聽到以上閱讀內容。 對于Silverlight Out of Browser的COM應用有一款開源項目COM Toolkit,該控件在OOB模式下可以對本地數據庫進行操作,[推薦大家參考學習](http://silverlightchina.net/html/works/2010/0808/1702.html)。 今天就寫到這里了,希望能對大家有所幫助。 [源代碼下載](http://www.silverlightchina.net/resource/code/SilverlightOOBDemo0808.rar) 歡迎大家加入"專注Silverlight" 技術討論群: 32679955(六群) 23413513(五群) 32679922(四群) 100844510(三群) 37891947(二群) 22308706(一群) ?
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看