<?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-2645676084810380842</id><updated>2024-11-01T15:08:19.650+08:00</updated><category term="Visual Basic"/><category term="Windows Mobile"/><category term="WPF"/><category term="備忘"/><category term="Visual Studio"/><category term="wp7"/><category term="compact framework"/><category term="學習資源"/><category term="MSSQL"/><category term="android"/><category term="csharp"/><category term="FAQ"/><category term="Windwos7"/><category term="blogger"/><category term="xamarin"/><category term="安裝佈署"/><category term=".Net framework 3.0"/><category term="ADO.Net"/><category term="FTP"/><category term="JustForFun"/><category term="Service"/><category term="Silverlight"/><category term="VS2005"/><category term="Vista"/><category term="WCF"/><category term="Windows"/><category term="expression"/><category term="performance"/><category term="好書推薦"/><category term="網路"/><category term="繪圖"/><category term="ASP.Net"/><category term="Blend"/><category term="MDX"/><category term="Restful"/><category term="other"/><category term="sql server"/><category term="udp"/><category term="腦力激盪"/><title type='text'>MakeIT</title><subtitle type='html'>We think, we believe then we make it</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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>210</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-5347145992240123549</id><published>2022-04-06T18:35:00.000+08:00</published><updated>2022-04-06T18:35:10.384+08:00</updated><title type='text'>SMSS 設計檢視時沒有回應</title><content type='html'>最近在使用 SMSS 連線資料庫時，陸陸續續在主機上，出現沒有回應的狀況。&lt;div&gt;我的症狀是這樣&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- 連線正常，可以連接到。SQL Server&lt;/div&gt;&lt;div&gt;- 對資料表『右鍵』『選取前 1000 個資料列』正常顯示&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;但，只要用『編輯前 200 個資料列』或是『設計』一點下去，整個。SMSS 就會停止回應，一直卡住。搜尋了一下也沒有看到相關的類似情形，嘗試過移除再重新安裝，也是沒有效果。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;最後我的處理方式是下面這樣，如果有同樣問題的，也許也可以試試看。同時也給自己做個筆記。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. 進入 temp 資料夾，位置是『C:\Users\{這裡是使用者名稱}\AppData\Local\Temp』，刪掉裡面所有的東西，如果有東西被咬著刪除不了，請先重開機載進行刪除。&lt;/div&gt;&lt;div&gt;2. 重新開機&lt;/div&gt;&lt;div&gt;3. 開啟 SMSS 在測試一次&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/5347145992240123549/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/5347145992240123549' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/5347145992240123549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/5347145992240123549'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2022/04/smss.html' title='SMSS 設計檢視時沒有回應'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-6931856297019595269</id><published>2016-11-08T01:27:00.000+08:00</published><updated>2016-11-08T01:27:34.129+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="xamarin"/><title type='text'>[Tips] Xamrin Forms中，NavigationPage上方Toolbar的相關設定</title><content type='html'>這篇給自個筆記一下；在使用Xamarin Forms來做Navigation時，會修改App,xaml.cs檔案中，將MainPage的類型設定是NavagationPage，而在首頁，就可以利用下面的程式碼，來進入子頁面&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;await&lt;/span&gt;&amp;nbsp;Navigation&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;PushAsync(&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;PageName&lt;/span&gt;(),&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;true&lt;/span&gt;);
&lt;/pre&gt;
&lt;br /&gt;
這個方式很方便，也能自動的將頁面的尋覽順序給加入頁面堆疊中。而進入了子頁面之後，上方會有一條Toolbar，這邊針對這個toolbar的相關設定簡單說明一下&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;設定背景顏色&lt;/b&gt;&lt;/span&gt;&lt;div&gt;
設定背景顏色時，需要直接在建立NavagationPage時指定，所有子頁面都會一起套用，大概像是下面這樣&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;MainPage&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;NavigationPage&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;CuboApp&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;MainPage&lt;/span&gt;())
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BarBackgroundColor&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Color&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;White,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BarTextColor&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Color&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;FromHex(&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;FF48AEB1&quot;&lt;/span&gt;)
};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;設定toolbar右側的按鈕&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
右側按鈕的設定，在子頁面中，呼叫下面的程式碼&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;ToolbarItems&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Add(&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ToolbarItem&lt;/span&gt;(&quot;要顯示的文字&quot;,&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;圖片的名稱&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;async&lt;/span&gt;&amp;nbsp;()&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&amp;gt;&lt;/span&gt;&amp;nbsp;{&lt;/pre&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;   //按下去的時候,要做的事情寫在這裡&lt;/pre&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&amp;nbsp;}));&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;子頁面的back button顏色,文字顏色(這個找好久)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
這個實在是傷腦筋，由於我是把Toolbar背景設定為白的，iOS沒事，android這邊預設返回的箭頭是白的，因此我的箭頭就消失了 &amp;nbsp;我的箭頭就消失了 &amp;nbsp;我的箭頭就消失了...&lt;br /&gt;
解決方式我最後&lt;a href=&quot;http://stackoverflow.com/questions/33080323/no-resource-found-that-mach-the-given-name-theme-appcompat-light-noactionbar&quot; target=&quot;_blank&quot;&gt;是參考這篇文章&lt;/a&gt;，需要編輯Droid專案中，resources\values\styles.xml&lt;br /&gt;
先在&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;MainTheme.Base&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Theme.AppCompat.Light.DarkActionBar&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
這個區塊裡面，下入相關設定&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;!--&lt;/span&gt;&lt;span style=&quot;color:#57a64a;&quot;&gt;&amp;nbsp;設定文字顏色&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:gray;&quot;&gt;--&gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;android:actionMenuTextColor&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;@color/custom_toolbar&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;!--&lt;/span&gt;&lt;span style=&quot;color:#57a64a;&quot;&gt;&amp;nbsp;設定返回按鈕顏色&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:gray;&quot;&gt;--&gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;drawerArrowStyle&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;@style/MyDrawerArrowStyle&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
之後新增一個Style，大概像是這樣&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;MyDrawerArrowStyle&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;parent&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Widget.AppCompat.DrawerArrowToggle&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;color&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;@color/custom_toolbar&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;spinBars&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;item&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
以上筆記一下，也給大家參考看看了&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/6931856297019595269/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/6931856297019595269' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6931856297019595269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6931856297019595269'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2016/11/tips-xamrin-formsnavigationpagetoolbar.html' title='[Tips] Xamrin Forms中，NavigationPage上方Toolbar的相關設定'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-4066682323809294931</id><published>2016-11-07T22:31:00.002+08:00</published><updated>2016-11-08T01:30:10.553+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="xamarin"/><title type='text'>[Tips] Xamarin.Forms 由程式端呼叫出Picker選單</title><content type='html'>*Note 以下內容為Xamarin Forms，跨平台部分，專案使用的是PCL&lt;br /&gt;
&lt;br /&gt;
一般狀況來說，要使用像是在Windows Form上面，類似於ComboBox的下拉選單功能時，會使用&lt;a href=&quot;https://developer.xamarin.com/api/type/Xamarin.Forms.Picker/&quot; target=&quot;_blank&quot;&gt;Picker&lt;/a&gt;這個控制項來做，加到畫面上之後，就可以達成效果；但是預設的外觀有時候沒有辦法(或是比較難)去達到客製化，因此會需要一些繞道的方式。下面這邊簡單說一下筆者使用的方式。&lt;br /&gt;
&lt;br /&gt;
目標&lt;br /&gt;
&lt;hr /&gt;
顯示一段租體文字，文字右側有一個向下的箭頭圖案，像是這樣&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGnrAwoDhBG8G9RQmXVtqZWVxqlVDWymOCVf1LkEpipaffFAPkt0trYwZ71XD99WVChdBAX54NkPqHmFI7SbQxzDJzdYn_QMJDOde2sDfT9mMnDjShvbX2F5RVrmUhBZeBSfl8IRpa5P2g/s1600/sp01.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGnrAwoDhBG8G9RQmXVtqZWVxqlVDWymOCVf1LkEpipaffFAPkt0trYwZ71XD99WVChdBAX54NkPqHmFI7SbQxzDJzdYn_QMJDOde2sDfT9mMnDjShvbX2F5RVrmUhBZeBSfl8IRpa5P2g/s1600/sp01.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
XAML&lt;br /&gt;
&lt;hr /&gt;
XAML的部分想法上大致是&lt;br /&gt;
1.放一個Label作為主要的文字顯示&lt;br /&gt;
2.放一個Width為0的Picker來做選單的功能&lt;br /&gt;
3.加上一個Image做箭頭圖案的顯示&lt;br /&gt;
4.Image加上GestureRecognizers，來捕捉點選的動作&lt;br /&gt;
&lt;br /&gt;
內容節錄大致如下&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: rgb(30, 30, 30); font-family: monaco; font-size: 13px;&quot;&gt;&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Monaco;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #569cd6; font-family: Monaco;&quot;&gt;Label&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4; font-family: Monaco;&quot;&gt;TextColor&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8; font-family: Monaco;&quot;&gt;Green&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4; font-family: Monaco;&quot;&gt;FontSize&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8; font-family: Monaco;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4; font-family: Monaco;&quot;&gt;FontAttributes&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8; font-family: Monaco;&quot;&gt;Bold&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Monaco;&quot;&gt;&lt;span style=&quot;color: #92caf4; font-family: Monaco;&quot;&gt;     VerticalOptions&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8; font-family: Monaco;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4; font-family: Monaco;&quot;&gt;HorizontalOptions&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8; font-family: Monaco;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4; font-family: Monaco;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8; font-family: Monaco;&quot;&gt;------&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Monaco;&quot;&gt;&lt;span style=&quot;color: #92caf4; font-family: Monaco;&quot;&gt;     x:Name&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8; font-family: Monaco;&quot;&gt;labName&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey; font-family: Monaco;&quot;&gt;&amp;nbsp;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #cccccc; font-family: Monaco;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Picker&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;optName&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;StackLayout&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;VerticalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;HorizontalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #cccccc; font-family: Monaco;&quot;&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;           WidthRequest&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;16&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;HeightRequest&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;16&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Image&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;Aspect&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;AspectFit&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;Source&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;pic_01.png&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;VerticalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #cccccc; font-family: Monaco;&quot;&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;             HorizontalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Image.GestureRecognizers&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;TapGestureRecognizer&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;Tapped&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;optNameClick&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Image.GestureRecognizers&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Image&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;StackLayout&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;hr /&gt;
設定Picker寬度為0&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;optNameId&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;WidthRequest&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;;
&lt;/pre&gt;
而在optRoomIsClick的事件中，加入下面程式碼&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;optNameClick(&lt;span style=&quot;color: #569cd6;&quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;EventArgs&lt;/span&gt;&amp;nbsp;e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Device&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;BeginInvokeOnMainThread(()&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&amp;gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;optName&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Focus();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;
*只要呼叫Picker的Focus，就可以達到呼叫出選單的功能，但是必須確保呼叫的時候，是在主要的UI執行續上面，相關的討論，&lt;a href=&quot;https://forums.xamarin.com/discussion/59573/problem-reliably-giving-focus-to-a-picker-from-a-button-click-handler-on-ios&quot; target=&quot;_blank&quot;&gt;可以參考一下這篇文章&lt;/a&gt;。&lt;br /&gt;
&lt;br /&gt;
這樣就可以偽裝一下，達到預期中的效果了。矬劣的方式給大家參考，如果有更佳的方式，也請不吝提供一下參考資訊，感謝 :)</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/4066682323809294931/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/4066682323809294931' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4066682323809294931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4066682323809294931'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2016/11/tips-xamarinforms-picker_7.html' title='[Tips] Xamarin.Forms 由程式端呼叫出Picker選單'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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/AVvXsEiGnrAwoDhBG8G9RQmXVtqZWVxqlVDWymOCVf1LkEpipaffFAPkt0trYwZ71XD99WVChdBAX54NkPqHmFI7SbQxzDJzdYn_QMJDOde2sDfT9mMnDjShvbX2F5RVrmUhBZeBSfl8IRpa5P2g/s72-c/sp01.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-7001707677388259550</id><published>2016-11-07T22:31:00.001+08:00</published><updated>2016-11-08T01:27:51.316+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="xamarin"/><title type='text'>[Tips] Xamarin.Forms 由程式端呼叫出Picker選單</title><content type='html'>*Note 以下內容為Xamarin Forms，跨平台部分，專案使用的是PCL&lt;br /&gt;
&lt;br /&gt;
一般狀況來說，要使用像是在Windows Form上面，類似於ComboBox的下拉選單功能時，會使用&lt;a href=&quot;https://developer.xamarin.com/api/type/Xamarin.Forms.Picker/&quot; target=&quot;_blank&quot;&gt;Picker&lt;/a&gt;這個控制項來做，加到畫面上之後，就可以達成效果；但是預設的外觀有時候沒有辦法(或是比較難)去達到客製化，因此會需要一些繞道的方式。下面這邊簡單說一下筆者使用的方式。&lt;br /&gt;
&lt;br /&gt;
目標&lt;br /&gt;
&lt;hr /&gt;
顯示一段租體文字，文字右側有一個向下的箭頭圖案，像是這樣&amp;nbsp;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGnrAwoDhBG8G9RQmXVtqZWVxqlVDWymOCVf1LkEpipaffFAPkt0trYwZ71XD99WVChdBAX54NkPqHmFI7SbQxzDJzdYn_QMJDOde2sDfT9mMnDjShvbX2F5RVrmUhBZeBSfl8IRpa5P2g/s1600/sp01.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGnrAwoDhBG8G9RQmXVtqZWVxqlVDWymOCVf1LkEpipaffFAPkt0trYwZ71XD99WVChdBAX54NkPqHmFI7SbQxzDJzdYn_QMJDOde2sDfT9mMnDjShvbX2F5RVrmUhBZeBSfl8IRpa5P2g/s1600/sp01.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
XAML&lt;br /&gt;
&lt;hr /&gt;
XAML的部分想法上大致是&lt;br /&gt;
1.放一個Label作為主要的文字顯示&lt;br /&gt;
2.放一個Width為0的Picker來做選單的功能&lt;br /&gt;
3.加上一個Image做箭頭圖案的顯示&lt;br /&gt;
4.Image加上GestureRecognizers，來捕捉點選的動作&lt;br /&gt;
&lt;br /&gt;
內容節錄大致如下&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: rgb(30, 30, 30); font-family: monaco; font-size: 13px;&quot;&gt;&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Monaco;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Label&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;TextColor&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Green&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;FontSize&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;FontAttributes&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Bold&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;VerticalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;HorizontalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;------&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;labRoomID&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Picker&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;x:Name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;optRoomId&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;StackLayout&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;VerticalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;HorizontalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;WidthRequest&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;16&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;HeightRequest&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;16&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Image&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;Aspect&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;AspectFit&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;Source&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;pic_01.png&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;VerticalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;HorizontalOptions&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Center&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Image.GestureRecognizers&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;TapGestureRecognizer&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;Tapped&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;optRoomIdClick&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Image.GestureRecognizers&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;Image&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;StackLayout&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;br /&gt;
Code&lt;br /&gt;
&lt;hr /&gt;
設定Picker寬度為0&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;optRoomId&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;WidthRequest&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;;
&lt;/pre&gt;
而在optRoomIsClick的事件中，加入下面程式碼&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;optRoomIdClick(&lt;span style=&quot;color: #569cd6;&quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;EventArgs&lt;/span&gt;&amp;nbsp;e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Device&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;BeginInvokeOnMainThread(()&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&amp;gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;optRoomId&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Focus();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;
*只要呼叫Picker的Focus，就可以達到呼叫出選單的功能，但是必須確保呼叫的時候，是在主要的UI執行續上面，相關的討論，&lt;a href=&quot;https://forums.xamarin.com/discussion/59573/problem-reliably-giving-focus-to-a-picker-from-a-button-click-handler-on-ios&quot; target=&quot;_blank&quot;&gt;可以參考一下這篇文章&lt;/a&gt;。&lt;br /&gt;
&lt;br /&gt;
這樣就可以偽裝一下，達到預期中的效果了。矬劣的方式給大家參考，如果有更佳的方式，也請不吝提供一下參考資訊，感謝 :)</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/7001707677388259550/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/7001707677388259550' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/7001707677388259550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/7001707677388259550'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2016/11/tips-xamarinforms-picker.html' title='[Tips] Xamarin.Forms 由程式端呼叫出Picker選單'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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/AVvXsEiGnrAwoDhBG8G9RQmXVtqZWVxqlVDWymOCVf1LkEpipaffFAPkt0trYwZ71XD99WVChdBAX54NkPqHmFI7SbQxzDJzdYn_QMJDOde2sDfT9mMnDjShvbX2F5RVrmUhBZeBSfl8IRpa5P2g/s72-c/sp01.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-4128630648894972963</id><published>2016-09-22T16:38:00.000+08:00</published><updated>2016-09-22T16:38:53.493+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>Windows 10年度更新後，IIS 網站出現 503 錯誤</title><content type='html'>&lt;h2&gt;
問題描述&lt;/h2&gt;
首先，以筆者的狀況來說，這個503的錯誤出現的狀況，有幾個條件&lt;br /&gt;
&lt;br /&gt;
1.安裝了windows 10年度更新&lt;br /&gt;
&amp;nbsp; 目前筆者的win10版本(按下win+r ，之後輸入winver可以查詢)&lt;br /&gt;
&amp;nbsp;&lt;br /&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/b/R29vZ2xl/AVvXsEjdr3XI_Kr0464ULaieOZvxkEfWAuPrbtMtW9EduS3r035JcCMBo-FV9YlJ2DZSlBYNz2ozEm2IgF_wwnHtqMIO9hmOFSDRD4710fNKkmpyfnGHC1USGMQoLuyoRRAry8xTmZJu1LhUIQWB/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdr3XI_Kr0464ULaieOZvxkEfWAuPrbtMtW9EduS3r035JcCMBo-FV9YlJ2DZSlBYNz2ozEm2IgF_wwnHtqMIO9hmOFSDRD4710fNKkmpyfnGHC1USGMQoLuyoRRAry8xTmZJu1LhUIQWB/s400/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
2.IIS的應用程式集區(AppPool)，啟用了32位元應用程式&lt;br /&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/b/R29vZ2xl/AVvXsEgmwZRzaeY3t170QjEwy2IC5bNC_SxRZCzzFGNkk_7PZPmuudiXWSTZVPvrHV0VosXCYGn6zXm55Oe-bBoyk27zLkUDoMi9NI2aZNcQYoe-TH5_joHqmDoFSHv5ROgndqtMccN1xND14ZyS/s1600/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;276&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmwZRzaeY3t170QjEwy2IC5bNC_SxRZCzzFGNkk_7PZPmuudiXWSTZVPvrHV0VosXCYGn6zXm55Oe-bBoyk27zLkUDoMi9NI2aZNcQYoe-TH5_joHqmDoFSHv5ROgndqtMccN1xND14ZyS/s400/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
這個狀況下，IIS網站都無法順利開啟。查看事件檢視器(Event viewer)，會看到一個來源為IIS-W3SVC-WP的錯誤，錯誤訊息是『無法下載 C:\WINDOWS\system32\inetsrv\aspnetcore.dll 模組 DLL。資料為該錯誤。』&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
問題的解決方式&lt;/h2&gt;
測試時，只要將『啟用32位元應用程式』的設定設為False，網站就可以順利開啟，但這也沒有完全解決，而且筆者有一個API站台，由於引用native dll，需要啟用這個設定，因此這個解決方式不理想。&lt;br /&gt;
&lt;br /&gt;
詢問了一下google大神，發現下面這篇有著類似的情況&lt;br /&gt;
&lt;a href=&quot;https://github.com/aspnet/Home/issues/1583&quot; target=&quot;_blank&quot;&gt;aspnetcore.dll failed to load&lt;/a&gt;&lt;br /&gt;
依照文章所提的部分，最後筆者是選擇了重新安裝&lt;a href=&quot;https://www.microsoft.com/net/core#windows&quot; target=&quot;_blank&quot;&gt;.Net Core - VS2015 Tool Preview 2&lt;/a&gt;這個方式(從連結的位置下載後，執行安裝，之後選擇修復)。測試之侯就可以正常顯示了，如果有遇到相同狀況的話，可以參考看看</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/4128630648894972963/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/4128630648894972963' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4128630648894972963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4128630648894972963'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2016/09/windows-10iis-503.html' title='Windows 10年度更新後，IIS 網站出現 503 錯誤'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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/AVvXsEjdr3XI_Kr0464ULaieOZvxkEfWAuPrbtMtW9EduS3r035JcCMBo-FV9YlJ2DZSlBYNz2ozEm2IgF_wwnHtqMIO9hmOFSDRD4710fNKkmpyfnGHC1USGMQoLuyoRRAry8xTmZJu1LhUIQWB/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-4409766159986872516</id><published>2016-03-30T18:29:00.002+08:00</published><updated>2016-03-30T18:29:54.721+08:00</updated><title type='text'>開啟cshtml檔案時，出現『並未將物件參考設定為物件執行個體』的錯誤訊息</title><content type='html'>筆者的開發環境為VS2015企業版加上Win10，身為更新控，每次有任何更新(擴充套件等)，都會立馬進行更新的動作；平常也不常寫ASP.Net MVC相關的東東；今天開啟一個專案，想要凱起view(xxxx.cshtml)來查看時，居然出現『並未將物件參考設定為物件執行個體』的錯誤，所有的view都不能看。一想到如果要重灌VS的話，整個背後就開始冷汗直流..&lt;br /&gt;
&lt;br /&gt;
幸好，找了一下相關資料，在這一篇的討論中有提到相關的狀況&lt;br /&gt;
&lt;a href=&quot;https://github.com/aspnet/Tooling/issues/276&quot; target=&quot;_blank&quot;&gt;Visual Studio doesn&#39;t open cshtml files #276&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
筆者先測試的方式是刪除ComponentModelCache這個資料夾，節錄原文如下&lt;br /&gt;
&lt;br /&gt;
『Delete the content of %LocalAppData%\Microsoft\VisualStudio\14.0\ComponentModelCache』&lt;br /&gt;
&lt;br /&gt;
之後重新啟動VS之後，就可以開啟cshtml的檔案了，筆記一下以免日後遇到類似的狀況，有google真好 Orz</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/4409766159986872516/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/4409766159986872516' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4409766159986872516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4409766159986872516'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2016/03/cshtml.html' title='開啟cshtml檔案時，出現『並未將物件參考設定為物件執行個體』的錯誤訊息'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-4279056601061654369</id><published>2016-02-26T11:55:00.000+08:00</published><updated>2016-02-26T11:55:02.648+08:00</updated><title type='text'>[Memo]修改UDP接收緩衝區大小</title><content type='html'>利用TCP/IP與設備做溝通時，通常設備都需要去設定一個IP位置，而當忘記了設備的IP設定是多少的時候，通常會利用UDP的方式發送廣播封包，讓設備可以回應自己的一些資訊，少量設備的情況下不會有太大的問題，但如果設備的數量比較多，或是廣播後設備回應的資料比較多，有可能會遇到應該有200台設備在線上，但是只抓到100台這樣類似的狀況&lt;br /&gt;
&lt;br /&gt;
要處理這個狀況，其中一個方式是加大緩衝區的大小，可以參考下面這篇文章來做&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/18985816/change-default-socket-buffer-size-under-windows&quot; target=&quot;_blank&quot;&gt;Change default socket buffer size under Windows&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/4279056601061654369/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/4279056601061654369' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4279056601061654369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4279056601061654369'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2016/02/memoudp.html' title='[Memo]修改UDP接收緩衝區大小'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-1576939854061706649</id><published>2016-02-26T11:12:00.000+08:00</published><updated>2016-02-26T11:12:00.855+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><title type='text'>[Memo] Override code completion in Android studio</title><content type='html'>這篇筆記一下；在撰寫Android的應用程式時，常常都會需要去做事件的覆寫，像是button的click事件，或是繼承/實作介面等等，都會需要用到，但是在程式碼自動完成這部分卻沒有自動的提示；因此常常會發生『有多少東西是我可以覆寫的?』、『帶入的參數類型是啥?』就卡住了，今天找了一下，原來還是有這個功能的(可以&lt;a href=&quot;https://www.jetbrains.com/idea/help/overriding-methods-of-a-superclass.html&quot; target=&quot;_blank&quot;&gt;參考一下IntelliJ的這篇文章&lt;/a&gt;，裡面有詳細的說明)，步驟大概是這樣&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;先將游標移動到你要覆寫事件的類別上(例如Activity)&lt;/li&gt;
&lt;li&gt;按下『ctrl+o』&lt;/li&gt;
&lt;li&gt;就會跳出一個視窗讓你選擇要覆寫的事件&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
畫面會像是下面這樣&lt;br /&gt;
&lt;br /&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/b/R29vZ2xl/AVvXsEgMvSywJFZRke7EIxd-qn19Tnub3U4ypFe6_Y351D8suyR1s0uarAvmZQdoRlO7Tdy9ir9CsfdiWj1ApVghHN9UmAP3Y-hhjQ-_5u07F3ou8MXf5G4vvTc2SoEB3miBhzuSxKDirisagnbZ/s1600/as1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;374&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMvSywJFZRke7EIxd-qn19Tnub3U4ypFe6_Y351D8suyR1s0uarAvmZQdoRlO7Tdy9ir9CsfdiWj1ApVghHN9UmAP3Y-hhjQ-_5u07F3ou8MXf5G4vvTc2SoEB3miBhzuSxKDirisagnbZ/s640/as1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/1576939854061706649/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/1576939854061706649' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/1576939854061706649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/1576939854061706649'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2016/02/memo-override-code-completion-in.html' title='[Memo] Override code completion in Android studio'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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/AVvXsEgMvSywJFZRke7EIxd-qn19Tnub3U4ypFe6_Y351D8suyR1s0uarAvmZQdoRlO7Tdy9ir9CsfdiWj1ApVghHN9UmAP3Y-hhjQ-_5u07F3ou8MXf5G4vvTc2SoEB3miBhzuSxKDirisagnbZ/s72-c/as1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-5941902502712720826</id><published>2015-03-22T21:24:00.000+08:00</published><updated>2015-03-22T21:24:13.304+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="備忘"/><title type='text'>利用IP位置查詢地理位置</title><content type='html'>最近需要從IP位置來查詢地理位置，例如像是blog要分析訪客來源位置的類似功能，查詢了一下，似乎都是要從第三方提供的API去做反查，這邊將相關的搜尋先記錄一下&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://ip.taobao.com/instructions.php&quot; target=&quot;_blank&quot;&gt;淘寶提供的IP地址庫&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ip.ez2o.com.tw/APIS.aspx&quot; target=&quot;_blank&quot;&gt;搜IP(每日API呼叫次數限制)&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
需要的朋友可以參考看看；如果有更好的方式也請不吝分享一下給小弟哩 =.,=&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/5941902502712720826/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/5941902502712720826' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/5941902502712720826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/5941902502712720826'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2015/03/ip.html' title='利用IP位置查詢地理位置'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-4730253837203532847</id><published>2015-01-19T18:47:00.001+08:00</published><updated>2015-01-19T18:47:51.250+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="udp"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Basic"/><category scheme="http://www.blogger.com/atom/ns#" term="網路"/><title type='text'>在Win7/Win8下傳送UDP廣播封包</title><content type='html'>在撰寫UDP的應用軟體時，有時候會遇到需要發送廣播封包的需求，而這種情況下，就會選擇使用UDP的方式來傳送，而最簡單的方式就是使用UdpClient來處理了；例如說在不知道對方的IP位置的情況，而對方有做類似IpSearch的功能時，就可以利用廣播的方式讓對方將自己目前的IP位置給傳送回來。&lt;br /&gt;
&lt;br /&gt;
廣播封包的發送通常來說動作就是向255.255.255.255這個廣播位置去做資料的發送，然後再去讀取回送的資料，而本篇筆記主要是在Windows XP跟之後的作業系統(Windows7/WIndows8)之間的差異性&lt;br /&gt;
&lt;br /&gt;
筆者在早期有撰寫了一個簡單的小軟體，來做廣播處理的動作，在發送UDP封包的部分，程式碼大致如下&lt;br /&gt;
&lt;pre style=&quot;background: #282424; color: #f3f3f3; font-family: Monaco; font-size: 12; font-weight: bold;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;bEP&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IPEndPoint&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;IPAddress&lt;/span&gt;.Broadcast,&amp;nbsp;4550)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Client&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UdpClient&lt;/span&gt;(4550,&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;AddressFamily&lt;/span&gt;.InterNetwork)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Client.EnableBroadcast&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;True&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Client.Send(btySend,&amp;nbsp;btySend.Length,&amp;nbsp;&lt;span style=&quot;color: #6afd51;&quot;&gt;&quot;255.255.255.255&quot;&lt;/span&gt;,&amp;nbsp;4550)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Threading.&lt;span style=&quot;color: cyan;&quot;&gt;Thread&lt;/span&gt;.Sleep(&lt;span style=&quot;color: #a2c4fd;&quot;&gt;CInt&lt;/span&gt;(txtDelay.Text))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Do&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;&amp;nbsp;Client.Available&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;btyRecv&amp;nbsp;=&amp;nbsp;Client.Receive(bEP)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;&amp;nbsp;btyRecv&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;IsNot&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Nothing&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;AndAlso&lt;/span&gt;&amp;nbsp;btyRecv.Length&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #75ffa2;&quot;&gt;&#39;&#39;處理接收到資料後的事情&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Else&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Exit&amp;nbsp;Do&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Loop&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Client.Client.Close()&lt;/pre&gt;
&lt;br /&gt;
在Windows XP上面一切相安無事，也能正常地從遠端抓到回傳的資料；但到了Windows 7之後，怪怪，不論如何都沒有辦法取回遠端的回應，而利用Wireshark之類的封包監控軟體去查看網路的傳送狀況，X! 任何東西都沒有送出來，開VM跑XP，同樣的程式又可以運作正常，這是啥狀況 Orz Orz&lt;br /&gt;
&lt;br /&gt;
這個狀況一開始實在摸不著頭緒，直到今天想說再搜尋一下資料，總算理出一些端倪；解決方式的源頭來自下面這篇討論&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/6290329/why-is-my-udp-broadcast-failing&quot;&gt;http://stackoverflow.com/questions/6290329/why-is-my-udp-broadcast-failing&lt;/a&gt;&lt;br /&gt;
其中有一段提到&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 19.5px;&quot;&gt;『Windows 7 handles 255.255.255.255 broadcast in a different way』&lt;/span&gt;&lt;br /&gt;
往下追之後才驚覺原來是作業系統對於廣播位址的處理不同了，而在Windows7/Windows8要綁定一個IP地址之後才能正常的發送以及接收了，有了這個線索之後，轉而利用socket來處理，並且修改相關程式碼如下&lt;br /&gt;
&lt;pre style=&quot;background: #282424; color: #f3f3f3; font-family: Monaco; font-size: 12; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;        Dim&lt;/span&gt;&amp;nbsp;bEP&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IPEndPoint&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;IPAddress&lt;/span&gt;.Any,&amp;nbsp;4550)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;s&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Socket&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;AddressFamily&lt;/span&gt;.InterNetwork,&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;SocketType&lt;/span&gt;.Dgram,&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;ProtocolType&lt;/span&gt;.Udp)
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;host&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IPHostEntry&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;host&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Dns&lt;/span&gt;.GetHostEntry(&lt;span style=&quot;color: cyan;&quot;&gt;Dns&lt;/span&gt;.GetHostName)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;For&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Each&lt;/span&gt;&amp;nbsp;IP&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IPAddress&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;In&lt;/span&gt;&amp;nbsp;host.AddressList
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;&amp;nbsp;(IP.AddressFamily&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;AddressFamily&lt;/span&gt;.InterNetwork)&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.Bind(&lt;span style=&quot;color: #a2c4fd;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IPEndPoint&lt;/span&gt;(IP,&amp;nbsp;4550))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Exit&amp;nbsp;For&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Next&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.EnableBroadcast&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;True&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.SetSocketOption(&lt;span style=&quot;color: cyan;&quot;&gt;SocketOptionLevel&lt;/span&gt;.Socket,&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;SocketOptionName&lt;/span&gt;.Broadcast,&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;True&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.SendTo(btySend,&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IPEndPoint&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;IPAddress&lt;/span&gt;.Broadcast,&amp;nbsp;4550))
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;For&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;&amp;nbsp;=&amp;nbsp;0&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;To&lt;/span&gt;&amp;nbsp;30
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Threading.&lt;span style=&quot;color: cyan;&quot;&gt;Thread&lt;/span&gt;.Sleep(100)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Application&lt;/span&gt;.DoEvents()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Next&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;ReDim&lt;/span&gt;&amp;nbsp;btyRecv(1024)
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Do&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;&amp;nbsp;s.Available&amp;nbsp;&amp;gt;&amp;nbsp;0&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;aa&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;&amp;nbsp;=&amp;nbsp;s.ReceiveFrom(btyRecv,&amp;nbsp;bEP)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;&amp;nbsp;btyRecv&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;IsNot&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Nothing&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;AndAlso&lt;/span&gt;&amp;nbsp;aa&amp;nbsp;&amp;gt;=&amp;nbsp;76&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #75ffa2;&quot;&gt;&#39;&#39;處理接收到資料後的事情&lt;/span&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Else&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Exit&amp;nbsp;Do&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Loop&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s.Close()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;s&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Nothing&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
改用這個方式總算能夠正常的在Windows 8的作業系統上正常的傳送以及接收UDP的廣播封包了；拖了好長時間，總算能夠宣布破案! 相關動作特別筆記一下，以免年紀大了失憶情況嚴重 XD</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/4730253837203532847/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/4730253837203532847' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4730253837203532847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/4730253837203532847'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2015/01/win7win8udp.html' title='在Win7/Win8下傳送UDP廣播封包'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-6979019694052833615</id><published>2014-10-31T13:29:00.000+08:00</published><updated>2014-10-31T13:29:15.970+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>如何讓Restful Service回應圖片</title><content type='html'>在一般利用WCF還做restful的服務，回應的部分可以指定要輸出為XML格式或是JSON格式，那麼如果說想要直接回應一張圖片的時候應該要怎麼進行呢？&lt;br /&gt;
&lt;br /&gt;
手上是用WPF的應用程式，先Self Host一個restful service上去，之後來處理回應圖片的部分，下面是參考資訊來源&lt;br /&gt;
Self host&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/20805317/how-to-set-up-wcf-self-hosted-rest-service&quot;&gt;http://stackoverflow.com/questions/20805317/how-to-set-up-wcf-self-hosted-rest-service&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Response image&lt;br /&gt;
&lt;a href=&quot;http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/fetching-image-using-wcf-rest-service/&quot;&gt;http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/fetching-image-using-wcf-rest-service/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/12781173/cant-return-image-from-wcf-rest-service&quot;&gt;http://stackoverflow.com/questions/12781173/cant-return-image-from-wcf-rest-service&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
主要的方式便是將圖片轉換成Stream，之後http這邊設定回應的類型是image，這樣就可以達成想要的樣子了，下面來看看程式碼的部分吧&lt;br /&gt;
&lt;br /&gt;
Interface&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceContract&lt;/span&gt;]
&lt;span style=&quot;color: #569cd6;&quot;&gt;interface&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;IMyService&lt;/span&gt;
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;OperationContract&lt;/span&gt;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WebInvoke&lt;/span&gt;(UriTemplate&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;/GetImage&quot;&lt;/span&gt;,&amp;nbsp;Method&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;GET&quot;&lt;/span&gt;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RequestFormat&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;WebMessageFormat&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Xml,&amp;nbsp;ResponseFormat&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;WebMessageFormat&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Xml,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BodyStyle&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;WebMessageBodyStyle&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Bare)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Stream&lt;/span&gt;&amp;nbsp;GetImage();
}&lt;/pre&gt;
很簡單的只有一個GetImage的Method&lt;br /&gt;
&lt;br /&gt;
主程式這邊在Loaded事件中，去執行Self Host的相關動作&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;StartHost()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Uri&lt;/span&gt;&amp;nbsp;httpUrl&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Uri&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Format(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;http://{0}:{1}/&quot;&lt;/span&gt;,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Properties&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Settings&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Default&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;HostName,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Properties&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Settings&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Default&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;HostPort));
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt;&amp;nbsp;host&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WebServiceHost&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color: #4ec9b0;&quot;&gt;MainWindow&lt;/span&gt;),&amp;nbsp;httpUrl);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt;&amp;nbsp;binding&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WebHttpBinding&lt;/span&gt;();&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;host&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;AddServiceEndpoint(&lt;span style=&quot;color: #569cd6;&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color: #b8d7a3;&quot;&gt;IMyService&lt;/span&gt;),&amp;nbsp;binding,&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;&quot;&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceDebugBehavior&lt;/span&gt;&amp;nbsp;stp&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;host&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Description&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Behaviors&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Find&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceDebugBehavior&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;gt;&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stp&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;HttpHelpPageEnabled&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;false&lt;/span&gt;;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;host&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Open();
}&lt;/pre&gt;
&lt;br /&gt;
介面實作的部分會大概想是這樣子,這邊是複製整個畫面的目前樣子&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 13;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;GetImage()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Bitmap&lt;/span&gt;&amp;nbsp;b&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Bitmap&lt;/span&gt;(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;span style=&quot;color: #569cd6;&quot;&gt;int&lt;/span&gt;)System&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Windows&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;SystemParameters&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;PrimaryScreenWidth,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;span style=&quot;color: #569cd6;&quot;&gt;int&lt;/span&gt;)System&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Windows&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;SystemParameters&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;PrimaryScreenHeight);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;using&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Graphics&lt;/span&gt;&amp;nbsp;g&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Graphics&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;FromImage(b))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Windows&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Point&lt;/span&gt;&amp;nbsp;pt&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;System&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Windows&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Point&lt;/span&gt;(&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;g&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;CopyFromScreen((&lt;span style=&quot;color: #569cd6;&quot;&gt;int&lt;/span&gt;)pt&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;X,&amp;nbsp;(&lt;span style=&quot;color: #569cd6;&quot;&gt;int&lt;/span&gt;)pt&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Y,&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;,&amp;nbsp;b&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Size);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;capturedImage&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;b;
}
 
&lt;span style=&quot;color: #9b9b9b;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/span&gt;&amp;nbsp;Service&amp;nbsp;implement
 
&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Stream&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;IMyService&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;GetImage()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;MemoryStream&lt;/span&gt;&amp;nbsp;fs&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;MemoryStream&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;GetImage();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;capturedImage&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Save(fs,&amp;nbsp;System&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Drawing&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Imaging&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ImageFormat&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Jpeg);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fs&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Position&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;0&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WebOperationContext&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Current&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;OutgoingResponse&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;ContentType&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;image/jpeg&quot;&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;return&lt;/span&gt;&amp;nbsp;fs;
}
 
&lt;span style=&quot;color: #9b9b9b;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endregion&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
要特別注意的地方是MemoryStream在Save之後，位置會跑到最後的地方；不改變Position的話，使用瀏覽器去察看回應的時候就只會看到一個『叉燒包』了，是不是很簡單呢？趕緊動手來玩玩看吧!</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/6979019694052833615/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/6979019694052833615' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6979019694052833615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6979019694052833615'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2014/10/restful-service.html' title='如何讓Restful Service回應圖片'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-7113609596301884867</id><published>2014-02-07T17:11:00.001+08:00</published><updated>2014-02-07T17:11:55.384+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="csharp"/><category scheme="http://www.blogger.com/atom/ns#" term="備忘"/><title type='text'>如何列出系統中的印表機，以及指定印表機來做列印</title><content type='html'>這篇筆記一下小技巧，如果在軟體中，想要列印東西到指定的印表機上，可以利用&lt;a href=&quot;http://msdn.microsoft.com/zh-tw/library/system.drawing.printing.printersettings.printername(v=vs.110).aspx&quot;&gt;PrinterSettings.PrinterName&lt;/a&gt;的屬性來做，很簡單的就可以指定要使用的印表機，那麼如果要知道系統中所有已經安裝的印表機名稱，則可以用&lt;a href=&quot;http://msdn.microsoft.com/zh-tw/library/system.drawing.printing.printersettings.installedprinters(v=vs.110).aspx&quot;&gt;PrinterSettings.InstalledPrinters&lt;/a&gt;來做，下面是簡單的測試程式碼&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;System&lt;/span&gt;;
&lt;span style=&quot;color: #569cd6;&quot;&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Drawing&lt;/span&gt;;
&lt;span style=&quot;color: #569cd6;&quot;&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Drawing&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Printing&lt;/span&gt;;
&lt;span style=&quot;color: #569cd6;&quot;&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Windows&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Forms&lt;/span&gt;;
 
&lt;span style=&quot;color: #569cd6;&quot;&gt;namespace&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;WindowsFormsApplication1&lt;/span&gt;
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;partial&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Form1&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Form&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;PrintDocument&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;printer&lt;/span&gt;;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;Form1&lt;/span&gt;()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;InitializeComponent&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;printer&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;PrintDocument&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;printer&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;PrintPage&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;printer_PrintPage&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;item&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;in&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Drawing&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Printing&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;PrinterSettings&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;InstalledPrinters&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;cboPrint&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Items&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Add&lt;/span&gt;(&lt;span style=&quot;color: white;&quot;&gt;item&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;printer_PrintPage&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;object&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;sender&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;PrintPageEventArgs&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;e&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Graphics&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;DrawString&lt;/span&gt;(&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;12345&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Font&lt;/span&gt;(&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;Arial&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;14&lt;/span&gt;),&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Brushes&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Black&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;10&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #b5cea8;&quot;&gt;10&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;HasMorePages&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;false&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;btnShowIP_Click&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;object&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;sender&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;EventArgs&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;e&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;printer&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;PrinterSettings&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;PrinterName&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;cboPrint&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Text&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;printer&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Print&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/7113609596301884867/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/7113609596301884867' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/7113609596301884867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/7113609596301884867'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2014/02/blog-post.html' title='如何列出系統中的印表機，以及指定印表機來做列印'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-305607675413702844</id><published>2014-01-22T17:04:00.000+08:00</published><updated>2014-01-22T17:04:03.159+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Service"/><title type='text'>監控服務(Service)的目前狀態</title><content type='html'>一般撰寫完Service程式之後，Service都是在背景持續的作業，前景部分是不會看到任何的介面的，那麼就會有一些延伸的需求產生。例如說如何知道目前Service的狀態，或是怎麼從Service中取出一些目前運作的訊息等等；這邊就先來看看要怎麼去取得Service的狀態。&lt;br /&gt;
&lt;br /&gt;
要取得目前服務的狀態其實在實作上非常的簡單，只要利用ServiceController的功能就可以達到了，例如下面這個範例可以列出目前系統中的所有服務以及該服務是否支援『停止』的動作&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;using&lt;/span&gt;&amp;nbsp;System;
&lt;span style=&quot;color: #569cd6;&quot;&gt;using&lt;/span&gt;&amp;nbsp;System&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;ServiceProcess;
&lt;span style=&quot;color: #569cd6;&quot;&gt;using&lt;/span&gt;&amp;nbsp;System&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Windows&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Forms;
 
&lt;span style=&quot;color: #569cd6;&quot;&gt;namespace&lt;/span&gt;&amp;nbsp;svcMonitor
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;partial&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Form1&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Form&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceController&lt;/span&gt;[]&amp;nbsp;svcList;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&amp;nbsp;Form1()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;btnRefresh_Click(&lt;span style=&quot;color: #569cd6;&quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;EventArgs&lt;/span&gt;&amp;nbsp;e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;svcList&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceController&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;GetServices();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt;&amp;nbsp;item&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;in&lt;/span&gt;&amp;nbsp;svcList)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txtMessage&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Text&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+=&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;item&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;ServiceName&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+&lt;/span&gt;&amp;nbsp;item&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Status&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;ToString()&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Environment&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;NewLine;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;txtMessage&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Text&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+=&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+&lt;/span&gt;&amp;nbsp;item&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;ServiceName&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;&amp;nbsp;:&amp;nbsp;&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+&lt;/span&gt;&amp;nbsp;item&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;CanStop&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Environment&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;NewLine;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;
&lt;br /&gt;
從這邊可以看出，直接呼叫ServiceController.GetServices，就可以取回系統的服務清單，之後如果想要只去管理自己的Service時，利用ServiceName的屬性來過濾就可以了。&lt;br /&gt;
&lt;br /&gt;
而ServiceController.GetServices傳回的是ServiceController的陣列，取得之後，就可以呼叫方法來啟動或是停止Service，例如說稍微修改一下上面的程式碼&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;btnRefresh_Click(&lt;span style=&quot;color: #569cd6;&quot;&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;EventArgs&lt;/span&gt;&amp;nbsp;e)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;svcList&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceController&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;GetServices();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt;&amp;nbsp;item&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;in&lt;/span&gt;&amp;nbsp;svcList)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(item&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;ServiceName&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;==&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;MyServiceName&quot;&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(item&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Status&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;!=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;ServiceControllerStatus&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Running)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;item&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;Start()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;
&lt;br /&gt;
這樣就可以判斷如果Service不是在執行中的狀態的話，就把Service給啟動起來；是不是非常簡單呢 :)&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/305607675413702844/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/305607675413702844' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/305607675413702844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/305607675413702844'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2014/01/service.html' title='監控服務(Service)的目前狀態'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-6552363718732764440</id><published>2014-01-21T16:16:00.005+08:00</published><updated>2014-01-21T16:19:12.675+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Visual Studio 2013 update 1</title><content type='html'>Visual Studio 2013 Update 1 正式版本已經推出了，有使用的朋友們可以參考下面連結進行更新&lt;br /&gt;
&lt;br /&gt;
Reference&lt;br /&gt;
&lt;a href=&quot;http://blogs.msdn.com/b/bharry/archive/2014/01/20/vs-2013-1-update-1-is-available.aspx&quot;&gt;http://blogs.msdn.com/b/bharry/archive/2014/01/20/vs-2013-1-update-1-is-available.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Download link&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/zh-tw/download/details.aspx?id=41650&quot;&gt;http://www.microsoft.com/zh-tw/download/details.aspx?id=41650&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Happy coding !</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/6552363718732764440/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/6552363718732764440' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6552363718732764440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6552363718732764440'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2014/01/visual-studio-2013-update-1.html' title='Visual Studio 2013 update 1'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-2860419162698414043</id><published>2013-12-25T17:58:00.001+08:00</published><updated>2013-12-25T18:00:51.915+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio"/><title type='text'>Tips 在Visual Studio中要如何設定讓版本號可以自動變換(增量)</title><content type='html'>當程式開發到一個段落之後，通常我們會在Visual Studio當中，加上版本號碼，用來辨別release出去的軟體是哪一個版本，而在Visual Studio裡面，設定版本號碼的地方，直接打上『*』是不能夠輸入的，像是下圖&lt;br /&gt;
&lt;br /&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/b/R29vZ2xl/AVvXsEiNNenh-ClaIg0aS8U7YYALzWlB36xeHn3g5ZWfgqHDeceCnBn0Sll4QQ0lg1a7SeU6ExBCeWHd1JwqtMPEdeWF7lDZ5ZafVr1MdbCyERxQ8GgaulP9b2VTEro47IGhRKAJvtXQR1WRgmfG/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;62&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNNenh-ClaIg0aS8U7YYALzWlB36xeHn3g5ZWfgqHDeceCnBn0Sll4QQ0lg1a7SeU6ExBCeWHd1JwqtMPEdeWF7lDZ5ZafVr1MdbCyERxQ8GgaulP9b2VTEro47IGhRKAJvtXQR1WRgmfG/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
那麼應該怎麼設定呢？這時候要直接修改一下檔案內容&lt;br /&gt;
&lt;br /&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/b/R29vZ2xl/AVvXsEjz8U72Y8oRtSSy8qJCdznOHRxZoRltYxTZ2DpAi5uw75ZLnPOATJuBsPGZPrnpEDz1kSBQTaRvMCbC0Zw5awGsp2tuVmhjYiprWaTf62s8N_2h2D64VhbHGTDpEqB4PKlElMkQ5X-cE2Uf/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;107&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz8U72Y8oRtSSy8qJCdznOHRxZoRltYxTZ2DpAi5uw75ZLnPOATJuBsPGZPrnpEDz1kSBQTaRvMCbC0Zw5awGsp2tuVmhjYiprWaTf62s8N_2h2D64VhbHGTDpEqB4PKlElMkQ5X-cE2Uf/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
開啟之後，在最下方的地方修改成類似這個樣子&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;[&lt;span style=&quot;color: #569cd6;&quot;&gt;assembly&lt;/span&gt;:&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;AssemblyVersion&lt;/span&gt;(&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;1.0.3.*&quot;&lt;/span&gt;)]
&lt;span style=&quot;color: #608b4e;&quot;&gt;//[assembly:&amp;nbsp;AssemblyFileVersion(&quot;1.2.0&quot;)]&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
記得AssemblyFileVersion這行要註解掉才會有用喔</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/2860419162698414043/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/2860419162698414043' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/2860419162698414043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/2860419162698414043'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2013/12/tips-visual-studio.html' title='Tips 在Visual Studio中要如何設定讓版本號可以自動變換(增量)'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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/AVvXsEiNNenh-ClaIg0aS8U7YYALzWlB36xeHn3g5ZWfgqHDeceCnBn0Sll4QQ0lg1a7SeU6ExBCeWHd1JwqtMPEdeWF7lDZ5ZafVr1MdbCyERxQ8GgaulP9b2VTEro47IGhRKAJvtXQR1WRgmfG/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-6313767117516873185</id><published>2013-11-11T10:46:00.000+08:00</published><updated>2013-11-11T10:46:20.132+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>[WPF] 如何取得觸發快顯功能表(右鍵選單)的來源控制項呢？</title><content type='html'>在WPF中，右鍵選單的功能是利用ContextMenu來達成，如果是用程式碼的方式來幫控制項添加右鍵選單，會大概是下面的方式&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Image&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;image&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Image&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;MenuItem&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;propertyMenu&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;MenuItem&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;propertyMenu&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Header&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;Propertys...&quot;&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;propertyMenu&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Click&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;+=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;ImagePropertyMenu_Click&lt;/span&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;image&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;ContextMenu&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ContextMenu&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;image&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;ContextMenu&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Items&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Add&lt;/span&gt;(&lt;span style=&quot;color: white;&quot;&gt;propertyMenu&lt;/span&gt;);&lt;/pre&gt;
&lt;br /&gt;
在上面的程式碼中，可以看到在新增右鍵選單的同時，也將Click事件掛載上去了；事件掛載的程式碼會大約是這樣&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;ImagePropertyMenu_Click&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;object&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;sender&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;RoutedEventArgs&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;e&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WinPropertys&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;propertyWindow&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WinPropertys&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;propertyWindow&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;ShowDialog&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;
&lt;br /&gt;
在一般的使用情形下，這沒有任何問題，如果只是單純的要呼叫顯示其他的window；但是如果是要做一個像是屬性設定的功能，例如以這個例子來說，我的來源控制項是一個Image，呼叫出來的新視窗中，我希望可以顯示出這個Image的寬度、高度、位置等資訊，那麼應該怎麼處理？在MenuItem的Click事件中，你可以看到不論是e.Source或是Sender，觸發這個事件的都是MenuItem，所以不能夠直接抓到觸發的來源控制項，這個時候就要利用下面的方式來抓取了&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;ImagePropertyMenu_Click&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;object&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;sender&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;RoutedEventArgs&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;e&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WinPropertys&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;propertyWindow&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WinPropertys&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;propertyWindow&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;mapedElement&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;span style=&quot;color: #4ec9b0;&quot;&gt;FrameworkElement&lt;/span&gt;)(&lt;span style=&quot;color: white;&quot;&gt;e&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Source&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;as&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;MenuItem&lt;/span&gt;)&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Parent&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;GetValue&lt;/span&gt;(&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ContextMenu&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;PlacementTargetProperty&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;propertyWindow&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;ShowDialog&lt;/span&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;span style=&quot;color: #9b9b9b;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endregion&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
主要就是利用ContextMenu的PlacementTargetProperty屬性，詳細的說明可以參考&lt;a href=&quot;http://msdn.microsoft.com/zh-tw/library/system.windows.controls.contextmenu.placementtargetproperty(v=vs.100).aspx&quot; target=&quot;_blank&quot;&gt;MSDN的說明&lt;/a&gt;，小技巧給大家參考看看了&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/6313767117516873185/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/6313767117516873185' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6313767117516873185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6313767117516873185'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2013/11/wpf.html' title='[WPF] 如何取得觸發快顯功能表(右鍵選單)的來源控制項呢？'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-8206350417114476816</id><published>2013-08-22T12:54:00.000+08:00</published><updated>2013-08-22T12:56:22.110+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Restful"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><title type='text'>WCF服務中如何同時啟用SOAP與REST兩種類型的服務端點</title><content type='html'>在WCF服務中，除了原先SOAP的服務外，我們也可以建立REST的服務類型，那如果說要在同一支服務當中，同時建立兩種的話應該要怎麼做呢？這邊先簡單筆記一下，之後有時間再來補齊&lt;br /&gt;
&lt;br /&gt;
主要的方式就是要建立兩個EndPoint，一個給SOAP用，一個給REST用；而Interface的部分也要建立兩份，比如說REST的介面像是下面這樣&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceContract&lt;/span&gt;]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;interface&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;IRestfulService&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&lt;span style=&quot;color: #9b9b9b;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/span&gt;&amp;nbsp;Member&amp;nbsp;query
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;OperationContract&lt;/span&gt;()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WebGet&lt;/span&gt;(&lt;span style=&quot;color: white;&quot;&gt;UriTemplate&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;/Members/Query/MemberId/{memberId}&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;ResponseFormat&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;WebMessageFormat&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Json&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;BodyStyle&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;WebMessageBodyStyle&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Wrapped&lt;/span&gt;)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;restGetMemberByMemberId&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;memberId&lt;/span&gt;);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;OperationContract&lt;/span&gt;()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WebGet&lt;/span&gt;(&lt;span style=&quot;color: white;&quot;&gt;UriTemplate&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;/Members/Query/CardUid/{cardUid}&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;ResponseFormat&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;WebMessageFormat&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Json&lt;/span&gt;)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;restGetMemberByCardUid&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;cardUid&lt;/span&gt;);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;OperationContract&lt;/span&gt;()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;WebGet&lt;/span&gt;(&lt;span style=&quot;color: white;&quot;&gt;UriTemplate&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;/Members/Query/Department/{departmentId}&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;ResponseFormat&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;WebMessageFormat&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Json&lt;/span&gt;)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;List&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;restGetMembersByDept&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;departmentId&lt;/span&gt;);
 
&lt;span style=&quot;color: #9b9b9b;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endregion&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;
而SOAP的比如說是下面這樣&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceContract&lt;/span&gt;()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;interface&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;ISoapService&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;OperationContract&lt;/span&gt;()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;GetMemberByMemberId&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;memberId&lt;/span&gt;);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;OperationContract&lt;/span&gt;()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;GetMemberByCardUid&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;cardUid&lt;/span&gt;);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;OperationContract&lt;/span&gt;()]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;List&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;GetMembersByDept&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: white;&quot;&gt;departmentId&lt;/span&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;
HOST這邊就要同時實作兩個介面，例如&lt;br /&gt;
&lt;pre style=&quot;background-color: #1e1e1e; background-position: initial initial; background-repeat: initial initial; font-family: Monaco; font-size: 12px;&quot;&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;AspNetCompatibilityRequirements&lt;/span&gt;(&lt;span style=&quot;color: white;&quot;&gt;RequirementsMode&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;AspNetCompatibilityRequirementsMode&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Allowed&lt;/span&gt;)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&lt;span style=&quot;color: #4ec9b0;&quot;&gt;ServiceBehavior&lt;/span&gt;(&lt;span style=&quot;color: white;&quot;&gt;InstanceContextMode&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;InstanceContextMode&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Single&lt;/span&gt;)]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #569cd6;&quot;&gt;class&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;YourServiceName&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;IRestfulService&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b8d7a3;&quot;&gt;ISoapService&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;restGetMemberByMemberId&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;memberId&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;cardUid&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;12345678&quot;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;expStart&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;DateTime&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Now&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;expEnd&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;DateTime&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Now&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;AddYears&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b5cea8;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;restGetMemberByCardUid&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;cardUid&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;NotImplementedException&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;List&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;restGetMembersByDept&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;departmentId&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;NotImplementedException&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&lt;/span&gt;&lt;span style=&quot;color: #9b9b9b;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#region&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;Soap&amp;nbsp;interface&amp;nbsp;implement
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;GetMemberByMemberId&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;memberId&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;cardUid&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #d69d85;&quot;&gt;&quot;12345678&quot;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;expStart&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;DateTime&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Now&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;expEnd&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;DateTime&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Now&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;AddYears&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #b5cea8;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;GetMemberByCardUid&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;cardUid&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;NotImplementedException&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;List&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;Data&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Member&lt;/span&gt;&lt;span style=&quot;color: #b4b4b4;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;GetMembersByDept&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: white;&quot;&gt;departmentId&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;NotImplementedException&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
 
