2010年7月27日 星期二

Visual Studio 2010 方案平台未出現在工具列

假設VS2010安裝完成之後,只有組態管理員沒有出現平台方案,這時候先在工具列上點選"自訂"


然後點選 "加入命令" -> "建置" -> "方案平台" 按確定這時候就會把方案平台加入到工具列

2010年4月1日 星期四

搜尋資料夾

在C#裡面往往要對檔案處理很多時候都必須用到遞迴,因為資料夾也許不只一層
但是若想要快速計算資料夾裡的檔案數量,也需可以利用下面語法會比較快得到
想要的結果,而不再需要一層一層遞迴去計算。

讀取任何資料建立Datagridview

產生報表之前必須要先建立資料集,而建立資料集必須先建立相關的資料表如下所表示

Setup Factory 7 將.Net Framework 嵌入安裝程式裡

因為最近許多專案都會有.NET Framework不對或者是沒有的狀況下,因此我想乾脆把它包進去安裝程式以避免類似的情況發生。

操作步驟

1. 在"資源"裡的"引導檔案"的項目中加入.Net Framework 2.0 (例如dotnetfx2.0.exe)
2. 在"動作"底下的"啟動時"中加入下列的語法

**.Net Framework 2.0**
result = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\.NETFramework\\policy\\v2.0");
if (result == false) then
result = File.Run(SessionVar.Expand("%TempLaunchFolder%\\dotnetfx2.0.exe"), "", "", SW_SHOWNORMAL, true);
end

**.Net Framework 3.5**
result = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\.NETFramework\\AssemblyFolders\\v3.5");
if (result == false) then
result = File.Run(SessionVar.Expand("%TempLaunchFolder%\\dotnetfx3.5.exe"), "", "", SW_SHOWNORMAL, true);
end

2010年3月10日 星期三

2010年2月9日 星期二

C# Image 的解析度與格式轉換的設定

之前因為常常用到圖像轉換,或是透過C#來進行一些圖像處理~但是最近發現到一個現象就是轉換後的圖像在檔案資訊裡的解析度(DPI)都變為96,後來上了Google大神查證之後發現只要在處理或式轉換時有用到 New Bitmap 而且您沒有設定解析度,這時候Bbitmap就會採用螢幕預設的解析度96DPI,所以檔案在儲存之後當案資訊裡的解析度也會變成96DPI。

另外也發現到不只是Bitmap會有這種情況,連影像編輯軟體也有舉例來說 : 透過ACDSEE進行轉檔不過格式轉換後發現到檔案資訊理的解析度也變成了96DPI,這實在是很困擾的一件事,或許有人會認為變成96DPI也沒什麼影響,不過對於那些需要將影像輸出的使用者可能就很麻煩,因為DPI被改變所以無法得知原來的DPI相對來說在圖像輸出時可能就會造成品質不好,所以為了預防這種狀況,我們可以利用下面的方法來改善。




另外就是若影像在儲存時您未設定任何的格式,通常在C#裡他會以PNG的格式來儲存但是副檔名並不會更改,這時候就會產生格式上錯誤的問題,因此在圖像儲存時最好還事先設定圖像儲存格式以免造成格式與附檔名不符的情況。

2010年1月28日 星期四

C# 偵測(Detection)USB的插入(Insert)以及HID的插入和拔除(Remove)

好久沒有上來發表文章了 ~ 最近都在coding到沒時間寫 ~掉入無盡的Debug深淵,回頭驚醒時沒想到已經一月底了~~我竟然錯過新春第一砲~~ㄜ.....不是,是新春第一帖~~算了,來分享一下最近遇到的問題。

因為最近有專案上的需要,所以必須在應用程式理自動偵測是否有USB插入以及拔除,當然其擴充應用相當多例如您可以利用此段程式來辨識使用者插入哪種USB裝置,簡單一點則可以利用偵測USB來達到移除裝置的效果。

在網路上也Google相當多的語法不過還是以偵測"硬碟"的code比較多,不過對於我來說我需要控制到最前方也就是說插入時....(好像有點色~~還是我想太多~"~)..,Insert時我就要得到此即時訊息以方便我來判斷裝置,所以說偵測硬碟或USB隨身碟的code比較不適合,因此我找到了這段程式是可以即時偵測USB的狀態,Insert時或是Remove時,以下就是程式碼分享給大家。

其中若想要修改偵測裝置或是增加可以修改這兩行,USB為GUID_DEVINTERFACE_USB_DEVICE =new Guid("A5DCBF10-6530-11D2-901F-00C04FB951ED");HID為GUID_DEVINTERFACE_HID = new
Guid("4D1E55B2-F16F-11CF-88CB-001111000030")。