<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1645572413635364717</id><updated>2026-08-29T05:37:15.667-07:00</updated><category term="C#"/><category term="MS SQL"/><category term=".net"/><category term="Datatables"/><category term="正規表示式"/><category term="0x80070020"/><category term="Arduino"/><category term="CDC"/><category term="CentOS"/><category term="Chart"/><category term="Chrome"/><category term="CultureInfo"/><category term="Dapper"/><category term="ESP8266"/><category term="Excel"/><category term="FB"/><category term="Forvo"/><category term="Godaddy"/><category term="JQuery"/><category term="LOG"/><category term="Let’s Encrypt"/><category term="Linux"/><category term="MS Access"/><category term="MVC"/><category term="MapHttpRoute"/><category term="MapPageRoute"/><category term="Oracle"/><category term="Oracle VM VirtualBox"/><category term="PATINDEX"/><category term="PHP"/><category term="QR Code"/><category term="Regex"/><category term="Regualr Expression"/><category term="STUFF"/><category term="SmartASP.net"/><category term="TSC"/><category term="VBA"/><category term="VS2013"/><category term="Vue"/><category term="WeMos D1"/><category term="chm"/><category term="chmProcessor"/><category term="iis"/><category term="max_user_connections"/><category term="visualbox"/><category term="win-acme"/><category term="中文亂碼"/><category term="共用剪貼簿"/><category term="條碼機"/><category term="油猴"/><category term="泰國佛曆"/><category term="篡改猴"/><category term="自動播放政策"/><title type='text'>程式騎兵</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-1952365059445021501</id><published>2026-08-29T05:37:15.666-07:00</published><updated>2026-08-29T05:37:15.667-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chm"/><category scheme="http://www.blogger.com/atom/ns#" term="chmProcessor"/><title type='text'> HTML 說明檔案(CMH) 轉成 Web</title><content type='html'>&lt;p data-path-to-node=&quot;0&quot;&gt;目前辦公室的文件（如員工手冊、技術文件）多以 Word 或 PDF 格式存放。然而，對於生產線上的直接員工或現場作業人員而言，這類檔案在瀏覽與索引上並不直觀，加上多數現場員工並未配發專屬電腦，使得文件查閱與資訊傳遞變得相對不便。&lt;/p&gt;&lt;p data-path-to-node=&quot;1&quot;&gt;理想的文件瀏覽介面應類似傳統的 &lt;b data-index-in-node=&quot;16&quot; data-path-to-node=&quot;1&quot;&gt;CHM (Compiled HTML Help)&lt;/b&gt; 格式：&lt;b data-index-in-node=&quot;44&quot; data-path-to-node=&quot;1&quot;&gt;左側為層級分明的大標題目錄，右側為詳細內容&lt;/b&gt;，並以 Web 網頁形式在瀏覽器中共享，提供如網頁般熟悉且便捷的操作體驗。&lt;/p&gt;&lt;p data-path-to-node=&quot;2&quot;&gt;整體的轉換路徑為：&lt;b data-index-in-node=&quot;9&quot; data-path-to-node=&quot;2&quot;&gt;Word 檔案 → CHM 格式檔案 → HTML 網頁&lt;/b&gt;&lt;/p&gt;&lt;p data-path-to-node=&quot;3&quot;&gt;為了找出合適的轉換方案，實際測試了以下幾款工具：&lt;/p&gt;&lt;ul data-path-to-node=&quot;4&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,0,0&quot;&gt;&lt;a href=&quot;https://chmprocessor.sourceforge.net/&quot; target=&quot;_blank&quot;&gt;chmProcessor&lt;/a&gt;（首選推薦）：&lt;/b&gt; 操作簡單直覺，且為 Open Source 開源免費軟體。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,0&quot;&gt;&lt;a href=&quot;https://www.softany.com/wordtohelp/purchase.htm&quot; target=&quot;_blank&quot;&gt;Softany WordToHelp&lt;/a&gt;：&lt;/b&gt; 轉換功能可用，但為付費軟體（$249 USD）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,0&quot;&gt;&lt;a href=&quot;https://www.helpndoc.com/&quot; target=&quot;_blank&quot;&gt;HelpNDoc &lt;/a&gt;：&lt;/b&gt; 介面豐富，但未直接找到合適的 DOC 轉 HTML 功能，付費軟體（$120 USD）。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,3,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,0&quot;&gt;&lt;a href=&quot;https://sourceforge.net/projects/word2chm/&quot; target=&quot;_blank&quot;&gt;Word2chm&lt;/a&gt; ：&lt;/b&gt; 介面過於陽春、像未完成的工具，不推薦。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,4,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,4,0&quot;&gt;&lt;a href=&quot;https://www.helpwaregroup.com/products/far&quot; target=&quot;_blank&quot;&gt;FarHTML&amp;nbsp;&lt;/a&gt;&amp;nbsp;&amp;nbsp;：&lt;/b&gt; 設定與操作較為複雜，為付費軟體。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-path-to-node=&quot;5&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5&quot;&gt;常見問題 Q&amp;amp;A&lt;/b&gt;&lt;/p&gt;&lt;ul data-path-to-node=&quot;6&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;6,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;CHM 檔案如何開啟？&lt;/b&gt; Windows 作業系統已內建專屬關聯程式 &lt;code data-index-in-node=&quot;34&quot; data-path-to-node=&quot;6,0,0&quot;&gt;hh.exe&lt;/code&gt;，可直接用來自動開啟並閱讀 &lt;code data-index-in-node=&quot;54&quot; data-path-to-node=&quot;6,0,0&quot;&gt;.chm&lt;/code&gt; 檔案。&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;6,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;後續自動化更新？&amp;nbsp; &amp;nbsp;&lt;/b&gt;檢查目錄中的文件是否有更新，由&lt;span data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;使用者上傳Word檔後，系統自動更新為HTML格式的工具&lt;/span&gt;。&lt;span data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;工具推薦&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;&lt;a href=&quot;https://www.nirsoft.net/utils/folder_changes_view.html&quot; target=&quot;_blank&quot;&gt;WinFolderChangesView&lt;/a&gt;&amp;nbsp;，檔案更新後直接以command方式執行chmProcessor更新HTML。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgcHP89g883-6ZgHO3THnD3y89ZqCOWzn9UwQhAGHE6OFejnBumzrDkKw8_QPPXsEsodQqHazwDsghtr3pFTsLbPojIwDMHHIYIAfzMnnSfkhbpnn2e64uwF33yW10AZS0S3bEXOg3Bv3tU29wn77I6lOc7xg8IuFNTE18iI8bcRht46gTqvXa4LF_zwgI&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img data-original-height=&quot;810&quot; data-original-width=&quot;956&quot; height=&quot;542&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgcHP89g883-6ZgHO3THnD3y89ZqCOWzn9UwQhAGHE6OFejnBumzrDkKw8_QPPXsEsodQqHazwDsghtr3pFTsLbPojIwDMHHIYIAfzMnnSfkhbpnn2e64uwF33yW10AZS0S3bEXOg3Bv3tU29wn77I6lOc7xg8IuFNTE18iI8bcRht46gTqvXa4LF_zwgI=w640-h542&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;chmProcessor&amp;nbsp; &amp;nbsp;程式界面&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhUE0LyAe_Km8qCN975X0N0N0BmGudeNB8ZOF6qDa5TwQAhcIe5KDKsqSZcyQAu-9dmGH7GemxJqnZjTbkWQDzjvvAqeRO0Jf0Tk3MDnpqBOjIw9Zv_OJ45i-6wE93ZM_UJIwTmBPesD26tkE1D0xtdxnTwlHU3cLxqh49JmRBFoIKScviV2yNlVXPrcU8&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;chmProcessor   程式界面&quot; data-original-height=&quot;802&quot; data-original-width=&quot;955&quot; height=&quot;537&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhUE0LyAe_Km8qCN975X0N0N0BmGudeNB8ZOF6qDa5TwQAhcIe5KDKsqSZcyQAu-9dmGH7GemxJqnZjTbkWQDzjvvAqeRO0Jf0Tk3MDnpqBOjIw9Zv_OJ45i-6wE93ZM_UJIwTmBPesD26tkE1D0xtdxnTwlHU3cLxqh49JmRBFoIKScviV2yNlVXPrcU8=w640-h537&quot; title=&quot;chmProcessor   程式界面&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;chmProcessor&amp;nbsp; &amp;nbsp;程式界面&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhNTlWt7HG5BH9_kattcHlw72LXDS6x_hzDs28HkM3MrjclWNEVbjetPZMZ9XDk5WYr8zfPKCpW7yG4exImRi3FKZboih8njVL5p5jWhsJJziTChbK_aunnMq_CEoYo_TMkWI9y-bFvA4xfvQpBWbf7FYRhpY94lkOTnfLJTbhhXWBxhJHeGCoFLcJxI-U&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;chmProcessor   程式界面&quot; data-original-height=&quot;810&quot; data-original-width=&quot;952&quot; height=&quot;545&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhNTlWt7HG5BH9_kattcHlw72LXDS6x_hzDs28HkM3MrjclWNEVbjetPZMZ9XDk5WYr8zfPKCpW7yG4exImRi3FKZboih8njVL5p5jWhsJJziTChbK_aunnMq_CEoYo_TMkWI9y-bFvA4xfvQpBWbf7FYRhpY94lkOTnfLJTbhhXWBxhJHeGCoFLcJxI-U=w640-h545&quot; title=&quot;chmProcessor   程式界面&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;chmProcessor&amp;nbsp; &amp;nbsp;程式界面&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEizPevXHV6QstSn_jjeqp_3g5Xq7OlCpZtjiM1jBuWeRAlMW4dCjw5QT-xOCsGk2_pMHowdzRrwdpCE3IB1QSu6Hd3Tw9UoPkKheMa5eZ1xY9GzC1Iia6dZZVZs-e9Om5xsROwLKM0CBjTzGevMdB6Bga39O8ysQ8xnpvAoOD1WDUWCuwv-JAIhmWcaxq8&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img data-original-height=&quot;532&quot; data-original-width=&quot;1082&quot; height=&quot;314&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEizPevXHV6QstSn_jjeqp_3g5Xq7OlCpZtjiM1jBuWeRAlMW4dCjw5QT-xOCsGk2_pMHowdzRrwdpCE3IB1QSu6Hd3Tw9UoPkKheMa5eZ1xY9GzC1Iia6dZZVZs-e9Om5xsROwLKM0CBjTzGevMdB6Bga39O8ysQ8xnpvAoOD1WDUWCuwv-JAIhmWcaxq8=w640-h314&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;範例成品&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/1952365059445021501/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2026/08/html-cmh-web.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1952365059445021501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1952365059445021501'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2026/08/html-cmh-web.html' title=' HTML 說明檔案(CMH) 轉成 Web'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgcHP89g883-6ZgHO3THnD3y89ZqCOWzn9UwQhAGHE6OFejnBumzrDkKw8_QPPXsEsodQqHazwDsghtr3pFTsLbPojIwDMHHIYIAfzMnnSfkhbpnn2e64uwF33yW10AZS0S3bEXOg3Bv3tU29wn77I6lOc7xg8IuFNTE18iI8bcRht46gTqvXa4LF_zwgI=s72-w640-h542-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-1442451775067195618</id><published>2026-08-03T20:17:55.506-07:00</published><updated>2026-08-28T20:14:59.933-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="Forvo"/><category scheme="http://www.blogger.com/atom/ns#" term="油猴"/><category scheme="http://www.blogger.com/atom/ns#" term="篡改猴"/><category scheme="http://www.blogger.com/atom/ns#" term="自動播放政策"/><title type='text'>Chrome 網站自動播放聲音</title><content type='html'>&lt;p data-path-to-node=&quot;2&quot;&gt;最近初初再學習日文，在查詢 Forvo 網站的單字發音時，發現每個單字通常都有多位網友提供的音檔。如果需要一個一個手動點擊聆聽，實在缺乏效率且沒有耐心。&lt;/p&gt;&lt;p&gt;剛好試試網頁自動化的工具: &lt;a href=&quot;https://www.tampermonkey.net/&quot; target=&quot;_blank&quot;&gt;油猴 (篡改猴)&lt;/a&gt;&amp;nbsp;，寫完的 JS先在 Chrome 的 F12 Console 中測試，當時一切正常，音檔能夠一個接一個順利播放。但是從油猴執行時，腳本卻卡住不動。直到手動按下其中一個 Play 按鈕後才會開始啟動。&lt;/p&gt;&lt;p&gt;原來是近年 Chrome 為了防止網站載入時自動播放影音而影響使用者體驗，預設會阻擋未經手動互動的自動播放行為。&lt;/p&gt;&lt;p&gt;經過測試，從網路上找到最簡單的解法是直接將網站加入 Chrome 的音效白名單中。設定方式如下：&lt;/p&gt;&lt;ul data-path-to-node=&quot;6&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;6,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;功能路徑：&lt;/b&gt; 在網址列輸入 &lt;code data-index-in-node=&quot;13&quot; data-path-to-node=&quot;6,0,0&quot;&gt;chrome://settings/content/sound&lt;/code&gt;，即可將目標網站指定加入允許發出聲音的白名單中。&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh8HGSght0GDxacfJwsGmvEfj4U4iEedKi_3foVSw2ZpyDZ-BUiAn63D1wvJYdfpRG32GAA-f0D8ZqDEhQiKMRtGFJHybdEQWnK2wxE-wUBQtczEZJZ2v3pbpQmGHpruBGujw_FFV78bdJaWcbZR8ox-2KO0j5LksXRlmDiVBmgcXfdRDGwzZOTIiC6d_o&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;133&quot; data-original-width=&quot;670&quot; height=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh8HGSght0GDxacfJwsGmvEfj4U4iEedKi_3foVSw2ZpyDZ-BUiAn63D1wvJYdfpRG32GAA-f0D8ZqDEhQiKMRtGFJHybdEQWnK2wxE-wUBQtczEZJZ2v3pbpQmGHpruBGujw_FFV78bdJaWcbZR8ox-2KO0j5LksXRlmDiVBmgcXfdRDGwzZOTIiC6d_o=w640-h128&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&amp;nbsp; 參考資料&amp;nbsp; Chrome 自動播放政策&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://developer.chrome.com/blog/autoplay?hl=zh-tw&quot;&gt;https://developer.chrome.com/blog/autoplay?hl=zh-tw&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-&amp;nbsp; 自動撥發所有 forvo 音檔 / Gemini 產生 JS&lt;/div&gt;


