-
照著 MSDN Create and Embed an Application Manifest (UAC) 一文的說明,為.NET程式附加.manifest檔案註記為需管理者權限執行,並在Visual Studio專案屬性的Post Build Event中加入 mt.exe -manifest "$(ProjectDir)$(TargetName).exe.manifest" -updateresource:"$(TargetDir)$(TargetName).exe;#1"...
-
從 CodePlex 下載SourceCode回家玩,Build時卻發生錯誤: The "ValidateXaml" task failed unexpectedly. System.IO.FileLoadException: Could not load file or assembly 'file:///C:\WorkRoom\WP7\3rdParty\PhoneControls\Phone.Controls.Samples.dll' or one of its...
-
有個點子,想在WinForm上跑程式模擬出Web Server功能,讓Browser或程式可以透過HTTP協定與其溝通。既然想到,就動手做看看囉! HTTP Server絕大部分的核心功能,其實都可用.NET搞定: 用 TcpListener 接受特定Port連入的TCP連線,取得 NetworkStream ,以StreamReader、StreamWriter讀取及寫入資料... .NET BCL 真是應有盡有!相較之下,以前那種基礎元件跟函式庫都得自己張羅的時代,只能用茹毛飲血來形容。 有了BCL的加持...
-
網友山姆先生問了一個 有趣 問 題 : 如何在Excel插入(或複製貼上)時將圖片反黑,因為經常會複製一些類似Dos的黑底白字畫面,列印時相當浪費印表機碳粉,很不環保... 這個需求其實不少螢幕擷取工具已內建了現成功能,例如: SnagIt 雖然已有工具,但畢竟還是要幾個操作步驟才能搞定。想了一下,其實應用先前 修正VS2010剪貼內容 展示過的剪貼簿 篡改 修改技巧,配合GDI+豐富的圖形處理功能,自己寫應該也不難。再加上寫程式為環保貢獻心力是很有意義的事,所以我索性當成題材小練了一下武功。 以下程式我是寫成Console...
-
想當年在初學C#時,知道C#有 unsafe 這種東西,可以解開.NET對指標(Pointer)的封印,允許像C語言一樣透過指標直接存取記憶體。對C語言沒有深厚基礎的我,模糊地知道直接存取記憶體效能較佳,卻不很是清楚它的應用時機。最近胡亂玩了一些視覺元素識別的題目,參考一些圖形運算前輩的範例程式,才訝異地發現,原來密集大量運算的場合,就是unsafe橫掃千軍的絕佳舞台。 舉個簡單的例子,假設我們在某本書的綠色書背擷取到一塊包含ISBN條碼的影像,打算透過演算法找出條碼區所在位置。由於綠色書皮與白色條碼區在顏色上有明顯區別...
-
試著用以下程式將一個有實作INotifyPropertyChanged介面的物件序列化: BinaryFormatter bf = new BinaryFormatter(); MemoryStream ms = new MemoryStream(); bf.Serialize(ms, s); 結果傳回以下錯誤: System.Runtime.Serialization.SerializationException was unhandled by user code Message="Type...
-
Asp.Net 4 是有向下相容 Asp.Net 2,和以往不一樣的地方於用 ASP.Net 4 來處理相同的程式碼,不論於第一次執行或後續處理上,都較以往快上許多,但如果想要享受新版的速度,還是有些地方要注意,不然換上去可能會有一些怪毛病,差異點可以看這篇文章 ASP.NET 4 Breaking Changes 如果要升級 ASP.Net 應用程式,最建議的方法是用 Visual Studio 2010 去幫您升級,這時他會自動更新您的 Web.Config ,不過不太表他幫你升級後就都一切OK,還是有幾個重點要注意 1. 檢查 controlRenderingCompatibilityVersion...
-
最近寫程式遇到的C#基本觀念問題--物件比對,原本信仰不夠堅定,就被唬住了。 特別整理一份隨堂考題給大家溫故知新,也順便確認自己信仰正確,意志堅定。 請使用大腦編譯並執行以下程式碼,回答其中10題比對測試的結果: using System; namespace ConsoleApplication1 { class Program { static void Main( string [] args) { //Integer Comparison int a = 1, b = 1; Console...
-
今天意外發現,LINQ to SQL在轉譯CHAR(1)欄位比對時,可能因寫法不同而產生極無效率的SQL指令! 當資料表的欄位為CHAR(1)時,在DataContext裡產生的 對應物件型別 是char,而我們直覺上可能寫成CharCol == 'A'的比對條件。但今天發現一件可怕的事... CharCol == 'A'的寫法會被轉換成極無效率的WHERE UNICODE(CharCol) = 65 對SQL查詢效能略有研究的人都知道,Func(SomeCol)...
-
前天寫了一篇 非同步方法之同步化及逾時機制 ,與chicken大人討論程式碼中Polling的部分(指每隔一段時間檢查一次結果的輪詢寫法),固然邏輯簡單,但效率與精確度不優,但若被呼叫的元件本身不提供"完成後主動通知"的機制,Polling雖然討厭,卻也無法避免! 若被呼叫端在完成工作時,可透過事件回呼方式通知呼叫方,則整個局勢就改觀了! 於是索性也 提筆 敲鍵練習一番,補充"完成後會回Call"情境的做法。 如下例,我們在AsyncJobClass完成工作後...
-
The primary new feature of Ver 1.4 is batch mode ! Now you can run Mini C# Lab program as a scheduled task, no UI interactivity is needed. Here are some batch argument examples: Load and execute x:\temp\test.cs, use the output to overwrie x:\temp\log...
-
在設計查詢介面時,下拉式選單是很常見的條件選取方式,而往往我們都會再加上一個"不限條件"選項,允許使用者不限制條件,列出所有項頁。舉例來說: 在設定查詢地區的下拉選單(例如: ddlArea),除了列出基隆市、台北市、台北縣、桃園縣...等各縣市Option外,常會再多一個"所有地區"選項,將Option Value設定='*',選取時表示不限定地區。在Server端,便要將這些篩選條件轉為SQL指令,如何將'*'視為不限地區...
-
找資料時發現 GC.GetTotalMemory ()這個方法,看到有些人用它來測量記憶體使用狀況,我也好奇玩了一下,包成一個MemWatch Class(比照Stopwatch的概念): //簡易版的記憶體用量觀察工具 // 透過觀察Managed Heap的總使用量變化 // 粗略推估某段程式所耗用的記憶體大小 class MemWatch { //比較記憶體使用量變化的基準值 private long _lastTotalMemory = 0; //記憶體使用量變化 public long...
-
透過程式直接將Text內容轉換成PDF的程式範例,寫來給其他組同事做為系統整合模組開發參考,順便PO文備忘。 要在.NET轉PDF,當然少不了大家都說讚的 iTextSharp ,程式很簡單,我還順手加了一個遇到"\f" (0x0C) Form Feed符號就強制換新頁的功能。 <%@ Page Language="C#" %> <%@ Import Namespace="iTextSharp.text" %> <...
-
因為工作關係,常需要寫測試軟體,偶爾會看到訪間的 Log 畫面是彩色的,也想動手將測試結果輸出彩色的 一般我都會用 ListBox 作為顯示畫面,因為 ListBox 以行為單位,很適合我的使用,但也很不幸的 .Net 並沒有辦法將 ListBox 每行用不同的顏色,不過其實還是可以讓他用 "畫" 的完成這項作業 首先先把 DrawMode 設定為 OwnerDrawVariable ,再加入 listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem) ...