2007-11-30

Visual Studio 2008 在 Vista x64 上不能 Edit and Continue?

Visual Studio 在 x64 的系上不支援 Edit and Continue(E&C)? 真的嗎?

image

今天在 x64 Vista 上的 VS2008 要 debug 程式的時候, 一直被警告必須重新編譯程式, 原本以為是因為 lambda expression 或是 anonymous function 的關係, 後來寫了一個更簡單的類別測試了一下, 發現還是不行, 只好向 Google 求助!

原來是 64-bit CLR 不支援 E&C, 但是只要編譯時選擇 x86 平台的話, 就可以再啟動 E&C 的功能囉!!

怎麼設定呢? 在 Project 上點右鍵, Properties/Build, 把 Platform Target 設成 x86 就行啦!

image

2007-11-20

Visual Studio 2008 正式登場

經過漫長的等待, Microsoft 終於在 11/19 正式將 Visual Studio 2008 以及 .NET Framework 3.5 交付 RTM, 新增多達超過 250 個的功能, 包含連 Visual Studio Express 也同步登場, 有興趣的人趕快去 MSDN 下載吧!

消息來源: http://msdn2.microsoft.com/en-us/vstudio/default.aspx

2007-11-17

用 JavaScript 存取 Firefox 剪貼簿

Firefox 預設是不能用 JavaScript 存取系統剪貼簿(Clipboard)的, 如果想要開放這項功能, 要改 Fifefox 的設定才行。

  1. 先在網址列輸入 about:config。
  2. 然後找到 signed.applets.codebase_principal_support, 把它設為 true 就行了。
  3. 然後再把以下的 code 找個適當的地方放, 然後就可以呼叫 CopyToClipboard("your text....") 把字串複製到剪貼篿啦!

值得注意的是在每次呼叫的時候, Firefox 會彈出一個對話視窗詢問是否允許存取, 要按 "是" 才行!

secdialog

function CopyToClipboard(copytext)
{
	if (window.clipboardData)
	{
		window.clipboardData.setData('Text', copytext);
	}
	else if (window.netscape)
	{
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) return;

		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) return;

		var str = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);
		str.data=copytext;

		trans.addDataFlavor('text/unicode');
		trans.setTransferData('text/unicode',str,copytext.length*2);

		var clipid=Components.interfaces.nsIClipboard;
		if (!clipid) return false;

		clip.setData(trans,null,clipid.kGlobalClipboard);
	}
	else
	{
		return false;
	}
	return false;

}

2007-11-13

整合家中的遙控器: SONY RM-VL600


隨著客廳的視聽設備一件一件的增加(電視, DVD, 擴大機, TIVO, XBOX360), 遙控器的數量也就跟著變多, 想要享受比較好的聲光效果, 就必須同時操控 3 隻以上的遙控器, 實在是很麻煩, 一直以來就希望能有一個解決方案來改善這樣的狀況(曾經想用 PDA 來取代遙控器, 但是想也知道, 手感及操控性就是差很多)。

曾經有朋友介紹一隻羅技的遙控器(Harmony 880), 上網查了一下, 功能超強, 還有顯示螢幕而且可程式化 但是價位有點高, 而且還有充電座, 感覺像無線電話一樣, 應該挺耗電的, 想想覺得不太適合, 所以就放棄了, 時間久了也就忘了這回事。

前幾天不小心看到網友在討論 SONY 的 RM-VL600, 看了之後覺得價格合理(在 Y拍 只要 NT $890 含運), 功能也很不錯(最重要的就是學習功能啦), 所以就敗了一隻回家, 實際使用之後, 覺得很滿意(以 890 的價格來說), 手感很好, 外觀也很有質感, 而且還提供了 4 組巨集鍵, 可以記住連續動作, 一次就可以把所有相關的電器一次打開, 不用自己一個一個來, 實在是太方便了, 所以從此以後客廳的電器就只要一隻遙控器就行囉~~~

相關參考: http://ying.homedns.org/wp/2007/09/268/

2007-11-09

Email 中的 html 附件在某些軟體中會直接顯示內容

相信大多數的程式設計師都寫過寄信的程式, 而些其中一定會有要夾帶附件的情形! 幾天前有個客戶提出了一個問題, 當然這個問題在我們這裡都不會發生(所有的程式都是這樣, 只有在你那兒會有問題, 在我這兒都是好的)!

問題的內容大概是說客戶在打開由系統寄出的 mail 時, 會看到一堆亂碼, 而且附件檔案不見了! 怎麼會這樣咧? 我們內部的測試人員都說沒有這樣的情形啊! 深入了解一下, 才知道原來客戶的郵件軟體是 Notes(又是 Notes), 而他們所看到的亂碼其實是一個格式為 html 的附件, 只不過在 Notes 中會把 html 附件的內容直接秀在畫面上, 然後那份 html 的編碼又和郵件內容的編碼不同, 然後就造成這樣的結果啦!!

既然知道了問題是怎麼發生的, 就來找解決的方法吧! 先用 Outlook 寄出同一份附件檔試看看, 咦~~怎麼附件乖乖的在他應該在的位置咧? 那就很明顯一定是郵件內有某些檔頭不一樣的關係, 把兩份郵件的原始碼稍稍的比較了一下, 解答出現了:

mailheader

所以解決的方法就是把 Attachment 的 ContentDisposition.DispositionType 設成 System.Net.Mime.DispositionTypeNames.Attachment 之後再加入到 MailMessage 中就可以啦!!

Attachment data = new Attachment(filename);
data.ContentDisposition.DispositionType = DispositionTypeNames.Attachment;