&lt;/span&gt;&lt;span style=&quot;color: #9b9b9b;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#endregion&lt;/span&gt;&lt;span style=&quot;color: gainsboro;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/pre&gt;
而重點的web.config大致會像是下面這樣&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: Monaco; font-size: 12;&quot;&gt;&lt;span style=&quot;color: grey;&quot;&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;xml&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;version&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;1.0&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;?&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
 
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;system.web&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;compilation&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;debug&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;targetFramework&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;4.0&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;system.web&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
 
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;system.serviceModel&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;bindings&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;webHttpBinding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;binding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;webHttpBindingCfg&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;maxBufferSize&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;8192000&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;maxReceivedMessageSize&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;8192000&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;security&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;mode&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Transport&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;transport&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;clientCredentialType&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;Basic&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;security&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;binding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;webHttpBinding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;bindings&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;behaviors&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;serviceBehaviors&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;behavior&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;!--&lt;/span&gt;&lt;span style=&quot;color:#608b4e;&quot;&gt;&amp;nbsp;To&amp;nbsp;avoid&amp;nbsp;disclosing&amp;nbsp;metadata&amp;nbsp;information,&amp;nbsp;set&amp;nbsp;the&amp;nbsp;value&amp;nbsp;below&amp;nbsp;to&amp;nbsp;false&amp;nbsp;before&amp;nbsp;deployment&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:gray;&quot;&gt;--&gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;serviceMetadata&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;httpGetEnabled&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;!--&lt;/span&gt;&lt;span style=&quot;color:#608b4e;&quot;&gt;&amp;nbsp;To&amp;nbsp;receive&amp;nbsp;exception&amp;nbsp;details&amp;nbsp;in&amp;nbsp;faults&amp;nbsp;for&amp;nbsp;debugging&amp;nbsp;purposes,&amp;nbsp;set&amp;nbsp;the&amp;nbsp;value&amp;nbsp;below&amp;nbsp;to&amp;nbsp;true.&amp;nbsp;&amp;nbsp;Set&amp;nbsp;to&amp;nbsp;false&amp;nbsp;before&amp;nbsp;deployment&amp;nbsp;to&amp;nbsp;avoid&amp;nbsp;disclosing&amp;nbsp;exception&amp;nbsp;information&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:gray;&quot;&gt;--&gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;serviceDebug&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;includeExceptionDetailInFaults&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;behavior&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;serviceBehaviors&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;endpointBehaviors&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;behavior&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;RestEndPointCfg&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;webHttp&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;helpEnabled&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;automaticFormatSelectionEnabled&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;behavior&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;endpointBehaviors&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
 
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;behaviors&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
 
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;services&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;service&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;rootNameSpace&lt;span style=&quot;color: #c8c8c8;&quot;&gt;.YourServiceName&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;endpoint&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;address&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;rest&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;behaviorConfiguration&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;RestEndPointCfg&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;binding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;webHttpBinding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;RestEndPoint&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;contract&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;rootNameSpace&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;.IRestfulService&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;endpoint&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;address&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;binding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;basicHttpBinding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;SoapEndPoint&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;contract&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;rootNameSpace&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;.ISoapService&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;endpoint&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;address&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;mex&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;binding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;mexHttpBinding&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;contract&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;IMetadataExchange&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;service&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;services&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
 
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;!--&lt;/span&gt;&lt;span style=&quot;color:#608b4e;&quot;&gt;&amp;nbsp;For&amp;nbsp;RESTFul&amp;nbsp;service&amp;nbsp;usage&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:gray;&quot;&gt;--&gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;!--&lt;/span&gt;&lt;span style=&quot;color:#608b4e;&quot;&gt;&amp;nbsp;&lt;serviceHostingEnvironment&amp;nbsp;multipleSiteBindingsEnabled=&quot;true&quot;&amp;nbsp;/&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:gray;&quot;&gt;--&gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;serviceHostingEnvironment&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;aspNetCompatibilityEnabled&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;serviceHostingEnvironment&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;system.serviceModel&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;system.webServer&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;modules&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;runAllManagedModulesForAllRequests&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;!--&lt;/span&gt;
&lt;span style=&quot;color:#608b4e;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;To&amp;nbsp;browse&amp;nbsp;web&amp;nbsp;app&amp;nbsp;root&amp;nbsp;directory&amp;nbsp;during&amp;nbsp;debugging,&amp;nbsp;set&amp;nbsp;the&amp;nbsp;value&amp;nbsp;below&amp;nbsp;to&amp;nbsp;true.&lt;/span&gt;
&lt;span style=&quot;color:#608b4e;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set&amp;nbsp;to&amp;nbsp;false&amp;nbsp;before&amp;nbsp;deployment&amp;nbsp;to&amp;nbsp;avoid&amp;nbsp;disclosing&amp;nbsp;web&amp;nbsp;app&amp;nbsp;folder&amp;nbsp;information.&lt;/span&gt;
&lt;span style=&quot;color:#608b4e;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:gray;&quot;&gt;--&gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;directoryBrowse&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #92caf4;&quot;&gt;enabled&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #c8c8c8;&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: grey;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;system.webServer&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;
 
