[VB.NET]使用Win32 API擷取滑鼠游標位置的顏色

要使用Win32 API擷取滑鼠游標位置的顏色,主要可分為三個步驟: 呼叫GetDC API取得畫布 呼叫GetPixel API取得畫布上指定位置的像素 呼叫ReleaseDC API釋放畫布 ...

May 26, 2010 · 1 min · 454 words · Larry Nung

[VB.NET]Win32 Color lt;=gt; .NET Color

要做Win32 Color與.NET Color的互轉,可以自行轉換,也可以透過.NET Framework內建的ColorTranslator類別來做轉換。 ...

May 26, 2010 · 1 min · 420 words · Larry Nung

[VB.NET]使用mouse_event API 來操控滑鼠動作

函式原型 VOID WINAPI mouse_event( __in DWORD dwFlags, __in DWORD dx, __in DWORD dy, __in DWORD dwData, __in ULONG_PTR dwExtraInfo ); ...

May 21, 2010 · 2 min · 954 words · Larry Nung

[VB.NET]將集合類別繫結至DataGridView並使其具備新增功能

若直接把集合類別繫結至DataGridView。 ...

May 10, 2010 · 1 min · 272 words · Larry Nung

[VB.NET]使用SuppressIldasmAttribute防止MSIL反組譯工具對組件進行反組譯

Introduction 使用SuppressIldasmAttribute可為自己開發的組件加上一層簡單的防護,該防護動作只對MSIL反組譯工具(Ildasm.exe)有效,對於Reflector則無任何的防護效果。值得注意的是,該防護是非常簡單的防護,很輕鬆的就可以把該防護給拿掉,因此不建議單純靠這屬性來保護組件。 ...

May 9, 2010 · 1 min · 349 words · Larry Nung

[VB.NET]SecureString較為安全的加密字串類別

Namespace System.Security Framework 2.0 or Latter SecureString SecureString是.NET 2.0開始提供的加密字串類別,為一較安全的字串處理類別,適合用以保存較為機密或是較為敏感的字串。 SecureString內部使用DPAPI對記憶體作加密的動作,存入的資料會自動進行加密的動作,甚至可以使用MakeReadOnly方法讓物件執行個體設為唯讀狀態,避免被進一步修改。 在記憶體層級的保護上,對於該物件執行個體所使用的記憶體會被禁止作複製的動作(除非自行呼叫複製)。 ...

April 29, 2010 · 3 min · 1061 words · Larry Nung

[VB.NET]Keys lt;=gt; Char

今天在撰寫控制項的KeyPress事件,由於事件的參數無法點出Keys直接比對,做了一些轉換動作,這邊紀錄一下: ...

April 27, 2010 · 1 min · 168 words · Larry Nung

[Extension Method][VB.NET]ErrorProvider.GerErrorMsgs amp; ErrorProvider.HasError

GetErrorMsgs擴充方法可找出介面上所有有用ErrorProvider顯示的錯誤訊息,HasError可以判斷介面上是否有任何用ErrorProvider顯示的錯誤訊息,程式碼如下: ...

April 26, 2010 · 1 min · 216 words · Larry Nung

[VB.NET]MDI表單在開啟時做語系切換的注意事項

記得在[VB.NET].NET多語系程式(四) - 已開啟表單的語系切換這篇提過兩種已開啟表單的語系切換方法,一種是透過遞迴搭配ComponentResourceManager,一種是把元件移除後再呼叫InitializeComponent。這兩種方法在一般表單下運作良好,但在MDI表單上使用就必須特別的留意。 先讓我們來看一下在MDI表單上使用會發生的問題。這邊使用內建的MDI Parent,在其工具列上放了兩個按鈕,分別對應上面提到的兩個切換語系的寫法。 接著建立要拿來開啟的MDI子表單,其上放了個測試用的選單選項,設好其選單選項的合併設定與中文語系要顯示的字串,並跟MDI主表單一樣也放置兩個切換語系按鈕。 當子表單被叫起時,子表單的選單選項就會被合併至主表單的選單上。 在切換語系時就會發現第一種切換語系的方法,不論在子視窗抑或是在主視窗都無法使用。而第二種切換語系的方法,則是在主視窗切換會把所有子視窗都關閉,在子視窗切換會有錯誤的結果。 會有這樣的現象,是因為子視窗選單選項被主視窗合併,導致子視窗選單找不到任何選單選項,而主視窗選單雖然找的到子視窗的選單選項,卻不知道他是子視窗的選單選項。就算知道,該選單選項的資源也不在主視窗上。目前知道的解法就是讓選單先離開合併狀態,切換語系後再合併選單。 ...

April 25, 2010 · 2 min · 549 words · Larry Nung

[VB.NET]密碼框顯示程式探討與其簡易的保護之道

相信大家都看過甚至用過密碼顯示工具,其原理Rico大[C#][WinForm]擺脫密碼透視小工具這篇已經把概念給帶出來了,主要是要過濾WM_GETTEXT與WM_SETTEXT兩個訊息(WM_SETTEXT過濾的原因不詳,這邊直接沿用),但除了取得密碼外,也有的工具是可以讓密碼直接顯示的,那要怎摸做呢?很簡單,其實密碼框是透過設定EM_SETPASSWORDCHAR屬性來達到用星號隱藏密碼的效果,因此我們只要利用PostMessage把密碼框的EM_SETPASSWORDCHAR屬性給取消即可,簡易的程式如下。 _ Private Shared Function WindowFromPoint(ByVal Point As Point) As IntPtr End Function ...

April 24, 2010 · 2 min · 745 words · Larry Nung