&lt;pre class=&quot;prettyprint&quot;&gt;// ==UserScript==
// @name         forvoAllPlay
// @namespace    http://tampermonkey.net/
// @version      2026-08-04a
// @description  Click all &quot;Play&quot; in the page
// @author       E1 Taiwan
// @include      https://zh.forvo.com/word/*
// @icon         https://www.google.com/s2/favicons?sz=64&amp;amp;domain=forvo.com
// @grant        none
// ==/UserScript==

function anchorclick(node)
{
    var evt = document.createEvent(&quot;MouseEvents&quot;);
    evt.initMouseEvent(&quot;click&quot;, true, true, window,
                       0, 0, 0, 0, 0, false, false, false, false, 0, null);
    var allowDefault = node.dispatchEvent(evt);
}


(function() {
    &#39;use strict&#39;;

    // 詢問是否執行
    if (!confirm(&#39;是否要開始自動點擊播放按鈕？&#39;)) {
        console.log(&#39;使用者已取消執行。&#39;);
        return;
    }

    console.log(&#39;將在 3 秒後開始執行...2&#39;);

    // 等待網頁完全載入（含外部 JS 載入完成）
    window.addEventListener(&#39;load&#39;, () =&amp;gt; {
        // 延遲 1.5 秒執行，確保 Forvo 官方的 Play 函數與音訊組件已完全初始化
        setTimeout(async () =&amp;gt; {
            // 選擇頁面上所有發音按鈕
            const playButtons = document.querySelectorAll(&#39;.play&#39;);

            if (playButtons.length === 0) {
                console.log(&quot;[Forvo Player] 網頁載入完成，但未找到任何發音按鈕。&quot;);
                return;
            }

            console.log(`[Forvo Player] 偵測到 ${playButtons.length} 個發音，準備依序自動播放...`);
            console.log(&quot;[Forvo Player] 提示：如果語音沒聲音，請滑鼠點擊網頁任意處以解除瀏覽器自動播放限制。&quot;);

            // 依序播放每個發音
            for (let i = 0; i &amp;lt; playButtons.length; i++) {
                const btn = playButtons[i];

                // 擷取並清洗 onclick 內的 JavaScript
                let rawCode = btn.getAttribute(&#39;onclick&#39;);
                if (!rawCode) continue;

                let cleanCode = rawCode.replace(/return\s+false;?\s*$/, &#39;&#39;);

                console.log(`[Forvo Player] 正在播放 (${i + 1}/${playButtons.length})`);

                try {
                    // 執行 Forvo 原生的播放函數
                    new Function(cleanCode)();
                } catch (e) {
                    console.error(&quot;[Forvo Player] 播放執行失敗:&quot;, e);
                }

                // 每個發音間隔 4 秒，避免語音重疊（可根據需求調整此數值）
                await new Promise(resolve =&amp;gt; setTimeout(resolve, 3000));
            }

            console.log(&quot;[Forvo Player] 所有發音已播放完畢。&quot;);
        }, 1500);
    });
})();

&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/1442451775067195618/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2026/08/chrome.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1442451775067195618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1442451775067195618'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2026/08/chrome.html' title='Chrome 網站自動播放聲音'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEh8HGSght0GDxacfJwsGmvEfj4U4iEedKi_3foVSw2ZpyDZ-BUiAn63D1wvJYdfpRG32GAA-f0D8ZqDEhQiKMRtGFJHybdEQWnK2wxE-wUBQtczEZJZ2v3pbpQmGHpruBGujw_FFV78bdJaWcbZR8ox-2KO0j5LksXRlmDiVBmgcXfdRDGwzZOTIiC6d_o=s72-w640-h128-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-278631120577326568</id><published>2026-07-29T21:01:37.027-07:00</published><updated>2026-07-29T21:01:37.027-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iis"/><category scheme="http://www.blogger.com/atom/ns#" term="Let’s Encrypt"/><category scheme="http://www.blogger.com/atom/ns#" term="win-acme"/><title type='text'>內部 IIS 設定  SSL</title><content type='html'>&lt;p&gt;Chrome 及大部份的瀏覽器對於沒有安裝HTTPS 的網站，都會出現警告甚至想連進去都要半強迫連線。對於一些小網站或是沒有資安考量的資料分享網站的確是件麻煩事，重點是得花錢買SSL憑証，這種類似過路費的方式我覺得又是商人的手法。&lt;/p&gt;&lt;p&gt;平常公司內部，只開放內網連線網站也要安裝SSL倒是有點畫蛇添足，中小企業內部使用的網站通常會用IP直連，例: http://192.168.0.1/erp，或是直接用主機名稱連線 http://server/erp，這時連線內部網站就出現沒有 HTTPS的警告，只能找些簡單的方式，不花錢的方式設定SSL憑證。此次就試著設定IIS+HTTPS的步驟作個記錄。&lt;/p&gt;&lt;p&gt;&amp;nbsp;1 設定 DNS 新增網址&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgg7ijIFD6ckVEDtOpGttwH9GAxWFLLGieD-Ycn6yePLZH2nn5Pq-CMDWW2e4cnNcpreCpLhMjk36iURlms_Y-HpiR6kGokqjCzPsdXcpiyWgPxMlDyCZXP4qJWixaCHO5P2pUNPeyg3NKNu9ZXUsQF-MGnoJKEM6DSXpfxUberAUbnFr8j4GvjqQN0neA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;設定 DNS 新增網址&quot; data-original-height=&quot;203&quot; data-original-width=&quot;1226&quot; height=&quot;106&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgg7ijIFD6ckVEDtOpGttwH9GAxWFLLGieD-Ycn6yePLZH2nn5Pq-CMDWW2e4cnNcpreCpLhMjk36iURlms_Y-HpiR6kGokqjCzPsdXcpiyWgPxMlDyCZXP4qJWixaCHO5P2pUNPeyg3NKNu9ZXUsQF-MGnoJKEM6DSXpfxUberAUbnFr8j4GvjqQN0neA=w640-h106&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;2 設定 IIS HTTPS 網站&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjp7TcNX5QEW-B2ZxuiVWIMR8TvTum1rHFiMmtf3-S3OWiUch4Cgc2chWTWW5IZI5nJfaX7g8SkFDHjgOkknR3T5mwVhORH7wdtBqQvr6A5gepbK2iKmqBM9Mb1mOz3qtQhqRC5SNqWrewY1xlThTtyitjAxrqZzmvUaOI54sDcqw88d4iI-OfsDUFRTYo&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;745&quot; data-original-width=&quot;1418&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjp7TcNX5QEW-B2ZxuiVWIMR8TvTum1rHFiMmtf3-S3OWiUch4Cgc2chWTWW5IZI5nJfaX7g8SkFDHjgOkknR3T5mwVhORH7wdtBqQvr6A5gepbK2iKmqBM9Mb1mOz3qtQhqRC5SNqWrewY1xlThTtyitjAxrqZzmvUaOI54sDcqw88d4iI-OfsDUFRTYo=w640-h336&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgcnFc7snBQkXIDe8ubD6JByfLtWpcnJ2W9lXAs4HCUSk7bTDRtj00MmcS8K2kkHwM2kV6ZIlYHLbA8V-JzN-YUqtYwrLvs5ERBB3CG3Iwq9IBaVssE0QnhJ7G0JSSiTwegDWXdmKx9E_k6jXRomJBUhrvy_WVmEUReLq9kCazvpUtsmuhaNdkQW7mLHhA&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;422&quot; data-original-width=&quot;529&quot; height=&quot;510&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgcnFc7snBQkXIDe8ubD6JByfLtWpcnJ2W9lXAs4HCUSk7bTDRtj00MmcS8K2kkHwM2kV6ZIlYHLbA8V-JzN-YUqtYwrLvs5ERBB3CG3Iwq9IBaVssE0QnhJ7G0JSSiTwegDWXdmKx9E_k6jXRomJBUhrvy_WVmEUReLq9kCazvpUtsmuhaNdkQW7mLHhA=w640-h510&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;3 執行 win-acme 安裝 Let’s Encrypt 憑證&lt;/p&gt;&lt;p&gt;憑證有效日期是三個月，可以手動更新或是建立 schedule task 自動更新。&lt;/p&gt;&lt;p&gt;4 設定 router NAT RTF8207W-E&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj3USFMv-6bamtZ0cbhP5f--WvFujcg5wU9dYSqe39okbo9NsPNK8SsNKIFdCGXwF02_NcRmQIzVd16qbnNcPVdfd7OYfnlKeC0VxZmLfLLRRSLziSob4CtEB3W0gqGIyihmKVKTvWQHzkAn-TlEKamW8cSbbkjJDR7DiypZ7O9RcBHfnPovzz7f5gYxU0&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img data-original-height=&quot;660&quot; data-original-width=&quot;1056&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj3USFMv-6bamtZ0cbhP5f--WvFujcg5wU9dYSqe39okbo9NsPNK8SsNKIFdCGXwF02_NcRmQIzVd16qbnNcPVdfd7OYfnlKeC0VxZmLfLLRRSLziSob4CtEB3W0gqGIyihmKVKTvWQHzkAn-TlEKamW8cSbbkjJDR7DiypZ7O9RcBHfnPovzz7f5gYxU0=w640-h400&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;參考資料:&amp;nbsp; https://ithelp.ithome.com.tw/articles/10260641&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/278631120577326568/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2026/07/iis-ssl.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/278631120577326568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/278631120577326568'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2026/07/iis-ssl.html' title='內部 IIS 設定  SSL'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgg7ijIFD6ckVEDtOpGttwH9GAxWFLLGieD-Ycn6yePLZH2nn5Pq-CMDWW2e4cnNcpreCpLhMjk36iURlms_Y-HpiR6kGokqjCzPsdXcpiyWgPxMlDyCZXP4qJWixaCHO5P2pUNPeyg3NKNu9ZXUsQF-MGnoJKEM6DSXpfxUberAUbnFr8j4GvjqQN0neA=s72-w640-h106-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-5168988059164452071</id><published>2026-04-24T21:01:00.000-07:00</published><updated>2026-04-24T21:18:18.437-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Vue"/><title type='text'>Vue 引用錯誤: Missing ref owner context. ref cannot be used on hoisted vnodes.</title><content type='html'>&lt;b&gt;- 錯誤訊息&lt;/b&gt;&lt;div&gt;
[Vue warn]: Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;

&lt;b&gt;- 引用前端插件&lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Vue: v3&amp;nbsp;&lt;/div&gt;&lt;div&gt;chart.js: v4+&amp;nbsp;&lt;/div&gt;&lt;div&gt;vue-chartjs: v5+&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;
  
&lt;b&gt;- 說明&lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;此測試程式是 CDN 方式，以輕前端方式開發，所以手動引用 plug-in。初期猜測是程式中的語法造成此錯誤，但多方 try-error 加上網路上資料後仍不得解。
有中國網友 PO 文提到這個問題，但說明不太清楚還是卡在這個錯誤無法產生圖表。最後心血來潮將 vue-chartjs 引用 ESM 改為一般的 JS 檔案，順利解決。&amp;nbsp;&lt;/div&gt;

&lt;br /&gt;

&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb5TcAAJEl221lr7gyQtMgol_VWL96-6pSepNgH-j3kXEuBJXBfbyvDB-X2N1zBXM4pLHnpOpsKLJvmDZA9gGXoRtakPr2MIgC8aBzpDFNxzp4jsYFGEtUtABvuGbxLim4L4Wjv7F7__LvVStdfvU9wSG5PyANysuo1AfXV_cYdN-h1K7HtHMkLX6akwQ/s1600/2026-04-25%2011%2038%2006.png&quot; style=&quot;display: block; padding: 1em 0px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; data-original-height=&quot;361&quot; data-original-width=&quot;1052&quot; height=&quot;199&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb5TcAAJEl221lr7gyQtMgol_VWL96-6pSepNgH-j3kXEuBJXBfbyvDB-X2N1zBXM4pLHnpOpsKLJvmDZA9gGXoRtakPr2MIgC8aBzpDFNxzp4jsYFGEtUtABvuGbxLim4L4Wjv7F7__LvVStdfvU9wSG5PyANysuo1AfXV_cYdN-h1K7HtHMkLX6akwQ/w551-h199/2026-04-25%2011%2038%2006.png&quot; width=&quot;551&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;pre&gt;&lt;code&gt;

    &lt;script type=&quot;importmap&quot;&gt;
    {
      &quot;imports&quot;: {
        &quot;vue&quot;: &quot;https://unpkg.com/vue@3/dist/vue.esm-browser.js&quot;,         
        &quot;vuetify&quot;: &quot;https://cdn.jsdelivr.net/npm/vuetify@4/dist/vuetify.esm.js&quot;,         
        &quot;chart.js&quot;: &quot;https://cdn.jsdelivr.net/npm/chart.js@4.5.1/+esm&quot;,
        &quot;vue-chartjs&quot;: &quot;https://cdn.jsdelivr.net/npm/vue-chartjs@5.3.3/+esm&quot;  /* 錯誤, 不可直接引用 */
		&quot;vue-chartjs&quot;: &quot;https://cdn.jsdelivr.net/npm/vue-chartjs@5.3.3/dist/index.js&quot;  /* 正確引用 */ 
      }
    }
    &lt;/script&gt;

&lt;/code&gt;&lt;/pre&gt;  
  
&lt;br /&gt;

&lt;b&gt;- 參考資料&lt;/b&gt;&amp;nbsp;&lt;div&gt;解决vue-chartjs在ESM模块导入时出现的引用错误问题 
https://blog.gitcode.com/8eb95d906b3286a46aee671826e0d9f8.html&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/5168988059164452071/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2026/04/vue-missing-ref-owner-context-ref.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/5168988059164452071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/5168988059164452071'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2026/04/vue-missing-ref-owner-context-ref.html' title='Vue 引用錯誤: Missing ref owner context. ref cannot be used on hoisted vnodes.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb5TcAAJEl221lr7gyQtMgol_VWL96-6pSepNgH-j3kXEuBJXBfbyvDB-X2N1zBXM4pLHnpOpsKLJvmDZA9gGXoRtakPr2MIgC8aBzpDFNxzp4jsYFGEtUtABvuGbxLim4L4Wjv7F7__LvVStdfvU9wSG5PyANysuo1AfXV_cYdN-h1K7HtHMkLX6akwQ/s72-w551-h199-c/2026-04-25%2011%2038%2006.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-8433872061685058422</id><published>2020-05-13T00:37:00.001-07:00</published><updated>2020-05-13T00:37:31.344-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="ESP8266"/><category scheme="http://www.blogger.com/atom/ns#" term="WeMos D1"/><title type='text'>WeMos D1 測試 OUTPUT 錯誤</title><content type='html'>最近測試一塊WeMos D1 WiFi Arduino UNO 
開發板ESP8266，測試輸出時總是失敗，一下懷疑板子問題，一下懷疑電源問題。總算找到這個微不足道的解法：配合接腳號由 4 改為 D4。&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a class=&quot;hoverZoomLink&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHF2HrkdFGYghxyIbTs_zwgqwcKWrgHt-SrwaiBd79JMFDdHeYOQIxSYNAnmn_NoUj_afq8FKZv_irtJz_LErzxvB0w0UPESf0UwppOYbiCkjM-YYnz04vNKEk91RWFqz5ngUP09YZSM4/&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; class=&quot;hoverZoomLink&quot; data-original-height=&quot;870&quot; data-original-width=&quot;992&quot; height=&quot;351&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHF2HrkdFGYghxyIbTs_zwgqwcKWrgHt-SrwaiBd79JMFDdHeYOQIxSYNAnmn_NoUj_afq8FKZv_irtJz_LErzxvB0w0UPESf0UwppOYbiCkjM-YYnz04vNKEk91RWFqz5ngUP09YZSM4/w400-h351/202005132.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;hzImg&quot; style=&quot;background: -webkit-gradient(linear, 0% 0%, 100% 100%, from(rgb(255, 255, 255)), to(rgb(237, 237, 237)), color-stop(0.5, rgb(255, 255, 255))); border-radius: 3px; border: 1px solid rgb(227, 227, 227); box-shadow: rgba(0, 0, 0, 0.46) 3px 3px 6px; cursor: none; display: none; left: 0px; line-height: 0; margin: 0px; opacity: 1; overflow: hidden; padding: 2px; position: absolute; top: 0px; z-index: 2147483647;&quot;&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/8433872061685058422/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2020/05/wemos-d1-output.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/8433872061685058422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/8433872061685058422'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2020/05/wemos-d1-output.html' title='WeMos D1 測試 OUTPUT 錯誤'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHF2HrkdFGYghxyIbTs_zwgqwcKWrgHt-SrwaiBd79JMFDdHeYOQIxSYNAnmn_NoUj_afq8FKZv_irtJz_LErzxvB0w0UPESf0UwppOYbiCkjM-YYnz04vNKEk91RWFqz5ngUP09YZSM4/s72-w400-h351-c/202005132.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-7421957951652134941</id><published>2018-11-18T21:18:00.001-08:00</published><updated>2018-11-19T01:58:27.421-08:00</updated><title type='text'>VS2017 打包安裝檔問題–管理者權限</title><content type='html'>Win10 的安全性比較嚴謹，自行開發的程式安裝後執行會出現漏斗轉個幾下就停止了，這個況狀還不是出現程式無回應就是 Win10 直接就結束程式。最簡單的解決方式是在圖示上按右鍵選擇：&lt;strong&gt;以系統管理員身份執行&lt;/strong&gt;。  &lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdJrIBAelT_o52yjOjhSv6Z83NMbmkzt58veqjysjkWGopbwxcw7uPYVDe2BqOOH33QTk2whuUP1TiFUArJI_d1NAghZY0AKFIRENoDSLOYrlyPLmq_orlXr4t03PjKWX4xZC0QcaQaTA/s1600-h/image%255B4%255D&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;383&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVj5VFMGlrCsBqDA8kc_wIG-Ne9hQQ_-LmaSg9J7yPeO38KdT5TDaqz6686BCMwDrPUf83jzzqxvLqSpQ2jsHnOlodzmkYZSCCYGcPc11tFV9XUfJ-yAO6m8gB2GeyWIKTvWF6DanEdR0/?imgmax=800&quot; style=&quot;background-image: none; display: inline;&quot; title=&quot;image&quot; width=&quot;544&quot; /&gt;&lt;/a&gt;  &lt;br /&gt;
不過要請使用者每回都要選擇”以系統管理員身份執行”，的確是有些麻煩。經過網路找解法，試過 app.manifest 中設定 requireAdministrator，但程式仍直接被 Win10 關閉。最後找到直接寫 code 提示使用者需要系統管理員權限的題示畫面，但使用者只要按下 “是” 就可以執行。  &lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj47F7uPsoVwFAvSNxC4dqS5OU4sskolyOa9wmWC33cck_VODsD_KfgYwn5xiQVHltuxuvfCT_7aGS4rjlImB2HPLF0e1NrO-jsftCI8sFnGhB2YDuKyF_BjiJnt2NvXJ551F350IvHLq0/s1600-h/image%255B10%255D&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;343&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd9QyYAiVSDNSYbH8K_VQzY7YXYye93jkm1yVNqbTuh_j0nNzG58xt6mFFh2cKD0lTH1rkn3ZnWiIO8fN5Kv_AA-qTKUk2C8hJHQVWJ8YQndLHTQguyj8x-yLSA8zOCyKOVcyg8kYE6xI/?imgmax=800&quot; style=&quot;background-image: none; display: inline;&quot; title=&quot;image&quot; width=&quot;508&quot; /&gt;&lt;/a&gt;  &lt;br /&gt;
&lt;br /&gt;
以下 sample code 來源: https://dotblogs.com.tw/alexwang/2016/09/21/234628  &lt;br /&gt;
&lt;pre&gt;
&lt;code class=&quot;language-cs&quot;&gt; [STAThread]
        static void Main()
        {
            var wi = WindowsIdentity.GetCurrent();
            var wp = new WindowsPrincipal(wi);

            if (!wp.IsInRole(WindowsBuiltInRole.Administrator))
            {
                var processInfo = new ProcessStartInfo();
                // The following properties run the new process as administrator
                processInfo.UseShellExecute = true;
                processInfo.FileName = Application.ExecutablePath;
                processInfo.Verb = &quot;runas&quot;;

                // Start the new process
                try
                {
                    Process.Start(processInfo);
                }
                catch (Exception ex)
                {
                    // The user did not allow the application to run as administrator
                    MessageBox.Show(&quot;Sorry, this application must be run as Administrator.\n&quot; + ex.Message);
                }

            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form2());
            }
        }&lt;/code&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/7421957951652134941/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2018/11/vs2017.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/7421957951652134941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/7421957951652134941'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2018/11/vs2017.html' title='VS2017 打包安裝檔問題–管理者權限'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVj5VFMGlrCsBqDA8kc_wIG-Ne9hQQ_-LmaSg9J7yPeO38KdT5TDaqz6686BCMwDrPUf83jzzqxvLqSpQ2jsHnOlodzmkYZSCCYGcPc11tFV9XUfJ-yAO6m8gB2GeyWIKTvWF6DanEdR0/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-7972707860351235695</id><published>2018-08-14T08:57:00.001-07:00</published><updated>2018-08-14T08:57:40.711-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><title type='text'>C# 小撇步</title><content type='html'>&lt;p&gt;C# 6.0 dictionary 初始化的新寫法 &lt;/p&gt;  &lt;pre&gt;&lt;code&gt;var dict = new Dictionary&amp;lt;string, int&amp;gt;
{
    [&amp;quot;one&amp;quot;] = 1,
    [&amp;quot;two&amp;quot;] = 2,
    [&amp;quot;three&amp;quot;] = 3
};&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/7972707860351235695/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2018/08/c.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/7972707860351235695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/7972707860351235695'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2018/08/c.html' title='C# 小撇步'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-2620742958159963737</id><published>2018-07-31T21:42:00.001-07:00</published><updated>2018-07-31T21:42:58.863-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".net"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="MapHttpRoute"/><category scheme="http://www.blogger.com/atom/ns#" term="MapPageRoute"/><title type='text'>.NET MapHttpRoute 與 MapPageRoute</title><content type='html'>&lt;p&gt;需求: URL 輸入 &lt;a href=&quot;http://xxxx/yyy&quot;&gt;http://xxxx/yyy&lt;/a&gt; 轉成 &lt;a href=&quot;http://xxxx/yyy.html&quot;&gt;http://xxxx/yyy.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;最近趕流行，用 vue 寫了一個 SAP(Single application page)，html網頁在 MVC 的架構下可成功執行，但我就是想讓使用者操作上更方便，只要輸入網址 route 就直接跳轉到此 html 頁面。如果照原本 MapHttpRoute的方式會造成 .NET 出現找不到 Controller 的問題。最後發現不用 MapHttpRoute 去解此問題，使用MapPageRoute才是正解。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;            // Web API routes
            config.Routes.MapHttpRoute(
                name: &amp;quot;DefaultApi&amp;quot;,
                routeTemplate: &amp;quot;api/{controller}/{id}&amp;quot;,
                defaults: new { id = RouteParameter.Optional }
            );
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;
  &lt;br /&gt;以下增加於 Global.asax.cs&amp;#160;&amp;#160; &lt;br /&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    public class Global : HttpApplication
    {
        void Application_Start(object sender, EventArgs e)
        {
            // Code that runs on application startup
            GlobalConfiguration.Configure(WebApiConfig.Register);
            // 新增加以下 route 
            RegisterRoutes(RouteTable.Routes);
        }
        void RegisterRoutes(RouteCollection routes)
        {
            routes.MapPageRoute(&amp;quot;&amp;quot;,
                        &amp;quot;yyy&amp;quot;, &amp;quot;~/yyy.html&amp;quot;);
        }
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;br /&gt;Web.Config 加上對應的 extension

&lt;pre&gt;&lt;code&gt;&amp;lt;compilation debug=&amp;quot;true&amp;quot; targetFramework=&amp;quot;4.5.2&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;buildProviders &amp;gt;&lt;br /&gt;  &amp;lt;add extension=&amp;quot;.html&amp;quot; type=&amp;quot;System.Web.Compilation.PageBuildProvider&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;add extension=&amp;quot;.htm&amp;quot; type=&amp;quot;System.Web.Compilation.PageBuildProvider&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/buildProviders &amp;gt;&lt;br /&gt;&amp;lt;/compilation&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/2620742958159963737/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2018/07/net-maphttproute-mappageroute.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/2620742958159963737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/2620742958159963737'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2018/07/net-maphttproute-mappageroute.html' title='.NET MapHttpRoute 與 MapPageRoute'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-9046480832937741536</id><published>2018-05-10T00:37:00.001-07:00</published><updated>2018-05-10T01:16:15.916-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CultureInfo"/><category scheme="http://www.blogger.com/atom/ns#" term="泰國佛曆"/><title type='text'>泰國佛曆 System.Globalization.CultureInfo</title><content type='html'>&lt;p&gt;手上有個泰國的生產系統小案子，    &lt;br /&gt;雖說是個小案子但也算是跨國專案，     &lt;br /&gt;我遇到除了語言不同之外的電腦系統文化差異，     &lt;br /&gt;平常我們使用電腦的日期格式一般主要為2018/5/10，     &lt;br /&gt;美國系統的國家則是 5/10/2018，也就是 MM/dd/yyyy。     &lt;br /&gt;但泰國的使用曆別是一個本人未曾耳聞的佛曆，     &lt;br /&gt;就是釋迦牟尼佛滅度（涅槃）當年度為計算基準，     &lt;br /&gt;西元2018年就是泰曆/佛曆2561年，年度不同就算了還有四年一次閏年。     &lt;br /&gt;真要弄起來那就頭疼了。&lt;/p&gt;  &lt;p&gt;不過在網路上找到一個小解法，    &lt;br /&gt;執行的程式強制指定CultureInfo，     &lt;br /&gt;為了這個設定我可是弄到凌晨三時多，真是工程師的悲哀。     &lt;br /&gt;以下為其語法，分享給作泰國專案的網友們。     &lt;br /&gt;&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;string theCultureString = “zh-TW”; // 台灣南波萬&lt;br /&gt;System.Globalization.CultureInfo ci = new CultureInfo(theCultureString);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;
  &lt;br /&gt;加碼再作個記錄，此專案使用到一個強大元件：&lt;a href=&quot;https://www.grapecity.com/en/spread&quot; target=&quot;_blank&quot;&gt;GrapeCity Spread&lt;/a&gt;。 

  &lt;br /&gt;雖然事前設定CurrentThread的CultureInfo， 

  &lt;br /&gt;但日期資料在輸入時仍有被我佛慈悲的佛曆帶著走， 

  &lt;br /&gt;還是得強迫在 cell 設定CultureInfo處理日期。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// 強制使用台灣 Culture, 避免泰國佛曆造成衝突 &lt;br /&gt;string theCultureString = &amp;quot;zh-TW&amp;quot; 
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(theCultureString); datecell.SetCurrentCulture(ci);
&lt;/code&gt;&lt;/pre&gt;

&lt;p align=&quot;center&quot;&gt;&lt;/p&gt;

&lt;p align=&quot;center&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMj7gonkufKtEw1jxUtujZEawJTrivonQURlqntXDpn6is5YY4QXDTOhTd7MCuWSpNawy3cy5RDPcptvx3ufBuoJVnAuP1FtFfKouLt9wDbGziUiTMcAIAAjFlrPeRCUW9V3cb-ZZg0D8/s1600-h/image%255B3%255D&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;display: inline; background-image: none;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_HjD91BpLiO3Yt_BwwDxp4dSZdOSyHZxnUlAN_v-WYyKqsNSAlNIjf3gLFfYhkdRXHtegxI7roOXBpeeUVlJGoY-kPaEjz7x4LZ9zNIgOSTAvZ-X402BniOGePz3BYtFCf2oqASOWqaI/?imgmax=800&quot; width=&quot;391&quot; height=&quot;484&quot; /&gt;&lt;/a&gt;

  &lt;br /&gt;佛曆設定方式&lt;/p&gt;

&lt;p&gt;資料來源: 
  &lt;br /&gt;&lt;a title=&quot;https://stackoverflow.com/questions/468791/is-there-a-way-of-setting-culture-for-a-whole-application-all-current-threads-a&quot; href=&quot;https://stackoverflow.com/questions/468791/is-there-a-way-of-setting-culture-for-a-whole-application-all-current-threads-a&quot;&gt;https://stackoverflow.com/questions/468791/is-there-a-way-of-setting-culture-for-a-whole-application-all-current-threads-a&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/9046480832937741536/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2018/05/systemglobalizationcultureinfo.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/9046480832937741536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/9046480832937741536'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2018/05/systemglobalizationcultureinfo.html' title='泰國佛曆 System.Globalization.CultureInfo'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_HjD91BpLiO3Yt_BwwDxp4dSZdOSyHZxnUlAN_v-WYyKqsNSAlNIjf3gLFfYhkdRXHtegxI7roOXBpeeUVlJGoY-kPaEjz7x4LZ9zNIgOSTAvZ-X402BniOGePz3BYtFCf2oqASOWqaI/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-5459385967711138752</id><published>2018-04-21T08:38:00.001-07:00</published><updated>2018-04-21T08:38:31.075-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CDC"/><category scheme="http://www.blogger.com/atom/ns#" term="LOG"/><category scheme="http://www.blogger.com/atom/ns#" term="MS SQL"/><title type='text'>MSSQL CDC (Change Data Capture) 更新記錄</title><content type='html'>&lt;p&gt;開發系統時，使用者常常會問可以知道資料是被那個員工更新的，更新什麼內容嗎？通常我都會回答系統會記錄Log時間，資料異動者都查詢的到，但是異動那一個欄位就沒辦法了，實在也不想為這個很少使用的功能再大費周張去寫程式作欄位比較再存到log去。&lt;/p&gt;  &lt;p&gt;今天碰巧查個MSSQL的資料，才發現MSSQL 2008 就有類似的功能了，還不用寫程式作些設定就可以達到這個功能，以下就是這個CDC (Change Data Capture) 的簡單實測記錄。&lt;/p&gt;  &lt;p&gt;&lt;i&gt;-- CDC = Change Data Capture&lt;/i&gt;    &lt;br /&gt;&lt;i&gt;-- 執行 CDC, sp_cdc_enable_table 為 enable, sp_cdc_disable_table 為 disable&lt;/i&gt;    &lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;EXEC sys.&lt;b&gt;sp_cdc_enable_table&lt;/b&gt;      &lt;br /&gt;@source_schema = N&#39;dbo&#39;,      &lt;br /&gt;@source_name = N&#39;items&#39;,      &lt;br /&gt;@role_name = NULL&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;GO   &lt;br /&gt;&lt;i&gt;-- 觀察修改前、後差異     &lt;br /&gt;&lt;/i&gt;&lt;font color=&quot;#0000ff&quot;&gt;select * from cdc.dbo_items_CT&lt;/font&gt;    &lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;-- 目前 DB 中有那些 table 被 tracking&amp;#160; &lt;br /&gt;&lt;/i&gt;&lt;font color=&quot;#0000ff&quot;&gt;SELECT [name], is_tracked_by_cdc FROM sys.tablesGO&lt;/font&gt;&lt;i&gt;     &lt;br /&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;-- CCD 設定多久會清除, 預設為 4320 分鐘或 3 天,&amp;#160; 最大值為 52494800 (100 年)     &lt;br /&gt;&lt;/i&gt;&lt;font color=&quot;#0000ff&quot;&gt;select retention, threshold     &lt;br /&gt;from msdb.dbo.cdc_jobs      &lt;br /&gt;where database_id = &lt;i&gt;db_id&lt;/i&gt;()      &lt;br /&gt;and job_type = N&#39;cleanup&#39;&lt;/font&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/5459385967711138752/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2018/04/mssql-cdc-change-data-capture.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/5459385967711138752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/5459385967711138752'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2018/04/mssql-cdc-change-data-capture.html' title='MSSQL CDC (Change Data Capture) 更新記錄'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-6129430446216667742</id><published>2018-03-23T08:07:00.001-07:00</published><updated>2018-03-23T08:16:31.700-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Godaddy"/><category scheme="http://www.blogger.com/atom/ns#" term="max_user_connections"/><category scheme="http://www.blogger.com/atom/ns#" term="SmartASP.net"/><title type='text'>SmartASP.net 搬家紀實</title><content type='html'>&lt;p&gt;我手上有一個對外的網站是從幾年前就租用的美國Godaddy - Windows Hosting，當初租用Godaddy的原因及特點是無流量限制，檔案空間不限速度也還可以，但對我來說有個最致命的一點就是MySQL的DB容量限制，1GB。這個1GB搞的我很麻煩，系統資料庫每週都會更新資料，就會越長越大，但舊資料也不能刪除，所以一超過這個限制就提心吊膽會被Godaddy無情的封鎖。對，我曾經被封鎖過，還必須郵件往返才解決問題。&lt;/p&gt;  &lt;p&gt;話說今年(2018)三月剛好租用的Godaddy Hostoing又要到期，心一橫來搬家。但Linux Hosting好找、Windows Hosting難尋，找了貴到離譜的台灣Hosting，系統爛還有流量限制，也試用價格不便宜的GCP，但C/P值都不理想。最後在某網站看到推薦SmartASP.Net，MySQL的限制是10GB，足足比Godaddy的1GB大了10倍，流量也不限制就連價格也差不多，所以我直接買了一般共用空間的最高等級Premium Plan，價格是漂亮的$7.95/月。&lt;/p&gt;  &lt;p&gt;不過最重要的搬家花了不少時間處理MySQL技術問題，以下稍微作點記錄。&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;MySQL Connection限制     &lt;br /&gt;錯誤訊息：User &#39;a34322_n1&#39; has exceeded the &#39;max_user_connections&#39; resource (current value: 10)      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;原來SmartASP.Net的MySQL有Connection限制，但他們也太小看我的網站了，輕輕鬆鬆就突破這個限制，爆了。所以本來買的是.NET Advance plan就改昇級到Premium plan，價差不大可以接受。但請注意昇級後，要去按網站上的一個按鈕：[Upgrade to 20] &amp;lt;— 但…我的網頁上就沒這個按鈕，只能開Ticket請客服幫忙手動增加。以下是四個plan的connection限制，在Knowledge base才有得查。&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;.NET Basic plan - 10 MAX&lt;/li&gt;    &lt;li&gt;.NET Advance plan - 10 MAX&lt;/li&gt;    &lt;li&gt;.NET Premium plan - 20 MAX&lt;/li&gt;    &lt;li&gt;Semi plans - 40 MAX&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;另外&#39;max_user_connections&#39; 也延伸出另一個問題，就是網站平時20個connection都是滿的，那平常要怎麼維護或是自動更新資料呢？因為大部份時間都被user佔滿了。原本以為又沒解了，但想了一夜後發現原來.NET Premium plan有開放一個功能”Extra DB Users”，有了這個金牌功能就可以另外再加DB user，而&#39;max_user_connections&#39;是跟著DB user走，所以開新DB User就有獨立的 connection 數可以用，就將系統用的DB user和維護的DB user分作不同帳號解決。&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/6129430446216667742/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2018/03/smartaspnet.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/6129430446216667742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/6129430446216667742'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2018/03/smartaspnet.html' title='SmartASP.net 搬家紀實'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-4916392529449972469</id><published>2018-03-13T00:21:00.001-07:00</published><updated>2018-05-29T08:12:04.748-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="QR Code"/><category scheme="http://www.blogger.com/atom/ns#" term="TSC"/><category scheme="http://www.blogger.com/atom/ns#" term="中文亂碼"/><category scheme="http://www.blogger.com/atom/ns#" term="條碼機"/><title type='text'>TSC 條碼機 QR Code 列印中文亂碼</title><content type='html'>&lt;p&gt;客戶使用 TSC 條碼機列印標籤，正常列印QR Code時如果內容有中文時，刷條碼會出現亂碼無法閱讀。我查詢QR Code 的規格是允許中文字元，但如果依照原廠文件使用以下方法列印則不可行，印出來還是亂碼。其中第二種方式的 B0006 為 Binary + 4碼字元長度，目前只能使用第三種方式，但中文需先轉為 4字元的 Unicode。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font style=&quot;background-color: rgb(255, 255, 0);&quot;&gt;更新: 最後問題點竟是 SCLIB_DLL 的版本問題造成中文亂碼。&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Unicode 編碼字元查詢：&lt;a title=&quot;http://jicheng.tw/hanzi/unicode.html?s=7000&amp;amp;e=7FFF&quot; href=&quot;http://jicheng.tw/hanzi/unicode.html?s=7000&amp;amp;e=7FFF&quot;&gt;http://jicheng.tw/hanzi/unicode.html?s=7000&amp;amp;e=7FFF&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;方式一(亂碼)：    &lt;br /&gt;LIB_DLL.sendcommand(&amp;quot;QRCODE &amp;quot; + QRCodeX + &amp;quot;, &amp;quot; + QRCodeY + &amp;quot;,H,2,A,0,M2,S7,&amp;quot;中文&amp;quot;);&lt;/p&gt;  &lt;p&gt;方式二(亂碼)：    &lt;br /&gt;SCLIB_DLL.sendcommand(&amp;quot;QRCODE &amp;quot; + QRCodeX + &amp;quot;, &amp;quot; + QRCodeY + &amp;quot;,H,2,A,0,M2,S7,&amp;quot; B0006+中文 Unicode 內碼&amp;quot;);&lt;/p&gt;  &lt;p&gt;方式三(正常中文)：    &lt;br /&gt;var cmd = &#39;QRCODE 60,30,H,7,A,0,M2,S1,\&amp;quot;\u7f16\u7801\&amp;quot;&#39;;&amp;#160; &lt;/p&gt;  &lt;p&gt;資料來源: &lt;a title=&quot;http://blog.csdn.net/u010121228/article/details/72866417&quot; href=&quot;http://blog.csdn.net/u010121228/article/details/72866417&quot;&gt;http://blog.csdn.net/u010121228/article/details/72866417&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/4916392529449972469/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2018/03/tsc-qr-code.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/4916392529449972469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/4916392529449972469'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2018/03/tsc-qr-code.html' title='TSC 條碼機 QR Code 列印中文亂碼'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-2770701827465027963</id><published>2018-02-27T06:37:00.001-08:00</published><updated>2018-03-07T06:05:46.605-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CentOS"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle VM VirtualBox"/><title type='text'>CentOS 7 Minimal 版本基本設定</title><content type='html'>&lt;p&gt;安裝環境為 Oracle VM VirtualBox    &lt;br /&gt;=============================================     &lt;br /&gt;&amp;#160; 設定開機啟動網卡     &lt;br /&gt;=============================================     &lt;br /&gt; /etc/sysconfig/network-scripts     &lt;br /&gt; vi ifcfg-enp0s3     &lt;br /&gt; # edit ONBOOT=yes&amp;#160;&amp;#160; &amp;lt;-- 改為 yes     &lt;br /&gt; =============================================     &lt;br /&gt;&amp;#160; 更新系統及常用套件     &lt;br /&gt;=============================================     &lt;br /&gt;更新系統：yum -y update     &lt;br /&gt;常用套件：yum install vim wget net-tools epel-release     &lt;br /&gt; =============================================     &lt;br /&gt;&amp;#160; 時區設定     &lt;br /&gt;=============================================     &lt;br /&gt; # Timezone     &lt;br /&gt;查看所有時區:     &lt;br /&gt; # timedatectl list-timezones     &lt;br /&gt;設定時區區域:     &lt;br /&gt; # timedatectl set-timezone Asia/Taipei     &lt;br /&gt;與NTP server同步:     &lt;br /&gt; # timedatectl set-ntp yes     &lt;br /&gt; =============================================     &lt;br /&gt;&amp;#160; 安裝 telnet     &lt;br /&gt; =============================================     &lt;br /&gt; yum install telnet-server.x86_64     &lt;br /&gt; yum install telnet.x86_64     &lt;br /&gt; yum install xinetd.x86_64     &lt;br /&gt; yum install xinetd&lt;/p&gt;  &lt;p&gt;安裝完成後，將xinetd服務加入開機自啟動:    &lt;br /&gt; # systemctl enable xinetd.service     &lt;br /&gt;將telnet服務加入開機自啟動：     &lt;br /&gt;# systemctl enable telnet.socket     &lt;br /&gt;最後，啟動以上兩個服務即可：     &lt;br /&gt;# systemctl start telnet.socket     &lt;br /&gt; # systemctl start xinetd（或service xinetd start）     &lt;br /&gt; 如果還不能Telnet關閉防火墻     &lt;br /&gt;systemctl start firewalld.service #啟動firewall     &lt;br /&gt; systemctl stop firewalld.service #停止firewall     &lt;br /&gt; systemctl disable firewalld.service #禁止firewall開機啟動&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;* 注意: 使用 PuTTY SSH 連線 telnet &lt;/font&gt;    &lt;br /&gt; ====================================     &lt;br /&gt;&amp;#160; 增加使用者     &lt;br /&gt;====================================     &lt;br /&gt;adduser e1     &lt;br /&gt; passwd e1     &lt;br /&gt; =============================================     &lt;br /&gt;安裝網路設定命令工具(非必要)     &lt;br /&gt; =============================================     &lt;br /&gt; #系統設定套件 - setup 工具包     &lt;br /&gt;yum -y install setuptool     &lt;br /&gt; #系統設定套件 - 服務套件     &lt;br /&gt;yum -y install ntsysv     &lt;br /&gt; #系統設定套件 - 網路管理     &lt;br /&gt;yum -y install system-config-network-tui     &lt;br /&gt; #系統設定套件 - 防火牆設定     &lt;br /&gt;yum -y install system-config-firewall-tui     &lt;br /&gt; #系統設定套件 - 安全性設定     &lt;br /&gt;yum -y install system-config-securitylevel-tui &lt;/p&gt;  &lt;p&gt;=============================================   &lt;br /&gt;立即手動更新所有預先安裝的軟件    &lt;br /&gt;yum -y update    &lt;br /&gt;自動執行指令    &lt;br /&gt;yum -y install cronie    &lt;br /&gt; yum -y install yum-cron&lt;/p&gt;  &lt;p&gt;systemctl start crond   &lt;br /&gt; systemctl start yum-cron    &lt;br /&gt;==============================================&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/2770701827465027963/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2018/02/centos-7-minimal.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/2770701827465027963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/2770701827465027963'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2018/02/centos-7-minimal.html' title='CentOS 7 Minimal 版本基本設定'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-2793754878229165353</id><published>2017-10-19T08:42:00.001-07:00</published><updated>2017-10-19T08:42:56.143-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Dapper"/><category scheme="http://www.blogger.com/atom/ns#" term="Datatables"/><title type='text'>Dapper 查詢結果轉 DataTable</title><content type='html'>&lt;p&gt;手上某專案使用了GrapeCity的Spread for WinForm，使用Dapper查詢資料，得到結果後使用 foreach 方式一筆一筆填入。資料不大的話就相安無事，執行速度也可以接受。但是，就是有支關鍵的WinFom為了快速顯示，使用了DataAdapter轉DataTable，只好 Google Dapper 和 DataTable 的資料，並沒有查到可以直接轉出到DataTable，在下運氣好，在日本的某個論壇有個專家解了，方式如下，請放煙火後享用。&lt;/p&gt;  &lt;p&gt;dt = new DataTable();   &lt;br /&gt; dt.Load(db.ExecuteReader(sql, new { }));&amp;#160; &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/2793754878229165353/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2017/10/dapper-datatable.html#comment-form' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/2793754878229165353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/2793754878229165353'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2017/10/dapper-datatable.html' title='Dapper 查詢結果轉 DataTable'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-1897655647913966633</id><published>2017-03-05T01:50:00.001-08:00</published><updated>2017-03-05T01:50:59.149-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="visualbox"/><category scheme="http://www.blogger.com/atom/ns#" term="共用剪貼簿"/><title type='text'>[VisualBox] 無法共用剪貼簿</title><content type='html'>&lt;p&gt;VisualBox 是 Oracle 佛心來給眾生免費使用的虛擬主機程式，就像是 MS 的 Hyper-V 功能一樣。一直使用這個軟體二、三年了，作測試或是作開發環境都很正常，但 VisualBox 無法共用剪貼簿的問題困擾我好久，算是這個問題不大，心裡就是湊合著用就用，等到每次要用到剪下、貼上時嘴巴就哼個二聲，說這個軟體真爛。&lt;/p&gt;  &lt;p&gt;而昨天我就真的認真了，直接上 Stack overflow 找答案，原來只要安裝 Guest Additions CD 就可以啟用「共用剪貼簿」了，Guest Additions CD 的映像檔就在以下的第二張圖哦，請安心服用。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu0DKFu3WNuYhX3RbIx1Ws4PA2kNl4OuscND5NMqDxyCHuNRBjc45ak1CO7P3q81sfIbHoJwmAdeNZirrAqumqWYxXKYkse4p8hoJZByq49kXIRALjMw9rhGOM3yOeeiO0s_-Iv3FgrVw/s1600-h/image%25255B7%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWHSKOJAPBfN1VTmg-5dRwytnJfFZ8mQNMekBF06zTmbDvmuM6p53gASIMEVyLSgxuRSffCN3B8UJ2NPlo7w_kTiMhSZy8SDN3DNWiO-ixJBpD1L2SpNsVmi7YIEzdSlVs616zly7dyw/?imgmax=800&quot; width=&quot;478&quot; height=&quot;261&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikKWlJFKkb2vAhXADdHwhRM_dMCq4swHQ_r8TTnhlA1sh47OumQd6B9xS0Uoe9PGJ44000e_oMLZ2LHUcZ2shSNIu4yT5o8Muwoy689apicaOew8s97cpQ3cRY8mhntomSneQXWL6e8jE/s1600-h/image%25255B6%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgACcizXauEtc517rTNpLN66EHDAdk9u6DvkQOFiYa3-MFjOB9pM4VJcOvw11BCbM8j49HJzdfgOeB6LWhdGfc7mFMsKDJZrdWBmOquI-n53vSndIGhyqnpwOSmt8pKxXQj-5IXjoikHCs/?imgmax=800&quot; width=&quot;358&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/1897655647913966633/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2017/03/visualbox.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1897655647913966633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1897655647913966633'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2017/03/visualbox.html' title='[VisualBox] 無法共用剪貼簿'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMWHSKOJAPBfN1VTmg-5dRwytnJfFZ8mQNMekBF06zTmbDvmuM6p53gASIMEVyLSgxuRSffCN3B8UJ2NPlo7w_kTiMhSZy8SDN3DNWiO-ixJBpD1L2SpNsVmi7YIEzdSlVs616zly7dyw/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-6686706851266097773</id><published>2017-02-22T01:28:00.000-08:00</published><updated>2017-03-08T22:25:54.487-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Chart"/><category scheme="http://www.blogger.com/atom/ns#" term="Excel"/><category scheme="http://www.blogger.com/atom/ns#" term="VBA"/><title type='text'>[VBA] 自動化產生圖表 (Chart)</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small; color: orange&quot;&gt;實際運作擷圖&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: large; color: orange&quot;&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7xBb7h2ZilbIgBSxDH2dXvq6nypsQrWcylJdH6-U29JGW1yVhPJc0lcy2fMgawvQQW1FoT4snFCvqzaKj8PBh1kgIHOgnbBBqAnhK7fZM8A_o_BhwGvGTJ1_wANMdWtsM-jv1i6SghhQ/s1600-h/VGA-Chart%25255B2%25255D.gif&quot;&gt;&lt;img title=&quot;VGA-Chart&quot; alt=&quot;VGA-Chart&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0mvHNQhsj3zZPAnCYMmg2ZOg1kYlvLvTI2tUYCIA6McMOXlnmGXoISI86AEb3DFaautZI3F0j-0bj1NtLhGlUwnyBcoUxWFaYfaG7NVKyjdHpK5DXNR2h6V8BddS-xsC7mA9fH3HVplU/?imgmax=800&quot; width=&quot;540&quot; height=&quot;397&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; 第一次在部落格中記錄 VBA 程式，因為最近有個需求，來源是客戶每週有個重要任務：整理公司的生產統計資料並產生多種不同圖表於 Weekly review會議中報告，而這些圖表包含有 Pie、Line圖等。    &lt;br /&gt;客戶久而久之發現整理這些資料很花時間，重覆性很高，聽別人說有 Excel VBA ，可以將原本手動的工作改為程式處理，以後只要執行程式就可以自動產生出圖表。沒錯，這個客戶的觀念非常正確，Excel VBA 就是這樣好用，如果你是Excel的重度使用者，常常有一些計算或是統計的任務或許可以考慮將這些工作交由程式處理，以自動化的方式處理。那你省下來的時間呢？當然是去作更重要的事情啦！     &lt;br /&gt;&lt;a href=&quot;https://lh3.googleusercontent.com/-lnVEHpIIXCs/WLl2y3rjWtI/AAAAAAAAFKs/NALr4VJ1I_M/s1600-h/image%25255B7%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://lh3.googleusercontent.com/-hpVmSgfdjYM/WLl2zZ43nxI/AAAAAAAAFKw/YGU3kpmXzA8/image_thumb%25255B3%25255D.png?imgmax=800&quot; width=&quot;558&quot; height=&quot;239&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;br /&gt;    &lt;br /&gt;以下是這次 VBA 的部份程式，我擷取部份精華下來作為記錄也分享給大家。     &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY2y0laBWjKyB768y4gsq9Yu5lri8lZruIFv0M-ceABrJvm-e8PYySAjUpzL3_bmX4NlJPv3qs15DBKsAqByoIDDss422kLzKnj1AbsGbDgpw0gZxvT-WfRhufGSxGN8t0v6Sc5MfBxRQ/s1600-h/image%25255B12%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrpX-USJXrPK0FNMpCgpU6m8wOtXGPon2UkXtLkTdPPJrzGB0oG-NUoeIeryRe3nQr7bNERns9TID89a2SP5_adsFyzi2S7nSZTfj7xzgY2aguFuE65KfSGsnQBESCIIWVUuGzXXbmH3Q/?imgmax=800&quot; width=&quot;224&quot; height=&quot;244&quot; /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgctr5kyrAs0Qyhjm_tzmfZvcie9uLoj594wt7uPqZEB9qDAR1k55lGjOq-CB1WcuZmsL836bAp4xb1vaYqcyQy323-hHhYUj1NOK6wU6NMl_wXCLHQnL3-SVbXbsmvruRSSSogpKsdHXI/s1600-h/image%25255B14%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXJQZ-3UOkGZ5m47vqdbNCs8i8Jzt8yf0kJqOe_Two2jNA_GVMVsU-nLe-XWn1oXFPZUFFxST8TmyKvofUgOdeWp2OEV6HrjV1wdcvX5AEftVSlIs0PAziiB3Kq8pijmluaY60dDT4xg/?imgmax=800&quot; width=&quot;635&quot; height=&quot;404&quot; /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: small; color: orange&quot;&gt;第1部份：原始資料(Raw data) 產生樞紐分析表&lt;/span&gt;&lt;/strong&gt;     &lt;br /&gt;&#39;=====================================================     &lt;br /&gt;&#39;2.Create Pivot table     &lt;br /&gt;&#39;=====================================================     &lt;br /&gt;&#39;Where do you want Pivot Table to start?     &lt;br /&gt;StartPvt = shtName &amp;amp; &amp;quot;!&amp;quot; &amp;amp; Range(&amp;quot;A2&amp;quot;).Address(ReferenceStyle:=xlR1C1)     &lt;br /&gt;&#39;Create Pivot Cache from Source Data     &lt;br /&gt;Set pvtCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=SrcData)     &lt;br /&gt;&#39;Create Pivot table from Pivot Cache     &lt;br /&gt;Set PT = pvtCache.CreatePivotTable(TableDestination:=StartPvt, TableName:=&amp;quot;PivotTable&amp;quot; &amp;amp; shtName)     &lt;br /&gt;&amp;#160;&amp;#160; &lt;br /&gt;&#39;在新的PivotTable上設置欄位     &lt;br /&gt;With PT     &lt;br /&gt;&#39;欄     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .PivotFields(&amp;quot;Region&amp;quot;).Orientation = xlRowField     &lt;br /&gt;&#39;資料     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .PivotFields(&amp;quot;NO&amp;quot;).Orientation = xlDataField     &lt;br /&gt;&#39;可以設定各欄位的顯示與否     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; With .PivotFields(&amp;quot;Page Two.RMA Region&amp;quot;)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .PivotItems(&amp;quot;(blank)&amp;quot;).Visible = False     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End With     &lt;br /&gt;End With     &lt;br /&gt;&#39;建立樞紐分析表會顯示出其命令列, 關掉它     &lt;br /&gt;Application.CommandBars(&amp;quot;PivotTable&amp;quot;).Visible = False     &lt;br /&gt;&lt;span style=&quot;font-size: small; color: orange&quot;&gt;&lt;strong&gt;第2部份：樞紐分析表轉為 Pie 圖表&lt;/strong&gt;&lt;/span&gt;     &lt;br /&gt;&#39;=====================================================     &lt;br /&gt;&#39;3.Create Chart     &lt;br /&gt;&#39;=====================================================     &lt;br /&gt;Set objChart = Charts.Add     &lt;br /&gt;With objChart     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .ChartType = xlPie     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .SetSourceData Source:=Sheets(shtName).Range, PlotBy:=xlColumns     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .Location Where:=xlLocationAsObject, Name:=shtName     &lt;br /&gt;End With     &lt;br /&gt;&#39;Chart 定位, 大小     &lt;br /&gt;With ActiveChart.Parent     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .Left = 200     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .Top = 50     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .Width = 450     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .Height = 350     &lt;br /&gt;End With     &lt;br /&gt;&#39;DataLabel 及 Title     &lt;br /&gt;With ActiveChart     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .HasTitle = True     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .ChartTitle.Text = &amp;quot;By Region&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .ApplyDataLabels xlDataLabelsShowPercent     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .SeriesCollection(1).DataLabels.NumberFormat = &amp;quot;##0.00%&amp;quot;     &lt;br /&gt;End With     &lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;color: orange&quot;&gt;第3部份：Pie 圖表匯出到 PowerPoint，以下這段程式碼是由 G 大神來的&lt;/span&gt;&lt;/strong&gt;     &lt;br /&gt;Sub ChartsToPresentation()     &lt;br /&gt;&#39; Set a VBE reference to Microsoft PowerPoint Object Library     &lt;br /&gt;Dim PPT As PowerPoint.Application     &lt;br /&gt;Dim PPPres As PowerPoint.Presentation     &lt;br /&gt;Dim PPSlide As PowerPoint.Slide     &lt;br /&gt;Dim PresentationFileName As Variant     &lt;br /&gt;Dim SlideCount As Long     &lt;br /&gt;Dim iCht As Integer     &lt;br /&gt;&#39; Reference existing instance of PowerPoint     &lt;br /&gt;Set PPApp = GetObject(, &amp;quot;Powerpoint.Application&amp;quot;)     &lt;br /&gt;&#39; Reference active presentation     &lt;br /&gt;Set PPPres = PPApp.ActivePresentation     &lt;br /&gt;PPApp.ActiveWindow.ViewType = ppViewSlide     &lt;br /&gt;For iCht = 1 To ActiveSheet.ChartObjects.Count     &lt;br /&gt;&#39; copy chart as a picture     &lt;br /&gt;ActiveSheet.ChartObjects(iCht).Chart.CopyPicture _     &lt;br /&gt;Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture     &lt;br /&gt;&#39; Add a new slide and paste in the chart     &lt;br /&gt;SlideCount = PPPres.Slides.Count     &lt;br /&gt;Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)     &lt;br /&gt;PPApp.ActiveWindow.View.GotoSlide PPSlide.SlideIndex     &lt;br /&gt;With PPSlide     &lt;br /&gt;&#39; paste and select the chart picture     &lt;br /&gt;.Shapes.Paste.Select     &lt;br /&gt;&#39; align the chart     &lt;br /&gt;PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True     &lt;br /&gt;PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True     &lt;br /&gt;End With     &lt;br /&gt;Next     &lt;br /&gt;&#39; Clean up     &lt;br /&gt;Set PPSlide = Nothing     &lt;br /&gt;Set PPPres = Nothing     &lt;br /&gt;Set PPApp = Nothing     &lt;br /&gt;End Sub     &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: medium; color: #f79646&quot;&gt;完整程式及測試檔案&lt;/span&gt;&lt;/strong&gt;     &lt;br /&gt;&lt;a title=&quot;https://drive.google.com/open?id=0B0pY4dpq6q9WZVZtZ21fbWNfMEU&quot; href=&quot;https://drive.google.com/open?id=0B0pY4dpq6q9WZVZtZ21fbWNfMEU&quot;&gt;https://drive.google.com/open?id=0B0pY4dpq6q9WZVZtZ21fbWNfMEU&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/6686706851266097773/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2017/02/vba-chart.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/6686706851266097773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/6686706851266097773'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2017/02/vba-chart.html' title='[VBA] 自動化產生圖表 (Chart)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0mvHNQhsj3zZPAnCYMmg2ZOg1kYlvLvTI2tUYCIA6McMOXlnmGXoISI86AEb3DFaautZI3F0j-0bj1NtLhGlUwnyBcoUxWFaYfaG7NVKyjdHpK5DXNR2h6V8BddS-xsC7mA9fH3HVplU/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-1929306699150453593</id><published>2017-02-20T01:15:00.001-08:00</published><updated>2017-02-20T01:15:37.230-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="FB"/><title type='text'>[FB] 粉絲專頁管理員</title><content type='html'>&lt;p&gt;剛在 FB 上花了十分鐘找不到粉絲專頁管理員的設定，趕快記下來免得下回又找不到了。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUfs5rF6gnnDIxHAJ_TH4-dUmt5ROp80yDTRnXbYgZx0TwuvMvYnlphH8sOiKATUovCgiMAxiN2QKyWfhLj2eS3mGZ0kn4fLmQoCIf5FzggvJY5MPltMxaSulS00zGY0XbasL3aWyahVA/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq5MBCCZpz4q_G1LpR188utBG8qg7ZMqWew2XXQSM5tEiqOex9LYH3vOA4M-pMPP9BxKeclL7Y5WwD0T1iAISxtll1YSqlyZM0AEu1SwdFNZsnwoS8rOatrGYr5f9MJib8bJqgX8C2ETE/?imgmax=800&quot; width=&quot;718&quot; height=&quot;677&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/1929306699150453593/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2017/02/fb.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1929306699150453593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1929306699150453593'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2017/02/fb.html' title='[FB] 粉絲專頁管理員'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq5MBCCZpz4q_G1LpR188utBG8qg7ZMqWew2XXQSM5tEiqOex9LYH3vOA4M-pMPP9BxKeclL7Y5WwD0T1iAISxtll1YSqlyZM0AEu1SwdFNZsnwoS8rOatrGYr5f9MJib8bJqgX8C2ETE/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-7648009303687639026</id><published>2016-11-17T22:55:00.001-08:00</published><updated>2016-11-17T22:55:19.639-08:00</updated><title type='text'>.Net 樣版小探 (.Net templates review)</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Serene (Serenity Application Template)     &lt;br /&gt;&lt;a title=&quot;https://marketplace.visualstudio.com/items?itemName=VolkanCeylan.SereneSerenityApplicationTemplate&quot; href=&quot;https://marketplace.visualstudio.com/items?itemName=VolkanCeylan.SereneSerenityApplicationTemplate&quot;&gt;https://marketplace.visualstudio.com/items?itemName=VolkanCeylan.SereneSerenityApplicationTemplate&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;EISK     &lt;br /&gt;&lt;a title=&quot;https://marketplace.visualstudio.com/items?itemName=AshrafulAlam.EmployeeInfoStarterKitEISK-MVC&quot; href=&quot;https://marketplace.visualstudio.com/items?itemName=AshrafulAlam.EmployeeInfoStarterKitEISK-MVC&quot;&gt;https://marketplace.visualstudio.com/items?itemName=AshrafulAlam.EmployeeInfoStarterKitEISK-MVC&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Property4U - Real Estate 2.0      &lt;br /&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=mfahim.Property4U-RealEstate20&quot;&gt;https://marketplace.visualstudio.com/items?itemName=mfahim.Property4U-RealEstate20&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Simplify.Web.Templates     &lt;br /&gt;&lt;a title=&quot;https://marketplace.visualstudio.com/items?itemName=Alexanderius.SimplifyWebTemplates&quot; href=&quot;https://marketplace.visualstudio.com/items?itemName=Alexanderius.SimplifyWebTemplates&quot;&gt;https://marketplace.visualstudio.com/items?itemName=Alexanderius.SimplifyWebTemplates&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;EntityFramework Reverse POCO Generator &lt;/li&gt;    &lt;p&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReversePOCOGenerator&quot;&gt;https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReversePOCOGenerator&lt;/a&gt;&lt;/p&gt; &lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/7648009303687639026/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2016/11/net-net-templates-review.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/7648009303687639026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/7648009303687639026'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2016/11/net-net-templates-review.html' title='.Net 樣版小探 (.Net templates review)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-6755792050653241148</id><published>2016-07-01T20:08:00.001-07:00</published><updated>2016-07-01T20:08:18.760-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MS Access"/><title type='text'>Access 2007 開啟時只顯示表單</title><content type='html'>&lt;p&gt;客戶需求:    &lt;br /&gt;一般使用者進入 Access 2007 只顯示表單(Form)，將資料表隱藏起來，並且無法直接存取資料表(Table)。避免一般使用者直接更改資料表內容。&lt;/p&gt;  &lt;p&gt;經過 Google 查詢國內外的資料，確認只要加上以下的 code 於VBA程式碼，再重新啟動就看不到表單之外的資料。那開發人員或是管理者呢？處理方式為開啟Access檔案時，按下 Shift 鍵就會跳過以下程序。&lt;/p&gt;  &lt;p&gt;Sub SetStartupProperties()   &lt;br /&gt;Const DB_Text As Long = 10    &lt;br /&gt;Const DB_Boolean As Long = 1    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;StartupForm&amp;quot;, DB_Text, &amp;quot;首頁&amp;quot;&amp;#160; ‘修改為啟動表單頁    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;StartupShowDBWindow&amp;quot;, DB_Boolean, False    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;StartupShowStatusBar&amp;quot;, DB_Boolean, False    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;StartupMenuBar&amp;quot;, DB_Boolean, False    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;AllowShortcutMenus&amp;quot;, DB_Boolean, False    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;AllowBuiltInToolbars&amp;quot;, DB_Boolean, False    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;AllowFullMenus&amp;quot;, DB_Boolean, False    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;AllowBreakIntoCode&amp;quot;, DB_Boolean, False    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;AllowSpecialKeys&amp;quot;, DB_Boolean, True    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty &amp;quot;AllowBypassKey&amp;quot;, DB_Boolean, True    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DoCmd.ShowToolbar &amp;quot;Ribbon&amp;quot;, acToolbarNo    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DoCmd.ShowToolbar &amp;quot;Status Bar&amp;quot;, acToolbarNo    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DoCmd.NavigateTo &amp;quot;acNavigationCategoryObjectType&amp;quot;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DoCmd.RunCommand acCmdWindowHide    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;End Sub&lt;/p&gt;  &lt;p&gt;Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Dim dbs As Object, prp As Variant    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Const conPropNotFoundError = 3270&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; Set dbs = CurrentDb   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; On Error GoTo Change_Err    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; dbs.Properties(strPropName) = varPropValue    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ChangeProperty = True&lt;/p&gt;  &lt;p&gt;Change_Bye:   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Exit Function&lt;/p&gt;  &lt;p&gt;Change_Err:   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; If Err = conPropNotFoundError Then &#39; 找不到屬性。    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Set prp = dbs.CreateProperty(strPropName, _    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; varPropType, varPropValue)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dbs.Properties.Append prp    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Resume Next    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Else    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &#39; 未知的錯誤。    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ChangeProperty = False    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Resume Change_Bye    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; End If    &lt;br /&gt;End Function    &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/6755792050653241148/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2016/07/access-2007.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/6755792050653241148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/6755792050653241148'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2016/07/access-2007.html' title='Access 2007 開啟時只顯示表單'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-1843356291104659275</id><published>2016-06-20T23:59:00.001-07:00</published><updated>2016-06-20T23:59:12.785-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="0x80070020"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="VS2013"/><title type='text'>VS2013 failed to register URL  0x80070020</title><content type='html'>&lt;p&gt;今天開啟一個久違的專案，無奈VS2013出現一個錯誤訊息：&lt;/p&gt;  &lt;p&gt;vs2013 failed to register URL&amp;#160; 0x80070020。&lt;/p&gt;  &lt;p&gt;疑…上個月開專案不是好好的嗎？我的乖乖呢？網路上查了一些解決方式，研判是port被佔住造成無法執行VS2013內建的 IIS Express。但 VS2013的web port可不是說改就改的哦，修改方式我也幫你準備好了，請看以下步驟二。&lt;/p&gt;  &lt;p&gt;步驟一、找出是否真的有程式佔用了port，123456是port編號。&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;netstat -a -n -o | find &amp;quot;123456&amp;quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;
步驟二、修改以下二個檔案內有關 port 的連結，換另一個port 

&lt;ul&gt;
  &lt;li&gt;C:\Users\[user name]\Documents\IISExpress\config\applicationhost.config&lt;/li&gt;

  &lt;li&gt;專案.sln&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/1843356291104659275/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2016/06/vs2013-failed-to-register-url-0x80070020.html#comment-form' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1843356291104659275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1843356291104659275'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2016/06/vs2013-failed-to-register-url-0x80070020.html' title='VS2013 failed to register URL  0x80070020'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-7812869663049681571</id><published>2016-05-27T08:08:00.001-07:00</published><updated>2016-05-27T08:08:49.226-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MS SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="PATINDEX"/><category scheme="http://www.blogger.com/atom/ns#" term="STUFF"/><category scheme="http://www.blogger.com/atom/ns#" term="正規表示式"/><title type='text'>取出字串的最後一個數字</title><content type='html'>&lt;p&gt;取出字串中的第一數字比較容易，那字串有好多組數字，想要取回字串的最後一組字串怎麼處理呢？   &lt;br /&gt;請出Google大神，竟然沒有什麼參考資料，只好自己來。    &lt;br /&gt;以下為範例，重點在那個 REVERSE 函數哦！    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;DECLARE @productname varchar(100);   &lt;br /&gt;set&amp;#160; @productname = &#39;T20-5-2.12&#39;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;select    &lt;br /&gt;@productname,    &lt;br /&gt;cast(    &lt;br /&gt;reverse(    &lt;br /&gt;case PATINDEX(&#39;%[-,a-z,A-Z,~,@,#,$,%,&amp;amp;,*,(,),&amp;lt;,&amp;gt;]%&#39;,STUFF(REVERSE(@productname), 1,PATINDEX(&#39;%[0-9]%&#39;, REVERSE(@productname))-1,&#39;&#39;))     &lt;br /&gt;when 0 then STUFF(REVERSE(@productname), 1,PATINDEX(&#39;%[0-9]%&#39;, REVERSE(@productname))-1,&#39;&#39;)    &lt;br /&gt;else SUBSTRING(STUFF(REVERSE(@productname), 1,PATINDEX(&#39;%[0-9]%&#39;, REVERSE(@productname))-1,&#39;&#39;),1,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PATINDEX(&#39;%[-,a-z,A-Z,~,@,#,$,%,&amp;amp;,*,(,),&amp;lt;,&amp;gt;]%&#39;,STUFF(REVERSE(@productname), 1,PATINDEX(&#39;%[0-9]%&#39;, REVERSE(@productname))-1,&#39;&#39;))-1)    &lt;br /&gt;end) as decimal(18,2))&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/7812869663049681571/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2016/05/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/7812869663049681571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/7812869663049681571'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2016/05/blog-post.html' title='取出字串的最後一個數字'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-4689387236075507788</id><published>2015-08-11T05:18:00.001-07:00</published><updated>2015-08-11T05:18:22.452-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Datatables"/><category scheme="http://www.blogger.com/atom/ns#" term="JQuery"/><category scheme="http://www.blogger.com/atom/ns#" term="MVC"/><title type='text'>JQuery Datatables 無法分頁, 排序</title><content type='html'>&lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;微軟正黑體&quot;&gt;&lt;strong&gt;起因:        &lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size=&quot;3&quot; face=&quot;微軟正黑體&quot;&gt;這二天打算練習 MVC.NET 與 &lt;a href=&quot;http://datatables.net/&quot;&gt;JQuery Datatables&lt;/a&gt; 整合，好不容易克服 JSON 的資料傳遞問題，結果又遇到 Datatables 無法排序，分頁也不正常。依照經驗，先查看看網頁引用的 JQuery 的版本是否與 Datatables 不相容，修改後仍然無解，看來設定也都沒有問題，在網頁估狗也看不到什麼有用的解法。突然見到 Java Script 中的參數名稱 serverSide 和有些網友寫的不太一樣，有些網友是加上 b 這個前置字元，代表 binary。那就試試看，沒想到這就是問題點，改完後就運作正常了。&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size=&quot;3&quot; face=&quot;微軟正黑體&quot;&gt;&lt;strong&gt;Status:&lt;/strong&gt; Case closed.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikFVRrCxyQPLKaz-fkXD_XxEW66AIYTlHqKwUE0Wj2TK_GpgZzb4feLiuDB99mICtvXHNC_wf0df3VmwlxD6R29Oolvg7SbnacRPMM5_jvaBJH_bc0JtXz2rm931Cf0VuWIn-oGkZHLcQ/s1600-h/image7.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9dZ_P5YDFuiGibI7hQh9wKjgTbhvpl8sH470pkzbFl6VF6ZS8_VRu0tZklPUrGPhL-nqbpd2kA0iYjbtK7t3-Crqq-Io38ISiTcojjWm-8XpayNYMemJ2fKUpB2yZuEAZMmEE6wug00/?imgmax=800&quot; width=&quot;710&quot; height=&quot;382&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiev3Mz-CjqO0j7sqM4f-YgGrat1Si92CYq8imr6_w4z096U0c_MHyIsIilUZ1oyG-8yi69e0xVoNlqevU4-aIuolcXCr0Zl9d-7wKZh9WyiyWgr8m1afU-vHmF2w-9aCj3omsp_ytPW6o/s1600-h/image3.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1u9bSpZC3BYTq7U5rwpvSGy9Ms17YTF-EyO8aCffvFXcpwtCsyvq1AclpmtY1hUUrXcp4lYWfDiyuDDDj3YfubdlbsUMY4SFXBLcMUOuSWxRWq_G0hbAR_1rxItrOFGFBveOuxeK7hjA/?imgmax=800&quot; width=&quot;439&quot; height=&quot;331&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/4689387236075507788/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2015/08/jquery-datatables.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/4689387236075507788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/4689387236075507788'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2015/08/jquery-datatables.html' title='JQuery Datatables 無法分頁, 排序'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9dZ_P5YDFuiGibI7hQh9wKjgTbhvpl8sH470pkzbFl6VF6ZS8_VRu0tZklPUrGPhL-nqbpd2kA0iYjbtK7t3-Crqq-Io38ISiTcojjWm-8XpayNYMemJ2fKUpB2yZuEAZMmEE6wug00/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-1984334454356544036</id><published>2015-04-15T04:19:00.001-07:00</published><updated>2015-04-15T05:10:29.488-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MS SQL"/><title type='text'>MS-SQL Multiple-step OLE DB 錯誤</title><content type='html'>&lt;p&gt;昨日在進行新系統上線測試，而這個測試是個報表相關程式。在一般的查詢條件之下，系統都可以正確無誤統計出資料，但是速度不快。但是下到某一個特定的字串查詢，怪事就發生了，系統出現附圖中的錯誤訊息：&lt;/p&gt;  &lt;p&gt;Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done. &lt;/p&gt;  &lt;p&gt;天呀，這是什麼鬼東東，照例往估狗大神請教去，世界各地專家大都建議查查 SQL connection 連結字串，或查詢時欄位設定的問題，也有可能是 MDAC driver 的問題，我就照著那些建議試著去調校但仍不得其解，只好悶著頭自己測試，突然發現有一段的 SQL 查詢速度慢的不正常，像是 index 未使用到，心想試試也無妨就多加一個 index 作測試。Bingo，SQL 的執行速度立馬恢復正常，錯誤訊息也不見了。沒想到此錯誤訊息找一下午，只要加上 index 就可以打包收工。只能說上天保佑程式人。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Case closed.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIrqAtQQcPSZDeeffMri1UdXEytXgOjCiCKk72Fi-WeJb8-GrxUPU10Ly7MpgL0IJGSy23StcgKLb6F3EmZBKVh3i-i4jDXUpkIpLwLKfOI04ZhipgKgmeL4PzvMXVJpI_VnIloTh7hpI/s1600-h/image%25255B7%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx9SUQJXXs9Ixje6Is6MgBi1kQ7Nbh9ZYrH-GnwwdOyA1MOcXYcxvgNAZKM65JM5NV8KUr2RxSi2BVGTZ0dBwZdgxQt45t3WHVHGOAfPodj9vrwL4-Rzy2hhAHML_9R8QajM_9edxc2Pc/?imgmax=800&quot; width=&quot;411&quot; height=&quot;156&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/1984334454356544036/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2015/04/ms-sql-multiple-step-ole-db.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1984334454356544036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/1984334454356544036'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2015/04/ms-sql-multiple-step-ole-db.html' title='MS-SQL Multiple-step OLE DB 錯誤'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx9SUQJXXs9Ixje6Is6MgBi1kQ7Nbh9ZYrH-GnwwdOyA1MOcXYcxvgNAZKM65JM5NV8KUr2RxSi2BVGTZ0dBwZdgxQt45t3WHVHGOAfPodj9vrwL4-Rzy2hhAHML_9R8QajM_9edxc2Pc/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-3489660681731070954</id><published>2014-12-12T23:12:00.001-08:00</published><updated>2014-12-12T23:13:30.299-08:00</updated><title type='text'>Android手機聯絡人: 群組同步問題</title><content type='html'>&lt;p&gt;&lt;strong&gt;起因:     &lt;br /&gt;&lt;/strong&gt;話說某朋友有隻三爽牌的 S3 Note 手機，因為 Gmail 帳號在原舊手機刪除後造成每個聯絡人群組內的聯絡人都不見了，我心想不就把手機上的聯絡人再同步一次不就可以了？No No No，並沒有同步，Gmail 和三爽牌手機一邊一國各管各的，無論同步幾次都無法將群組內的聯絡人更新到手機內。經過一番Google後發現有個聯絡人群組同步的功能，但是只有 HTC 手機有此功能，三爽牌沒有，殘念，難不成要將手機重置才以將聯絡人群組同步回來？？但是，真是漂亮的但是…天公疼好人，在測試的過程中，突然發現如果增加一個新群組，這個新群組內的聯絡人竟然可以同步到手機。叮噹…靈光一閃，我可以解決這個問題了!&lt;/p&gt;  &lt;p&gt;詳細解法在底下! 不用在手機上刪除帳號，聯絡人群組也可以恢復正常哦。步驟請見下圖說明。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Case closed.&lt;/p&gt;  &lt;p&gt;步驟一、GMail 聯絡人: 增加一個新群組，將此群組命名為 Test&lt;/p&gt;  &lt;p&gt;步驟二、將各群組內的聯絡人全部加上此一新群組: Test&lt;/p&gt;  &lt;p&gt;步驟三、開啟手機的帳號同步，各群組內的聯絡人數量會同步為最新資料&lt;/p&gt;  &lt;p&gt;步驟四、檢查各群組的資料無誤後，可將剛剛新增加 Test 群組刪除&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWXQCw0kbdzTjJgRxzCgzTAQdvx8fhs3XtbV-n3lWdwPzY4c8V9svWqh5T-hTYxtrfLR-s_OSpfxTBp3g32jkOXGRM12ZRMia3iuu6ZSk4t0EDiFqS5DMNWi_TaOctDMmfcgBY1j5rH8g/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2LBNXhsa18iISbAIbkj1AEJxM4PcTUp3tXgOzgKwF_KtsKTGnIlBruenadS3hozcRVeqJYyiEeRG8gBEBqf_YkRCtfJYoB-6hZd-NVt0W-eED7wy8hvv1XeKGD9JcVAPmcnFcRw0vR7Q/?imgmax=800&quot; width=&quot;554&quot; height=&quot;323&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/3489660681731070954/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2014/12/android.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/3489660681731070954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/3489660681731070954'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2014/12/android.html' title='Android手機聯絡人: 群組同步問題'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2LBNXhsa18iISbAIbkj1AEJxM4PcTUp3tXgOzgKwF_KtsKTGnIlBruenadS3hozcRVeqJYyiEeRG8gBEBqf_YkRCtfJYoB-6hZd-NVt0W-eED7wy8hvv1XeKGD9JcVAPmcnFcRw0vR7Q/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1645572413635364717.post-3421470861940314639</id><published>2013-11-14T06:33:00.001-08:00</published><updated>2013-11-14T06:33:16.857-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Regex"/><category scheme="http://www.blogger.com/atom/ns#" term="Regualr Expression"/><category scheme="http://www.blogger.com/atom/ns#" term="正規表示式"/><title type='text'>Excel 外掛: SEO Tools</title><content type='html'>&lt;p&gt;最近 user 有個需求，需要處理 Excel 中的資料，把有前置詞的字串從儲存格取出。照我原本思考的方式是將資料轉入資料庫再作處理，但是還要建 Table ，轉資料，還是免不了一番功夫。&lt;/p&gt;  &lt;p&gt;懶人如我，心裡一陣動念就上 google 找工具，就翻到的這個工具，雖然此物並非專門給 regular expression 處理字串，但在其 String 的功能組下方有 RegexpFind 可符合此次任務需求，立馬就下載測試，一試就成主顧。這套 SeoTools 如其名，專長在處理 Web SEO 相關的資料，就待以後有空再來使用了。如果有在 Excel 下使用正規表示式(Regular Expression)，相信你也會和我一樣滿意它。&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjjxfMU4X99rWS9O5CoezkNZpHw28bJDRio1woDXWI-H8xj9tTRZXGbR3a-ZI80dGFKIHhnHNHXAHvf4mnTFlJD0FZt1dgWR-NBvRle3wwywGAxBlG28ZByQTCS3GGx2RfApajxBEzrM0/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrmeFzysgVaQ_3PoGA4z9M6Xx7E_h2k4is5fgab1_k2TF9C6DGnmdqbiqxq1yG8rrYIhsw9CU2cM09LW-QnhUziJn_SZnUeZvptCw9Wt5QT8eWlH1oOX9R-WpANft4INMo6UWNV8kW9Hg/?imgmax=800&quot; width=&quot;661&quot; height=&quot;274&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;官方網站: &lt;a href=&quot;http://nielsbosma.se/projects/seotools/&quot; target=&quot;_blank&quot;&gt;SeoTools for Excel&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://e1p.blogspot.com/feeds/3421470861940314639/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://e1p.blogspot.com/2013/11/excel-seo-tools.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/3421470861940314639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1645572413635364717/posts/default/3421470861940314639'/><link rel='alternate' type='text/html' href='http://e1p.blogspot.com/2013/11/excel-seo-tools.html' title='Excel 外掛: SEO Tools'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrmeFzysgVaQ_3PoGA4z9M6Xx7E_h2k4is5fgab1_k2TF9C6DGnmdqbiqxq1yG8rrYIhsw9CU2cM09LW-QnhUziJn_SZnUeZvptCw9Wt5QT8eWlH1oOX9R-WpANft4INMo6UWNV8kW9Hg/s72-c?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry></feed>