&lt;span style=&quot;color: grey;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;configuration&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/8206350417114476816/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/8206350417114476816' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/8206350417114476816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/8206350417114476816'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2013/08/wcfsoaprest.html' title='WCF服務中如何同時啟用SOAP與REST兩種類型的服務端點'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-8058563990142455727</id><published>2013-05-29T19:09:00.000+08:00</published><updated>2013-05-29T19:40:16.116+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><title type='text'>[Android] 使用HttpGet加上基本驗證時，得到回應400 Bad Request</title><content type='html'>在Android的開發上，搭配Restful Service去取得資料時，通常會使用HttpClient加上HttpGet去向Server抓取資料來源，例如說下面這樣
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: DejaVu Sans Mono; font-size: 13;&quot;&gt; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpResponse&amp;nbsp;response&amp;nbsp;=&amp;nbsp;client.execute(get);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StatusLine&amp;nbsp;statusLine&amp;nbsp;=&amp;nbsp;response.getStatusLine();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(statusLine.getStatusCode()&amp;nbsp;==&amp;nbsp;HttpStatus.SC_OK){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpEntity&amp;nbsp;entity&amp;nbsp;=&amp;nbsp;response.getEntity();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ByteArrayOutputStream&amp;nbsp;out&amp;nbsp;=&amp;nbsp;new&amp;nbsp;ByteArrayOutputStream();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entity.writeTo(out);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;out.close();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;out.toString();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;catch&amp;nbsp;(IOException&amp;nbsp;ex){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;
&lt;br /&gt;
而在Restful Service的安全性上面，驗證方式通常會採用基本驗證(在header中加入驗證資訊)加上https來做(這篇不會提到https的部分)；而加入驗證資訊的部分會像是這樣的方式&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #1e1e1e; color: gainsboro; font-family: DejaVu Sans Mono; font-size: 13;&quot;&gt; String&amp;nbsp;encoding&amp;nbsp;=&amp;nbsp;Base64.encodeToString((userName+&quot;:&quot;+userPwd).getBytes(),&lt;b&gt;Base64.NO_WRAP&lt;/b&gt;);
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpClient&amp;nbsp;client&amp;nbsp;=&amp;nbsp;new&amp;nbsp;DefaultHttpClient();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HttpGet&amp;nbsp;get&amp;nbsp;=&amp;nbsp;new&amp;nbsp;HttpGet(requestUrl);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;get.addHeader(&quot;Authorization&quot;,&quot;Basic&amp;nbsp;&quot;+encoding);&lt;/pre&gt;
&lt;br /&gt;
這篇筆記的重點就是在Base64編碼的部分，注意到上面編碼的部分，參數是下Base64.No_WRAP，也就是整行資料輸出，不要做任何處理，而一般情況下我們可能會用很直覺的方式下了Base64_Default的參數進去，而當你用default的方式去處理時，會多了一些換行的東西，像是下圖用WireShark抓出來的header&lt;br /&gt;
&lt;br /&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/b/R29vZ2xl/AVvXsEj6CII1iquJrn-ESQ8o2AeDGOYTGlirmdC4rmm1-cMZnwRFOd7mf-MAJj1L4v_BJ7A8xU_3uvg-AndTVTYGPKTbNIuKb3oNnHR1gwpfKooNhfd98eUeH5FfxvQcZ9IfCmobo_CiY7V2ozFL/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;95&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6CII1iquJrn-ESQ8o2AeDGOYTGlirmdC4rmm1-cMZnwRFOd7mf-MAJj1L4v_BJ7A8xU_3uvg-AndTVTYGPKTbNIuKb3oNnHR1gwpfKooNhfd98eUeH5FfxvQcZ9IfCmobo_CiY7V2ozFL/s400/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span id=&quot;goog_55726356&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_55726357&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
因此產生了Bad Request的結果，這邊筆記一下也給大家參考看看了</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/8058563990142455727/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/8058563990142455727' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/8058563990142455727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/8058563990142455727'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2013/05/android-httpget400-bad-request.html' title='[Android] 使用HttpGet加上基本驗證時，得到回應400 Bad Request'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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/AVvXsEj6CII1iquJrn-ESQ8o2AeDGOYTGlirmdC4rmm1-cMZnwRFOd7mf-MAJj1L4v_BJ7A8xU_3uvg-AndTVTYGPKTbNIuKb3oNnHR1gwpfKooNhfd98eUeH5FfxvQcZ9IfCmobo_CiY7V2ozFL/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-6606221216811301511</id><published>2013-04-18T11:23:00.003+08:00</published><updated>2013-04-18T11:36:20.862+08:00</updated><title type='text'>System.Drawing.Bitmap要如何轉換成WPF中可用的ImageSource呢？</title><content type='html'>在一般情況下，如果我們有一些圖片需要顯示在WPF的應用程式中，通常我們會使用Image，以及指定Image.Source屬性，例如說下面這樣&lt;br /&gt;
&lt;pre class=&quot;c#&quot; name=&quot;code&quot;&gt; 
img1.Source =
   new BitmapImage(new Uri(@&quot;image file path&quot;, UriKind.RelativeOrAbsolute));&lt;/pre&gt;
&lt;br /&gt;
利用這樣的方式，將圖片檔案顯示在Imagez上面；如果來源是byte array的話，會利用類似這樣的方式
&lt;br /&gt;
&lt;pre class=&quot;c#&quot; name=&quot;code&quot;&gt;            System.IO.FileStream fs = 
                new System.IO.FileStream(filepath, 
                    System.IO.FileMode.Open, System.IO.FileAccess.Read);
            byte[] buffer = new byte[fs.Length];
            fs.Read(buffer, 0, buffer.Length);
            fs.Close();
            fs.Dispose();

            System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer);
            BitmapImage bitmapImage = new BitmapImage();
            bitmapImage.BeginInit();
            bitmapImage.StreamSource = ms;
            bitmapImage.EndInit();
            img1.Source = bitmapImage;&lt;/pre&gt;
這樣就可以由byte陣列轉換成WPF中可以使用的圖片來源了，不過上面這段程式碼有個問題需要處理，在memoryStream的部分，上面並沒有看到Dispose的部分，這樣子不會產生一些記憶體耗用的狀況嗎？於是嘗試加上了MemortStream.Dispose的部分之後發現『疑？阿圖片怎麼顯示不出來了』，這個部分請參考一下&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/5346727/convert-memory-stream-to-bitmapimage&quot;&gt;Convert memory stream to BitmapImage?&lt;/a&gt;&lt;br /&gt;
必須要指定CacheOption的屬性，強制在載入的時候去讀取，才會確保顯示的正常；不然如果需要載入的時候，memorystream已經被釋放掉了，就會造成上面說的圖片無法顯示的狀況了。稍加修改之後，程式碼會像是這樣&lt;br /&gt;
&lt;pre class=&quot;c#&quot; name=&quot;code&quot;&gt;
            System.IO.FileStream fs = 
                new System.IO.FileStream(filepath, 
                    System.IO.FileMode.Open, System.IO.FileAccess.Read);
            byte[] buffer = new byte[fs.Length];
            fs.Read(buffer, 0, buffer.Length);
            fs.Close();
            fs.Dispose();

            System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer);
            BitmapImage bitmapImage = new BitmapImage();
            bitmapImage.BeginInit();
            bitmapImage.StreamSource = ms;
            bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
            bitmapImage.EndInit();
            ms.Dispose();
            img1.Source = bitmapImage;&lt;/pre&gt;
