發表文章

目前顯示的是 12月, 2011的文章

在Windows CE中,如何修改IP設定之後立即套用新的設定呢?

在Windows CE中,通常我們會將網路卡設定一個固定IP,用來與其他的設備做溝通、通訊,那麼設定了IP之後,跟著就會有IP變更的需求了,那麼怎麼去變更IP呢? 從登錄檔中,可以看到IP的相關設定會在這個位置當中 HKEY_LOCAL_MACHINE\Comm\PCI\網卡名稱\Parms\TCPIP 其中會看到Ipaddress、defaultGetway、SubnetMask這三個就是對應到IP的設定了,要變更的地方也就是這三個了,而在compact framework 2.0對登錄檔的操作也有提供了類別可以使用,可以參考MSDN上的 相關類別使用說明 ,下面這邊是利用p/Invoke的方式來做 p/Inove的宣告 < DllImport ( "CoreDll.dll" , EntryPoint : = "RegDeleteKeyW" ) > _ Public Function RegDeleteKey ( ByVal hKey As Integer , ByVal lpSubKey As String ) As Integer End Function < DllImport ( "CoreDll.dll" , EntryPoint : = "RegCreateKeyExW" ) > _ Public Function RegCreateKeyEx ( ByVal hkey As Integer , ByVal lpSubKey As String , _ ByVal Reserved As Integer , ByVal lpClass As String , _ ByVal dwOptions As Integer , ByVal samDesired As Integer , _ ByVal lpSec

關閉接收中的UdpClient

在撰寫Udp相關的應用時,呼叫Receive方法時會等候到接收了資料為止;因為這個特性,通常會使用另外一個Thread來處理Udp的動作,例如說一個接聽廣播封包的thread,專門對特定的port number等候廣播訊息,而接聽到指令之後進行特定動作,程式碼可能長的像是下面這樣 Private Sub WaitForCommand ( ) Do If _bolStop Then Exit Do Try btyRecv = _client . Receive ( _anyEndpoint ) If btyRecv . Length > 0 Then If ByteToStr ( btyRecv ) = "command" Then ''do something End If End If Catch ex As Exception ''錯誤處理 End Try Threading . Thread . Sleep ( 100 ) Loop End Sub 當執行到_client.Receive之後,就會在這一行指令等候資料接收,那麼在這個狀況之下,如果應用程式必須要關閉的話,要怎麼處理呢?Thread.Abort() ? 這個時候如果呼叫Thread的Abort方法還是無法停止Thread的運作 Orz 那麼應該怎麼做呢?搜尋了一下之後發現方法也是出乎意料的簡單,直接呼叫UdpClient的Close方法就可以了,那麼就可以用類似下面的方式來停止等候接收 Public Sub [ Stop ] ( ) _bolStop = True Try

你知道WP7的模擬器也有中文輸入嗎?

圖片
這篇我應該是Lag很大,不過由於有實機可以測試就一直沒去看模擬器的設定 XD 今天看了一下,模擬器中也有中文輸入的設定可以使用,下面就直接用幾張圖來看吧~ 簡短的分享一下我 Lag很大的資訊 Orz

自訂ValueConverter (值轉換器)

圖片
在Silverlight中,Binding(資料繫結)是一個很強大而且方便的功能;利用Binging可以將元素的屬性跟其他的元素屬性作綁定,或是綁定到我們自訂定義的類別。詳細的下次再來談,這次先來看看ValueConverter;轉換器所扮演的角色是做為一個中介,例如說我們想要將一個Checkbox的Visibility綁定到自訂的類別屬性上面去,那麼應該要怎麼做呢?下面就來看看這個部分 假設現在有一個類別叫做clsImageItem,裡面定義了一些屬性,例如 public uint ImageWidth { get; set; } public uint ImageHeight { get; set; } public int ImageIndex { get; set; } public bool IsEditMode { get { return _IsEditMode; } set { _IsEditMode = value; NotifyPropertyChanged("IsEditMode"); } } 而在介面的設計上,放了一個StackPanel,StackPnael中放置了一個CheckBox以及Image;希望達成的效果是在一般的情形下,CheckBox是不可見的,而進入『編輯模式』的時候,就將CheckBox給顯示出來,介面的XAML大概會像是這樣 < StackPanel  Orientation = "Horizontal"  d : DesignWidth = "290" > < CheckBox  x : Name = "chkMark"  VerticalAlignment = "Top"  Width = "55" Visibility