&lt;br /&gt;
好，看完了一般情況的使用之後，來看一下System.Drawing.Bitmap的部分；會甚麼會有這個需求呢？假設今天你呼叫的是第三方廠商提供的dll，dll回傳的就已經是System.Drawing.Bitmap的話，就會遇到需要轉換的狀況了。那麼應該怎麼轉換呢？下面列出兩種方式作為參考&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;利用上面提到的方式，將Bitmap儲存成memorystream之後，指定給BitmapImage&lt;br /&gt;
&lt;pre class=&quot;c#&quot; name=&quot;code&quot;&gt;        private BitmapImage BitmapToBitmapImage(System.Drawing.Bitmap bitmap)
        {
            BitmapImage bitmapImage = new BitmapImage();

            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                bitmap.Save(ms, bitmap.RawFormat);
                bitmapImage.BeginInit();
                bitmapImage.StreamSource = ms;
                bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
                bitmapImage.EndInit();
                bitmapImage.Freeze();
            }
            
            return bitmapImage;
        }
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;利用System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap方式來做轉換&lt;br /&gt;
&lt;pre class=&quot;c#&quot; name=&quot;code&quot;&gt;        [System.Runtime.InteropServices.DllImport(&quot;gdi32.dll&quot;)]
        public static extern bool DeleteObject(IntPtr hObject);

        private BitmapSource BitmapToBitmapSource(System.Drawing.Bitmap bitmap)
        {
            IntPtr ptr = bitmap.GetHbitmap();
            BitmapSource result =
                System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                    ptr, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
            //release resource
            DeleteObject(ptr);

            return result;
        }&lt;/pre&gt;
這邊要請特別注意一下，在最後一定要呼叫DeleteObject來做資源的釋放(&lt;a href=&quot;http://msdn.microsoft.com/zh-tw/library/1dz311e4(v=vs.80).aspx?cs-save-lang=1&amp;amp;cs-lang=csharp#code-snippet-4&quot;&gt;可以參考MSDN的這篇文章&lt;/a&gt;)，不然記憶體是會越吃越兇的&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/6606221216811301511/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/6606221216811301511' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6606221216811301511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/6606221216811301511'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2013/04/systemdrawingbitmapwpfimagesource.html' title='System.Drawing.Bitmap要如何轉換成WPF中可用的ImageSource呢？'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-5550916675038124058</id><published>2013-04-08T13:48:00.002+08:00</published><updated>2013-04-08T13:59:08.744+08:00</updated><title type='text'>如何取得Serial port的friendly name</title><content type='html'>這邊筆記一下，一般情況來說，如果我們想要目前電腦中總共有那些Serialport可以使用的話，最常見的方式會是下面這樣&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foreach (string name in SerialPort.GetPortNames())&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cboPortName.Items.Add(name);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/blockquote&gt;
不過如果說我們想要取得像是下圖紅框部分，比較&quot;看的懂&quot;(?) 的名稱的話，應該要怎麼做呢？&lt;br /&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/b/R29vZ2xl/AVvXsEj1bMJF0WWvqbNVHrfDREmv8_FFVrKNbRhUd4hQBNsqIzgnTCbTd-jaua13T02jTvaXsVDFHExMG1nHqF7u1beKQuyUYuV0dOBFPzFGJCXCfgNGz9aL4rgNmfYWttn1Y4DY7lvMOSqc7n64/s1600/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;196&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1bMJF0WWvqbNVHrfDREmv8_FFVrKNbRhUd4hQBNsqIzgnTCbTd-jaua13T02jTvaXsVDFHExMG1nHqF7u1beKQuyUYuV0dOBFPzFGJCXCfgNGz9aL4rgNmfYWttn1Y4DY7lvMOSqc7n64/s400/1.png&quot; width=&quot;400&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;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/2937585/how-to-open-a-serial-port-by-friendly-name&quot;&gt;How to open a serial port by friendly name?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/5550916675038124058/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/5550916675038124058' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/5550916675038124058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/5550916675038124058'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2013/04/serial-portfriend-name.html' title='如何取得Serial port的friendly name'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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/AVvXsEj1bMJF0WWvqbNVHrfDREmv8_FFVrKNbRhUd4hQBNsqIzgnTCbTd-jaua13T02jTvaXsVDFHExMG1nHqF7u1beKQuyUYuV0dOBFPzFGJCXCfgNGz9aL4rgNmfYWttn1Y4DY7lvMOSqc7n64/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-5298318744977682840</id><published>2013-02-21T10:42:00.001+08:00</published><updated>2013-02-21T10:44:28.793+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="android"/><title type='text'>[android][Note] signing apk</title><content type='html'>這篇給自己筆記一下&lt;br /&gt;
&lt;br /&gt;
在android開發上，應用程式(apk)都需要經過簽署，跟一般情況比較不同的是你可以用自我簽署的方式去做，不一定真的需要向信任的憑證機構去申請憑證。&lt;br /&gt;
&lt;br /&gt;
而在開發上，在除錯模式(debug)下，IDE會自動幫你產生debug用的憑證，而debug的憑證會有時間的限制(預設是365天)，時間到了在做debug的時候會發生錯誤，這個時候要把舊的憑證給刪除，詳細憑證相關的資訊可以參考下面這邊&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://developer.android.com/tools/publishing/app-signing.html&quot; target=&quot;_blank&quot;&gt;Signing your application&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
部分原文&lt;br /&gt;
&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;To fix this problem, simply delete the&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: #f9f9f9; color: #006600; font-family: &#39;courier new&#39;, courier, monospace; font-size: 14px; line-height: 14px;&quot;&gt;debug.keystore&lt;/code&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;&amp;nbsp;file. The default storage location for AVDs is in&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: #f9f9f9; color: #006600; font-family: &#39;courier new&#39;, courier, monospace; font-size: 14px; line-height: 14px;&quot;&gt;~/.android/&lt;/code&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;&amp;nbsp;on OS X and Linux, in&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: #f9f9f9; color: #006600; font-family: &#39;courier new&#39;, courier, monospace; font-size: 14px; line-height: 14px;&quot;&gt;C:\Documents and Settings\&lt;user&gt;\.android\&lt;/user&gt;&lt;/code&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;&amp;nbsp;on Windows XP, and in&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;background-color: #f9f9f9; color: #006600; font-family: &#39;courier new&#39;, courier, monospace; font-size: 14px; line-height: 14px;&quot;&gt;C:\Users\&lt;user&gt;\.android\&lt;/user&gt;&lt;/code&gt;&lt;span style=&quot;background-color: #f9f9f9; color: #222222; font-family: Roboto, sans-serif; font-size: 14px; line-height: 19px;&quot;&gt;&amp;nbsp;on Windows Vista and Windows 7.&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/5298318744977682840/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/5298318744977682840' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/5298318744977682840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/5298318744977682840'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2013/02/androidnote-signing-apk.html' title='[android][Note] signing apk'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-1820951819333670276</id><published>2012-11-26T11:30:00.000+08:00</published><updated>2012-11-26T11:38:18.151+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="csharp"/><category scheme="http://www.blogger.com/atom/ns#" term="FTP"/><title type='text'>利用FtpWebRequest列出FTP位置檔案結構</title><content type='html'>在FTP的操作中，有時會遇到需要列出FTP站台中，檔案、目錄相關的結構；而利用FtpWebRequest所提供的相關方法去取得時，取回的會像是下面這樣的一串文字&lt;br /&gt;
&lt;br /&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/b/R29vZ2xl/AVvXsEgm2twbv0rZBAIpLsXtpn7XeFHO-yjphe-W4zn8lumzSoCfgc9QEM_TUIAdi7GBMeXbw8AheP3BZONlOVSN1NUFkAJYENJVfjTGpcAsiS5bo9cYnkj_qQGO5aPUcWg8dCDx77le26xWJwQu/s1600/20121126_02.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm2twbv0rZBAIpLsXtpn7XeFHO-yjphe-W4zn8lumzSoCfgc9QEM_TUIAdi7GBMeXbw8AheP3BZONlOVSN1NUFkAJYENJVfjTGpcAsiS5bo9cYnkj_qQGO5aPUcWg8dCDx77le26xWJwQu/s640/20121126_02.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
從結果可以看出，在資料夾的部分會出現DIR這樣樣的字樣，一般的檔案則是出現檔案名稱，但是這樣的方式要列出整個檔案結構是比較不直覺、方便的，不過我們可以利用這些資訊加工之後，就可以達到樹狀檢視這樣的效果。&lt;br /&gt;
&lt;br /&gt;
試寫了一下，UI部分很簡單，只有一個按鈕以及treeview&lt;br /&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/b/R29vZ2xl/AVvXsEiGW9mMx2UzjpZx9gTuHWnqHfmBMKGGh2YaIWx__q47kngaVCu4JEGT35z3jekahjydxDefnc0eTdLPiDXKxp2ieh6AQ-y6iGSAuj-WwxpirJGmeLLuvxVtFvLnsg1VVHGqLnOCXgJNLtOb/s1600/20121126_01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGW9mMx2UzjpZx9gTuHWnqHfmBMKGGh2YaIWx__q47kngaVCu4JEGT35z3jekahjydxDefnc0eTdLPiDXKxp2ieh6AQ-y6iGSAuj-WwxpirJGmeLLuvxVtFvLnsg1VVHGqLnOCXgJNLtOb/s320/20121126_01.png&quot; width=&quot;239&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
程式碼的部分大概會像是下面這樣&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: black; color: #d1d1d1;&quot;&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;void&lt;/span&gt; btnRefresh_Click&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;object&lt;/span&gt; sender&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; EventArgs e&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
            TreeNode root &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;new&lt;/span&gt; TreeNode&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;ftproot&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            treeView1&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Nodes&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Add&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;root&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            ftppath &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Empty&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            InserNodeData&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ref&lt;/span&gt; root&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Empty&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            root &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;

        &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt; ftppath &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Empty&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;void&lt;/span&gt; InserNodeData&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ref&lt;/span&gt; TreeNode node&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt; secondPath&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
            List&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;clsFTPData&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; child &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;new&lt;/span&gt; List&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;clsFTPData&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;

            ListFtpFiles&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ref&lt;/span&gt; child&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; ftppath&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;

            var childitems &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; from o &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;in&lt;/span&gt; child
                             orderby o&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataType&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; o&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataName
                             select o&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;

            &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;clsFTPData childitem &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;in&lt;/span&gt; childitems&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
                TreeNode newChild &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;new&lt;/span&gt; TreeNode&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;childitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataType &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
                &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
                    newChild&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Text &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; childitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataName&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                    newChild&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;ImageIndex &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                    ftppath &lt;span style=&quot;color: #d2cd86;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; childitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataName &lt;span style=&quot;color: #d2cd86;&quot;&gt;+&lt;/span&gt; @&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                    InserNodeData&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ref&lt;/span&gt; newChild&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; childitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataName&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;
                &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;else&lt;/span&gt;
                &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
                    newChild&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Text &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; childitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataName&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                    newChild&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;ImageIndex &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;
                node&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Nodes&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Add&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;newChild&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                newChild &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;
            &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;IsNullOrEmpty&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ftppath&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
                ftppath &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; ftppath&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Substring&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #008c00;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; ftppath&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Length &lt;span style=&quot;color: #d2cd86;&quot;&gt;-&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                ftppath &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; ftppath&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Substring&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #008c00;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; ftppath&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;LastIndexOf&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;@&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;
            child &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            childitems &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;

        &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;private&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;void&lt;/span&gt; ListFtpFiles&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ref&lt;/span&gt; List&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;clsFTPData&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; result&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt; FtpPath&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
        &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
            &lt;span style=&quot;color: #9999a9;&quot;&gt;// Get the object used to communicate with the server.&lt;/span&gt;
            FtpWebRequest request &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;FtpWebRequest&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;WebRequest&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Create&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;new&lt;/span&gt; Uri&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;@&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;ftp://192.168.2.177/&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;+&lt;/span&gt; FtpPath&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            request&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Method &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; WebRequestMethods&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Ftp&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;ListDirectoryDetails&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;

            &lt;span style=&quot;color: #9999a9;&quot;&gt;// This example assumes the FTP site uses anonymous logon.&lt;/span&gt;
            request&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Credentials &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;new&lt;/span&gt; NetworkCredential&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;ftpuser&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;ftpuser&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;

            FtpWebResponse response &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;FtpWebResponse&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;request&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;GetResponse&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;

            Stream responseStream &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;GetResponseStream&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            Encoding big5 &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; Encoding&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;GetEncoding&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;big5&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            StreamReader reader &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;new&lt;/span&gt; StreamReader&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;responseStream&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; big5&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;]&lt;/span&gt; data&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            data &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; reader&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;ReadToEnd&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Split&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;]&lt;/span&gt; &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt; Environment&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;NewLine &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; StringSplitOptions&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;RemoveEmptyEntries&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;

            &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;foreach&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;string&lt;/span&gt; item &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;in&lt;/span&gt; data&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
            &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
                clsFTPData newitem &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;new&lt;/span&gt; clsFTPData&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;item&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;IndexOf&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&lt;dir&gt;&lt;/dir&gt;&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
                &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
                    newitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataType &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                    newitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataName &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; item&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Substring&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;item&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;IndexOf&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&lt;dir&gt;&lt;/dir&gt;&lt;/span&gt;&lt;span style=&quot;color: #02d045;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Trim&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;
                &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;else&lt;/span&gt;
                &lt;span style=&quot;color: #b060b0;&quot;&gt;{&lt;/span&gt;
                    newitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataType &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #008c00;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                    newitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;DataName &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; item&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Substring&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #008c00;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Trim&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;
                result&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Add&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;newitem&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
                newitem &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;

            reader&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Close&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            reader&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Dispose&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            response&lt;span style=&quot;color: #d2cd86;&quot;&gt;.&lt;/span&gt;Close&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            response &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
            request &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;null&lt;/span&gt;&lt;span style=&quot;color: #b060b0;&quot;&gt;;&lt;/span&gt;
        &lt;span style=&quot;color: #b060b0;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/1820951819333670276/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/1820951819333670276' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/1820951819333670276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/1820951819333670276'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2012/11/ftpwebrequestftp.html' title='利用FtpWebRequest列出FTP位置檔案結構'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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/AVvXsEgm2twbv0rZBAIpLsXtpn7XeFHO-yjphe-W4zn8lumzSoCfgc9QEM_TUIAdi7GBMeXbw8AheP3BZONlOVSN1NUFkAJYENJVfjTGpcAsiS5bo9cYnkj_qQGO5aPUcWg8dCDx77le26xWJwQu/s72-c/20121126_02.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2645676084810380842.post-834688290847781956</id><published>2012-02-06T00:46:00.003+08:00</published><updated>2012-02-06T00:46:45.756+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="other"/><title type='text'>做事的10個順序</title><content type='html'>今天在Plurk上看到噗友分享的『做事必須搞清的10個順序』，覺得寫的真好，這邊紀錄一下，也分享給大家。&lt;br /&gt;
&lt;br /&gt;
噗友的原文在&lt;a href=&quot;http://www.plurk.com/p/fik1pt&quot; target=&quot;_blank&quot;&gt;這邊&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;職場：先升值，再升職；&amp;nbsp;&lt;/li&gt;
&lt;li&gt;溝通：先求同，再求異；&amp;nbsp;&lt;/li&gt;
&lt;li&gt;執行：先完成，再完美；&lt;/li&gt;
&lt;li&gt;學習：先記錄，再記憶；&amp;nbsp;&lt;/li&gt;
&lt;li&gt;設計：先仿造，再創造；&amp;nbsp;&lt;/li&gt;
&lt;li&gt;創業：先成長，再成功；&amp;nbsp;&lt;/li&gt;
&lt;li&gt;發展：先站住，再站高；&lt;/li&gt;
&lt;li&gt;人際：先交流，再交心；&lt;/li&gt;
&lt;li&gt;先做好自己，再要求別人；&amp;nbsp;&lt;/li&gt;
&lt;li&gt;先解決心情，再解決事情。&lt;/li&gt;
&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/834688290847781956/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/834688290847781956' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/834688290847781956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/834688290847781956'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2012/02/10.html' title='做事的10個順序'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-3887309899451828278</id><published>2012-01-31T15:59:00.003+08:00</published><updated>2012-01-31T15:59:41.148+08:00</updated><title type='text'>SendKeys in WPF</title><content type='html'>在以往Windows Form的程式開發當中，當要送出鍵盤的相關資料時，會使用SendKeys的方式來處理，例如說要把一個字加到TextBox上這樣；用SendKeys的好處不用去處理當輸入的游標在文字中間的問題，會比像是&lt;br /&gt;
TextBox1.Text &amp;amp;= &quot;1&quot;&lt;br /&gt;
這樣的方式來的方便些。而到了WPF，沒有SendKeys可以用了，那麼應該怎麼辦呢？在網路上搜尋了一下，可以利用呼叫API的方式來做，可以參考一下下面&amp;nbsp;&lt;a href=&quot;http://pinvoke.net/default.aspx/user32/SendInput.html&quot; target=&quot;_blank&quot;&gt;SendInput&lt;/a&gt;&amp;nbsp;的說明，所有需要的東西都在裡面了。動作原理大概是下面過程&lt;br /&gt;
&lt;br /&gt;
紀錄要輸入的控制項在畫面上的位置&lt;br /&gt;
使用SendInput模擬滑鼠的動作，點擊要輸入的控制項(主要是要取得Focus)&lt;br /&gt;
使用SendInput模擬KeyDown的動作&lt;br /&gt;
使用 SendInput模擬KeyUp的動作&lt;br /&gt;
&lt;br /&gt;
大概的過程是這樣子了；而我自己的使用方式有點偷懶，直接略過模擬滑鼠的部分，直接傳控制項的參考過去 XDD&lt;br /&gt;
&lt;br /&gt;
下面是目前的程式碼，還沒詳細測試，大致就是上面列出的SendInput中的程式碼了，參考看看了；首先是宣告的部分&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #282424; color: #f3f3f3; font-family: Monaco; font-size: 12; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;#Region&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #6afd51;&quot;&gt;&quot;Const&quot;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;INPUT_MOUSE&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;INPUT_KEYBOARD&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;&amp;nbsp;=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;INPUT_HARDWARE&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;&amp;nbsp;=&amp;nbsp;2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;KEYEVENTF_EXTENDEDKEY&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;KEYEVENTF_KEYUP&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;KEYEVENTF_UNICODE&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;KEYEVENTF_SCANCODE&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;XBUTTON1&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;XBUTTON2&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_MOVE&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_LEFTDOWN&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_LEFTUP&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_RIGHTDOWN&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_RIGHTUP&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H10
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_MIDDLEDOWN&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H20
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_MIDDLEUP&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H40
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_XDOWN&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H80
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_XUP&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H100
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_WHEEL&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H800
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_VIRTUALDESK&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H4000
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Const&lt;/span&gt;&amp;nbsp;MOUSEEVENTF_ABSOLUTE&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;UInt32&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&amp;amp;H8000
&lt;span style=&quot;color: #a2c4fd;&quot;&gt;#End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Region&lt;/span&gt;
 
&lt;span style=&quot;color: #a2c4fd;&quot;&gt;#Region&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #6afd51;&quot;&gt;&quot;Enums&quot;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Enum&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;InputType&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Mouse&amp;nbsp;=&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Keyboard&amp;nbsp;=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Hardware&amp;nbsp;=&amp;nbsp;2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Enum&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;Flags&lt;/span&gt;()&amp;gt;&amp;nbsp;_
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Enum&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;MOUSEEVENTF&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MOVE&amp;nbsp;=&amp;nbsp;&amp;amp;H1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LEFTDOWN&amp;nbsp;=&amp;nbsp;&amp;amp;H2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LEFTUP&amp;nbsp;=&amp;nbsp;&amp;amp;H4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RIGHTDOWN&amp;nbsp;=&amp;nbsp;&amp;amp;H8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RIGHTUP&amp;nbsp;=&amp;nbsp;&amp;amp;H10
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MIDDLEDOWN&amp;nbsp;=&amp;nbsp;&amp;amp;H20
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MIDDLEUP&amp;nbsp;=&amp;nbsp;&amp;amp;H40
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XDOWN&amp;nbsp;=&amp;nbsp;&amp;amp;H80
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XUP&amp;nbsp;=&amp;nbsp;&amp;amp;H100
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;VIRTUALDESK&amp;nbsp;=&amp;nbsp;&amp;amp;H400
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHEEL&amp;nbsp;=&amp;nbsp;&amp;amp;H800
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ABSOLUTE&amp;nbsp;=&amp;nbsp;&amp;amp;H8000
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Enum&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;Flags&lt;/span&gt;()&amp;gt;&amp;nbsp;_
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Enum&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;KEYEVENTF&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;EXTENDEDKEY&amp;nbsp;=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;KEYUP&amp;nbsp;=&amp;nbsp;2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[UNICODE]&amp;nbsp;=&amp;nbsp;4
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SCANCODE&amp;nbsp;=&amp;nbsp;8
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Enum&lt;/span&gt;
&lt;span style=&quot;color: #a2c4fd;&quot;&gt;#End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Region&lt;/span&gt;
 
&lt;span style=&quot;color: #a2c4fd;&quot;&gt;#Region&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #6afd51;&quot;&gt;&quot;Structure&quot;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;StructLayout&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;LayoutKind&lt;/span&gt;.Explicit)&amp;gt;&amp;nbsp;_
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Structure&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;INPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(0)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;dwType&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(4)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;mouseInput&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;MOUSEINPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(4)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;keyboardInput&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;KEYBDINPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(4)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;hardwareInput&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;HARDWAREINPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Structure&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;StructLayout&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;LayoutKind&lt;/span&gt;.Explicit)&amp;gt;&amp;nbsp;_
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Structure&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;KEYBDINPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(0)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;wVk&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Short&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(2)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;wScan&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Short&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(4)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;dwFlags&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(8)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;time&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(12)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;dwExtraInfo&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IntPtr&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Structure&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;StructLayout&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;LayoutKind&lt;/span&gt;.Explicit)&amp;gt;&amp;nbsp;_
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Structure&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;HARDWAREINPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(0)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;uMsg&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(4)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;wParamL&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Short&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(6)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;wParamH&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Short&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Structure&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;StructLayout&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;LayoutKind&lt;/span&gt;.Explicit)&amp;gt;&amp;nbsp;_
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Structure&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;MOUSEINPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(0)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;dx&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(4)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;dy&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(8)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;mouseData&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(12)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;dwFlags&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(16)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;time&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;FieldOffset&lt;/span&gt;(20)&amp;gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;dwExtraInfo&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IntPtr&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Structure&lt;/span&gt;
&lt;span style=&quot;color: #a2c4fd;&quot;&gt;#End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Region&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span style=&quot;color: cyan;&quot;&gt;DllImport&lt;/span&gt;(&lt;span style=&quot;color: #6afd51;&quot;&gt;&quot;user32.dll&quot;&lt;/span&gt;,&amp;nbsp;EntryPoint:=&lt;span style=&quot;color: #6afd51;&quot;&gt;&quot;SendInput&quot;&lt;/span&gt;)&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Shared&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Function&lt;/span&gt;&amp;nbsp;SendInput(&lt;span style=&quot;color: #a2c4fd;&quot;&gt;ByVal&lt;/span&gt;&amp;nbsp;cInputs&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;ByRef&lt;/span&gt;&amp;nbsp;pInputs&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;INPUT&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;ByVal&lt;/span&gt;&amp;nbsp;cbSize&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;)&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Function&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Shared&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Sub&lt;/span&gt;&amp;nbsp;DoKeyBoard(&lt;span style=&quot;color: #a2c4fd;&quot;&gt;ByVal&lt;/span&gt;&amp;nbsp;flags&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;KEYEVENTF&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;ByVal&lt;/span&gt;&amp;nbsp;key&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Char&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;_input&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;INPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;ki&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;KEYBDINPUT&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_input.dwType&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;InputType&lt;/span&gt;.Keyboard
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_input.keyboardInput&amp;nbsp;=&amp;nbsp;ki
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_input.keyboardInput.wVk&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Convert&lt;/span&gt;.ToInt16(key)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_input.keyboardInput.wScan&amp;nbsp;=&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_input.keyboardInput.time&amp;nbsp;=&amp;nbsp;0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_input.keyboardInput.dwFlags&amp;nbsp;=&amp;nbsp;flags
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_input.keyboardInput.dwExtraInfo&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;IntPtr&lt;/span&gt;.Zero
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;cbSize&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Marshal&lt;/span&gt;.SizeOf(&lt;span style=&quot;color: #a2c4fd;&quot;&gt;GetType&lt;/span&gt;(&lt;span style=&quot;color: cyan;&quot;&gt;INPUT&lt;/span&gt;))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Dim&lt;/span&gt;&amp;nbsp;result&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Integer&lt;/span&gt;&amp;nbsp;=&amp;nbsp;SendInput(1,&amp;nbsp;_input,&amp;nbsp;cbSize)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #75ffa2;&quot;&gt;&#39;If&amp;nbsp;result&amp;nbsp;=&amp;nbsp;0&amp;nbsp;Then&amp;nbsp;Debug.WriteLine(Marshal.GetLastWin32Error)&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_input&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Nothing&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ki&amp;nbsp;=&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Nothing&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
而外面的UerControl多加了一個Property，使用方式大約會像是這樣子&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background: #282424; color: #f3f3f3; font-family: Monaco; font-size: 12; font-weight: bold;&quot;&gt;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Property&lt;/span&gt;&amp;nbsp;FoucedCtl&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;TextBox&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Sub&lt;/span&gt;&amp;nbsp;Button_Click(sender&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;System.&lt;span style=&quot;color: cyan;&quot;&gt;Object&lt;/span&gt;,&amp;nbsp;e&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;As&lt;/span&gt;&amp;nbsp;System.Windows.&lt;span style=&quot;color: cyan;&quot;&gt;RoutedEventArgs&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Me&lt;/span&gt;.FoucedCtl&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Is&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Nothing&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Exit&amp;nbsp;Sub&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Me&lt;/span&gt;.FoucedCtl.Focus()
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Win32Helper&lt;/span&gt;.DoKeyBoard(0,&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;CType&lt;/span&gt;(sender,&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Button&lt;/span&gt;).Content.ToString.Chars(0))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Threading.&lt;span style=&quot;color: cyan;&quot;&gt;Thread&lt;/span&gt;.Sleep(5)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Win32Helper&lt;/span&gt;.DoKeyBoard(&lt;span style=&quot;color: cyan;&quot;&gt;Win32Helper&lt;/span&gt;.&lt;span style=&quot;color: cyan;&quot;&gt;KEYEVENTF&lt;/span&gt;.KEYUP,&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;CType&lt;/span&gt;(sender,&amp;nbsp;&lt;span style=&quot;color: cyan;&quot;&gt;Button&lt;/span&gt;).Content.ToString.Chars(0))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #a2c4fd;&quot;&gt;Sub&lt;/span&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/3887309899451828278/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/3887309899451828278' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/3887309899451828278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/3887309899451828278'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2012/01/sendkeys-in-wpf.html' title='SendKeys in WPF'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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-2645676084810380842.post-1050380738829354061</id><published>2011-12-28T14:00:00.000+08:00</published><updated>2011-12-28T14:00:40.426+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="compact framework"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Basic"/><title type='text'>在Windows CE中，如何修改IP設定之後立即套用新的設定呢？</title><content type='html'>在Windows CE中，通常我們會將網路卡設定一個固定IP，用來與其他的設備做溝通、通訊，那麼設定了IP之後，跟著就會有IP變更的需求了，那麼怎麼去變更IP呢？&lt;br /&gt;
&lt;br /&gt;
從登錄檔中，可以看到IP的相關設定會在這個位置當中&lt;br /&gt;
&lt;b&gt;&lt;i&gt;HKEY_LOCAL_MACHINE\Comm\PCI\網卡名稱\Parms\TCPIP&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
其中會看到Ipaddress、defaultGetway、SubnetMask這三個就是對應到IP的設定了，要變更的地方也就是這三個了，而在compact framework 2.0對登錄檔的操作也有提供了類別可以使用，可以參考MSDN上的&lt;a href=&quot;http://msdn.microsoft.com/zh-tw/library/5a5t63w8(VS.80).aspx&quot;&gt;相關類別使用說明&lt;/a&gt;，下面這邊是利用p/Invoke的方式來做&lt;br /&gt;
&lt;br /&gt;
p/Inove的宣告&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-color: black; background-image: initial; background-origin: initial; color: #d1d1d1;&quot;&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;    &amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CoreDll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; EntryPoint&lt;span style=&quot;color: #d2cd86;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;RegDeleteKeyW&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; RegDeleteKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; hKey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpSubKey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;

    &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CoreDll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; EntryPoint&lt;span style=&quot;color: #d2cd86;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;RegCreateKeyExW&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; RegCreateKeyEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; hkey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpSubKey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                                   &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; Reserved &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpClass &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                                   &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; dwOptions &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; samDesired &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                                   &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpSecurityAttributes &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByRef&lt;/span&gt; phkResult &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                                   &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByRef&lt;/span&gt; lpdwDisposition &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;

    &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CoreDll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; RegSetValueEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; hKey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpValueName &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
        &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; Reserved &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; dwType &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpData &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; cbData &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;

    &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CoreDll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; RegCloseKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; hKey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;

    &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CoreDll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; EntryPoint&lt;span style=&quot;color: #d2cd86;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;RegOpenKeyExW&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; RegOpenKeyEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; hKey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpSubKey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; dwOptions &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
        &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; samDesired &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByRef&lt;/span&gt; phkResult &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;

    &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CoreDll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; RegFlushKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; hKey &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
呼叫的時候大概會是這個樣子&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-color: black; background-image: initial; background-origin: initial; color: #d1d1d1;&quot;&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Dim&lt;/span&gt; buf&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; iTmp &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Dim&lt;/span&gt; bolResult &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Boolean&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0f4d75;&quot;&gt;False&lt;/span&gt;
&#39;&#39;R86101是我的網路卡名稱
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegCreateKeyEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;RegRoots&lt;span style=&quot;color: #00a800;&quot;&gt;.&lt;/span&gt;HKEY_LOCAL_MACHINE&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;Comm\PCI\R86101\Parms\TCPIP&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; vbNullString&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; iTmp&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegSetValueEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;Ipaddress&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; RegValueType&lt;span style=&quot;color: #00a800;&quot;&gt;.&lt;/span&gt;REG_MULTI_SZ&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; IpAddress&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegFlushKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegCloseKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegCreateKeyEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;RegRoots&lt;span style=&quot;color: #00a800;&quot;&gt;.&lt;/span&gt;HKEY_LOCAL_MACHINE&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;Comm\PCI\R86101\Parms\TCPIP&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; vbNullString&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; iTmp&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegSetValueEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;DefaultGateway&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; RegValueType&lt;span style=&quot;color: #00a800;&quot;&gt;.&lt;/span&gt;REG_MULTI_SZ&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; Getway&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegFlushKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegCloseKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegCreateKeyEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;RegRoots&lt;span style=&quot;color: #00a800;&quot;&gt;.&lt;/span&gt;HKEY_LOCAL_MACHINE&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;Comm\PCI\R86101\Parms\TCPIP&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; vbNullString&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; iTmp&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegSetValueEx&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;SubnetMask&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; RegValueType&lt;span style=&quot;color: #00a800;&quot;&gt;.&lt;/span&gt;REG_MULTI_SZ&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; SubMask&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegFlushKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;
buf &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; RegCloseKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;ohKey&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
這樣子就完成了IP設定的修改了，進入網卡設定的介面中，也可看到IP有變為新的設定了；這個時候問題來了，怎麼系統沒有套用新的設定呢？&lt;br /&gt;
在初期還沒有找到解決方式的時候，是讓系統重新開機，重新開機之後就會使用新的IP設定了，但是重新開機會花上不少的時間，而且明明在CE的介面上，變更好IP之後按下『OK』的按鈕明明就是會立刻更新IP位置的，找了相關資料後，原來是還要對系統發出一個更新通知，這樣系統才會進行IP位置的更新，這時候又得使用p/Invoke來處理了，最終的目的是要利用DeviceIoControl來對系統發出Rebind adepater的通知&lt;br /&gt;
&lt;br /&gt;
const的宣告&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-color: black; background-image: initial; background-origin: initial; color: #d1d1d1;&quot;&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Const&lt;/span&gt; OPEN_EXISTING &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; UInt32 &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;3&lt;/span&gt;
&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Const&lt;/span&gt; INVALID_HANDLE_VALUE &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; Int32 &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #00a800;&quot;&gt;1&lt;/span&gt;
&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Const&lt;/span&gt; IOCTL_NDIS_REBIND_ADAPTER &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; UInt32 &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;&amp;amp;H17002E&lt;/span&gt;
&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Const&lt;/span&gt; FILE_ATTRIBUTE_NORMAL &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; UInt32 &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;&amp;amp;H80&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
API的部分&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-color: black; background-image: initial; background-origin: initial; color: #d1d1d1;&quot;&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;    &amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;coredll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; EntryPoint&lt;span style=&quot;color: #d2cd86;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CreateFileW&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; CreateFile&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpFileName &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; dwDesiredAccess &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                               &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; dwShareMode &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpSecurityAttributes &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                               &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; dwCreationDisposition &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; dwFlagsAndAttributes &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                               &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; hTemplateFile &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;

    &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CoreDll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; setlasterror&lt;span style=&quot;color: #d2cd86;&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0f4d75;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; DeviceIoControl&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; m_handle &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; dwIoControlCode &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                                    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; npInBuffer &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; nInBufferSize &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                                    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpOutBuffer &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; nOutBufferSize &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                                    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpBytesReturned &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; lpOverlapped &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Boolean&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;

    &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;CoreDll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
   &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; GetLastError&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;

    &lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;lt;&lt;/span&gt;DllImport&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;coredll.dll&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Public&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt; CloseHandle&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;ByVal&lt;/span&gt; m_handle &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; IntPtr&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
    &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
使用的時候會像是下面這樣&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-attachment: initial; background-clip: initial; background-color: black; background-image: initial; background-origin: initial; color: #d1d1d1;&quot;&gt;&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Dim&lt;/span&gt; _NDISAdapterName &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; mMyInfo&lt;span style=&quot;color: #00a800;&quot;&gt;.&lt;/span&gt;NDISAdapterName
&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Dim&lt;/span&gt; m_handle &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;As&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Integer&lt;/span&gt;
      
m_handle &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; CreateFile&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #00c4c4;&quot;&gt;&quot;NDS0:&quot;&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Nothing&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; OPEN_EXISTING&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; FILE_ATTRIBUTE_NORMAL&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; INVALID_HANDLE_VALUE&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;

&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;If&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Not&lt;/span&gt; DeviceIoControl&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;m_handle&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; IOCTL_NDIS_REBIND_ADAPTER&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; _NDISAdapterName&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;_&lt;/span&gt;
                              _NDISAdapterName&lt;span style=&quot;color: #00a800;&quot;&gt;.&lt;/span&gt;Length &lt;span style=&quot;color: #d2cd86;&quot;&gt;*&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;2&lt;/span&gt; &lt;span style=&quot;color: #d2cd86;&quot;&gt;+&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Nothing&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;,&lt;/span&gt; &lt;span style=&quot;color: #00a800;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Then&lt;/span&gt;
    &lt;span style=&quot;color: #9999a9;&quot;&gt;&#39;&#39;intResult = GetLastError()&lt;/span&gt;
    bolResult &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0f4d75;&quot;&gt;False&lt;/span&gt;
&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;Else&lt;/span&gt;
    bolResult &lt;span style=&quot;color: #d2cd86;&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: #0f4d75;&quot;&gt;True&lt;/span&gt;
&lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;End&lt;/span&gt; &lt;span style=&quot;color: #e66170; font-weight: bold;&quot;&gt;If&lt;/span&gt;

CloseHandle&lt;span style=&quot;color: #d2cd86;&quot;&gt;(&lt;/span&gt;m_handle&lt;span style=&quot;color: #d2cd86;&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
這樣就可以馬上套用新的IP設定了，這邊做個備忘也給各位參考了。&lt;br /&gt;
&lt;br /&gt;
Note：程式碼中錯誤處理的部分沒有做很仔細的錯誤處理，還請自行加上嚕</content><link rel='replies' type='application/atom+xml' href='http://bauann-makeit.blogspot.com/feeds/1050380738829354061/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2645676084810380842/1050380738829354061' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/1050380738829354061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2645676084810380842/posts/default/1050380738829354061'/><link rel='alternate' type='text/html' href='http://bauann-makeit.blogspot.com/2011/12/windows-ceip.html' title='在Windows CE中，如何修改IP設定之後立即套用新的設定呢？'/><author><name>bauann</name><uri>http://www.blogger.com/profile/06626210382559971081</uri><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></feed>