2009年10月28日 星期三

用Javascript來隱藏div

先在頁面上建立Div標籤
<div id="sbtitle">
<div onclick='showhidediv("toggle");'>最新日誌</div>
<div id="toggle" style="display:none;">最新日誌內容</div>
Javascript控制Div開啟隱藏的語法
function showhidediv(id){
try{
var sbtitle=document.getElementById(id);
if(sbtitle){
if(sbtitle.style.display=='block'){
sbtitle.style.display='none';
}else{
sbtitle.style.display='block';
}
}
}catch(e){}
}

2009年10月20日 星期二

txt文字檔取字串的方法

     string text;
using (System.IO.StreamReader sr = new System.IO.StreamReader(path))
{
text = sr.ReadToEnd(); //設中斷點, 看 text 內容找分行及分欄符號
}

string lineDelimitor = "\r\n"; //假設從 text 看到行與行間隔著 \r\n
string colDelimitor = "\t"; //假設從 text 看到每行欄與欄間隔著 \t

string[] lines = text.Split(new string[] { lineDelimitor }, StringSplitOptions.None); //先分行
string[][] data = new string[lines.Length][];
for(int i=0; i<lines.Length; i++)
data[i] = lines[i].Split(new string[] { colDelimitor }, StringSplitOptions.None); //再把每行分欄

data[0] 代表第一行,
string[] row3 = data[2]; // 第三行各欄的資料

[C#] 字串輸出格式

C#的String.Format舉例
stringstr1 =string.Format("{0:N1}",56789); //result: 56,789.0
stringstr2 =string.Format("{0:N2}",56789); //result: 56,789.00
stringstr3 =string.Format("{0:N3}",56789); //result: 56,789.000
stringstr8 =string.Format("{0:F1}",56789); //result: 56789.0
stringstr9 =string.Format("{0:F2}",56789); //result: 56789.00
stringstr11 =(56789 / 100.0).ToString("#.##"); //result: 567.89
stringstr12 =(56789 / 100).ToString("#.##"); //result: 567

C 或 c 貨幣
Console.Write("{0:C}", 2.5); //$2.50
Console.Write("{0:C}", -2.5); //($2.50)

D 或 d 十進位數字
Console.Write("{0:D5}", 25); //00025

E 或 e 科學型
Console.Write("{0:E}", 250000); //2.500000E+005

F 或 f 固定點
Console.Write("{0:F2}", 25); //25.00
Console.Write("{0:F0}", 25); //25

G 或 g 常規
Console.Write("{0:G}", 2.5); //2.5

N 或 n 數字
Console.Write("{0:N}", 2500000); //2,500,000.00

X 或 x 十六進位
Console.Write("{0:X}", 250);

ASP.NET設置資料格式與String.Format使用
{0:d} YY-MM-DD
{0:p} 百分比00.00%
{0:N2} 12.68
{0:N0} 13
{0:c2} $12.68
{0:d} 3/23/2003
{0:T} 12:00:00 AM
{0:男;;女}

我 們知道在DataFormatString 中的 {0} 表示資料本身,而在冒號後面的格式字串代表所們希望資料顯示的格式;另外在指定的格式符號後可以指定小數所要顯示的位元數。例如原來的資料為 「12.34」,若格式設定為 {0:N1},則輸出為「12.3」。其常用的數值格式如下表所示:

格式字串 資料 結果
"{0:C}" 12345.6789 $12,345.68
"{0:C}" -12345.6789 ($12,345.68)
"{0:D}" 12345 12345
"{0:D8}" 12345 00012345
"{0:E}" 12345.6789 1234568E+004
"{0:E10}" 12345.6789 1.2345678900E+004
"{0:F}" 12345.6789 12345.68
"{0:F0}" 12345.6789 12346
"{0:G}" 12345.6789 12345.6789
"{0:G7}" 123456789 1.234568E8
"{0:N}" 12345.6789 12,345.68
"{0:N4}" 123456789 123,456,789.0000
"Total: {0:C}" 12345.6789 Total: $12345.68

其常用的日期格式如下表所示:

格式 說明 輸出格式
d 精簡日期格式 MM/dd/yyyy
D 詳細日期格式 dddd, MMMM dd, yyyy
f 完整格式 (long date + short time) dddd, MMMM dd, yyyy HH:mm
F 完整日期時間格式 (long date + long time) dddd, MMMM dd, yyyy HH:mm:ss
g 一般格式 (short date + short time) MM/dd/yyyy HH:mm
G 一般格式 (short date + long time) MM/dd/yyyy HH:mm:ss
m,M 月日格式 MMMM dd
s 適中日期時間格式 yyyy-MM-dd HH:mm:ss
t 精簡時間格式 HH:mm
T 詳細時間格式 HH:mm:ss

電腦新病毒藏身資源回收桶「W32.Pilleuz」蠕蟲病毒-sysdate.exe

藏身在電腦系統中的資源回收桶,巧妙躲過檢查。掃毒軟體公司諾頓近日發現,一種「W32.Pilleuz」蠕蟲病毒,以此方式避開掃毒,並進而存取電腦檔案或攻擊電腦,呼籲電腦使用者經常更新病毒定義檔,備份檔案及掃毒,以免電腦受損。

該公司指出,電腦使用者一般很少注意到電腦系統的資源回收桶內的檔案內容。這次發現的蠕蟲病毒就利用此一特性,隱身於資源回收桶,一旦開啟時,病毒會複製到資源回收桶中,並且命名為「sysdate.exe」檔案,接著新增登錄表,在每次開機時都會自動執行檔案。

此一病毒攻擊方式,以後門程式從遠端存取使用者電腦檔案,還可讓病毒自動更新,竊取使用者資料,包括保存在電腦中的密碼,瀏覽器資料等,更會利用使用者電腦發起(Dos)攻擊,以及修改使用者檔案等惡行。

W32.Pilleuz病毒的傳播方式非常多樣,主要的像是透過即時訊息,發送惡意連結給使用者的好友;透過行動儲存裝置;及自身複製到共享軟體的共同目錄,借用共享軟體傳播出去。

C#常用字串函數

length() 取得字串長度
Remove(int1,int2) 從int1(起始位置)開始刪除長度為int2的字串
Insert(int,string) 在int的位置插入string
Substring(int) 從參數開始取出剩下的字串
Substring(int1,int2) 取出int1開始長度為int2的字串

IndexOf(string) 傳回第一次搜尋到字串(string)的位置
IndexOf(string,int) 傳回第一次搜尋到字串(string)的位置,開始搜尋位置為int
LastIndexOf(string) 跟IndexOf功能類似,但從後面開始搜尋
LastIndexOf(string,int) 跟IndexOf功能類似,但從後面開始搜尋
Replace(char,char) 取代字元

ToLower() 將英文轉成小寫
ToUpper() 將英文轉成大寫
Trim() 刪除字串前後的空白字元
TrimEnd() 刪除字串尾部的空白字元
TrimStart() 刪除字串開頭的空白字元

2009年10月19日 星期一

TeamViewer 網管的惡夢,資安怎麼控管?

類似 TeamViewer 的軟體越來越多了,看起來只能見一個殺一個,見兩個殺一雙。舉個最夯的軟體 TeamViewer ,可遠端近端雙向互連,只要可以上網就可以使用,可以遙控、可以傳檔、可以 CHAT ,談到這裡就頭皮發麻了。更恐怖的是大家都可以免安裝, TeamViewer官方直接就提供免安裝軟件服務...

所以下面就教你如何封鎖該軟體的連線
TeamViewer 工作原理是透過 TeamViewer Server Connect,
它會優先連接 master.dyngate.com,
以取得連線資料,
並使用 UDP Port Connect Remote Host,
所以只要把 master.dyngate.com --> 87.230.73.23 擋掉,
TeamViewer 就不能用了。

SQL Injection之解決建議措施及相關資訊彙整

漏洞說明:
SQL Injection是一種未做好輸入查驗(Input Validation)的問題,即在撰寫應用程式時,沒有對使用者的輸入做妥善的過濾與處理,便將其組合成SQL指令,傳送給SQL server執行。因而若使用者輸入之資料中含有某些對資料庫系統有特殊意義的符號或命令時,便可能讓使用者有機會對資料庫系統下達指令,而造成入侵所帶來的損失。事實上,這樣的疏漏並不是資料庫系統的錯誤,而是程式設計師或軟體開發者的疏忽所產生的。

影響平台:
使用網站系統:Apache、IIS、Domino、Netscape

使用程式碼:
ASP、PHP、JSP

攻擊破壞SQL資料庫:
包括 MS-SQL、MySQL、Oracle、Sybase、DB2 等等

SQL Injection可能造成的危害:
透過SQL Injection操作資料庫,可以新增、更動或刪除資料庫的資料,造成資料遺漏或是不正確;如果操作資料庫的使用者權限為系統管理者,那麼還有可能造成其他更嚴重的破壞,例如奪取資料庫的控制權。

SQL Injection的影響範圍:
只要有使用或連結資料庫的軟體、網路服務都有可能面臨SQL Injection的威脅。乍聽之下影響範圍似乎很大,但是大多數的商用軟體並不會有這樣的問題;比較嚴重的可能是網路服務部分,由於網站程式開發者的素質良莠不齊,或是對於資料庫的指令操作與系統管理不熟悉,所以只要有提供表單(Form)輸入介面的網站,都有可能面臨威脅。

解決之道與預防方法:
1. 對於字串的輸入加以過濾,並限制長度。例如 ' 或 " 這種單、雙引號都應該過濾掉,這樣可以避免輸入者利用 ' 或 " 這種單、雙引號截斷原本的SQL指令再插入自己的指令。過濾的方法依開發語言的不同而有不同的方法,以VB Script/ASP為例,過濾單引號的簡單方法為: SafeString = Replace(InputString, “'”, “''”)


2. 若輸入為數值資料則須確定其只輸入0~9之數字,若包含其他英文字母或符號則一律拒絕接受。

3. 對於前兩項的檢查必須寫在server端的程式上,如PHP、ASP及其他各種CGI程式,而不能將其寫於Java script或VB script等會於client端執行的程式上,因惡意使用者可將client端程式另存於本地端硬碟後,再將其修改以略過檢查。並且不要在server上留有.bak或.old檔,若有.inc檔也不要取與主.asp相同或容易猜測之檔名,因為一般網頁伺服器會允許這些檔案的下載。

4. 加強資料庫帳號與權限管理,讓網站或軟體不以系統管理者的帳號連結資料庫,而對每個資料庫設定一組個別的帳號與強健的密碼,限制這組帳號僅能對該資料庫有讀寫權限。當面臨SQL Injection的侵入時,分權管理能夠限制損害的範圍,減少因為疏忽造成的損失。

5. 做好正確錯誤處理,最理想狀態是所有使用者輸入皆在程式設計者預期之中;若萬一出現非預期的情形也要做好例外處理,勿讓使用者直接看到系統傳回的錯誤訊息,以免惡意使用者由系統錯誤訊息中獲取過多資訊。

6. 全面檢視軟體的程式碼。這在一般商用軟體或應用軟體不太可能做到,但是可以詢問軟體廠商這類問題,以確保他們有進行檢查;網站程式的部分,可以請開發的程式設計師做一次全面性的檢查。

7. 各資料庫系統安裝時通常會有一些預先定義的Table,若確定這些Table並不需要使用到,最好予以刪除,以免惡意使用者利用這些Table獲取過多資訊。

8. 做好軟體開發控管。針對每個資料欄位的Input,確實做好檢查的工作,以降低開發出面臨威脅的程式或軟體。

轉自 邦邦的部落格 http://blog.xuite.net/longine.chen/itforum/14788402?ref=rel

2009年10月18日 星期日

Web service的技術特點

Webservice的技術特點

長項一: 跨防火牆的通信
如果應用程序有成千上萬的用戶,而且分佈在世界各地,那麼客戶端和服務器之間的通信將是一個棘手的問
題。因為客戶端和服務器之間通常會有防火牆或者代理服務器。在這種情況下,使用DCOM就不是那麼簡單,通常也不便於把客戶端程序發佈到數量如此龐大的每一個用戶手中。傳統的做法是,選擇用瀏覽器作為客戶端,寫下一大堆ASP頁面,把應用程序的中間層暴露給最終用戶。這樣做的結果是開發難度大,程序很難維護。
舉個例子,在應用程序裡加入一個新頁面,必須先建立好用戶界面(Web頁面),並在這個頁面後面,包含相應商業邏輯的中間層組件,還要再建立至少一個ASP頁面,用來接受用戶輸入的信息,調用中間層組件,把結果格式化為HTML形式,最後還要把「結果頁」送回瀏覽器。要是客戶端代碼不再如此依賴於HTML表單,客戶端的編程就簡單多了。

如果中間層組件換成Web Service的話,就可以從用戶界面直接調用中間層組件,從而省掉建立ASP頁面的那一步。要調用Web Service,可以直接使用Microsoft SOAP Toolkit或.NET這樣的SOAP客戶端,也可以使用自己開發的SOAP客戶端,然後把它和應用程序連接起來。不僅縮短了開發週期,還減少了代碼複雜度,並能夠增強應用程序的可維護性。同時,應用程序也不再需要在每次調用中間層組件時,都跳轉到相應的「結果頁」。

從經驗來看,在一個用戶界面和中間層有較多交互的應用程序中,使用Web Service這種結構,可以節省花在用戶界面編程上20%的開發時間。另外,這樣一個由Web Service組成的中間層,完全可以在應用程序集成或其它場合下重用。最後,通過Web Service把應用程序的邏輯和數據「暴露」出來,還可以讓其它平台上的客戶重用這些應用程序。

長項二: 應用程序集成
企業級的應用程序開發者都知道,企業裡經常都要把用不同語言寫成的、在不同平台上運行的各種程序集成起來,而這種集成將花費很大的開發力量。應用程序經常需要從運行在IBM主機上的程序中獲取數據;或者把數據發送到主機或UNIX應用程序中去。即使在同一個平台上,不同軟件廠商生產的各種軟件也常常需要集成起來。通過Web Service,應用程序可以用標準的方法把功能和數據「暴露」出來,供其它應用程序使用。

例如,有一個訂單登錄程序,用於登錄從客戶來的新訂單,包括客戶信息、發貨地址、數量、價格和付款方式等內容;還有一個訂單執行程序,用於實際貨物發送的管理。這兩個程序來自不同軟件廠商。一份新訂單進來之後,訂單登錄程序需要通知訂單執行程序發送貨物。通過在訂單執行程序上面增加一層Web Service,訂單執行程序可以把「Add Order」函數「暴露」出來。這樣,每當有新訂單到來時,訂單登錄程序就可以調用這個函數來發送貨物了。

長項三: B2B的集成
用Web Service集成應用程序,可以使公司內部的商務處理更加自動化。但當交易跨越供應商和客戶、突破公司的界限時會怎麼樣呢?跨公司的商務交易集成通常叫做B2B集成。

Web Service是B2B集成成功的關鍵。通過Web Service,公司可以把關鍵的商務應用「暴露」給指定的供應商和客戶。例如,把電子下單系統和電子發票系統「暴露」出來,客戶就可以以電子的方式發送訂單,供應商則可以以電子的方式發送原料採購發票。當然,這並不是一個新的概念, EDI(電子文檔交換)早就是這樣了。但是,Web Service的實現要比EDI簡單得多,而且Web Service運行在Internet上,在世界任何地方都可輕易實現,其運行成本就相對較低。不過,Web Service並不像EDI那樣,是文檔交換或B2B集成的完整解決方案。Web Service只是B2B集成的一個關鍵部分,還需要許多其它的部分才能實現集成。

用Web Service來實現B2B集成的最大好處在於可以輕易實現互操作性。只要把商務邏輯「暴露」出來,成為Web Service,就可以讓任何指定的合作夥伴調用這些商務邏輯,而不管他們的系統在什麼平台上運行,使用什麼開發語言。這樣就大大減少了花在B2B集成上的時間和成本,讓許多原本無法承受EDI的中小企業也能實現B2B集成。

長項四: 軟件和數據重用
軟件重用是一個很大的主題,重用的形式很多,重用的程度有大有小。最基本的形式是源代碼模塊或者類一級的重用,另一種形式是二進制形式的組件重用。

當前,像表格控件或用戶界面控件這樣的可重用軟件組件,在市場上都佔有很大的份額。但這類軟件的重用有一個很大的限制,就是重用僅限於代碼,數據不能重用。原因在於,發佈組件甚至源代碼都比較容易,但要發佈數據就沒那麼容易,除非是不會經常變化的靜態數據。

Web Service在允許重用代碼的同時,可以重用代碼背後的數據。使用Web Service,再也不必像以前那樣,要先從第三方購買、安裝軟件組件,再從應用程序中調用這些組件;只需要直接調用遠端的Web Service就可以了。舉個例子,要在應用程序中確認用戶輸入的地址,只需把這個地址直接發送給相應的Web Service,這個Web Service 就會幫你查閱街道地址、城市、省區和郵政編碼等信息,確認這個地址是否在相應的郵政編碼區域。Web Service 的提供商可以按時間或使用次數來對這項服務進行收費。這樣的服務要通過組件重用來實現是不可能的,那樣的話你必須下載並安裝好包含街道地址、城市、省區和郵政編碼等信息的數據庫,而且這個數據庫還是不能實時更新的。

另一種軟件重用的情況是,把好幾個應用程序的功能集成起來。例如,要建立一個局域網上的門戶站點應用,讓用戶既可以查詢聯邦快遞包裹,查看股市行情,又可以管理自己的日程安排,還可以在線購買電影票。現在Web上有很多應用程序供應商,都在其應用中實現了這些功能。一旦他們把這些功能都通過Web Service 「暴露」出來,就可以非常容易地把所有這些功能都集成到你的門戶站點中,為用戶提供一個統一的、友好的界面。
將來,許多應用程序都會利用Web Service,把當前基於組件的應用程序結構擴展為組件/Web Service 的混合結構,可以在應用程序中使用第三方的Web Service 提供的功能,也可以把自己的應用程序功能通過Web Service 提供給別人。兩種情況下,都可以重用代碼和代碼背後的數據。

轉自http://big5.webasp.net/article/5/4876.htm

什麼是web service

關鍵字: SOAP XML XSD WSDL

什麼是webservice
從表面上看,Web service 就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用編程的方法通過Web來調用這個應用程序。

對Web service 更精確的解釋: Web services是建立可互操作的分佈式應用程序的新平台。作為一個Windows程序員,你可能已經用COM或DCOM建立過基於組件的分佈式應用程序。COM是一個非常好的組件技術,但是我們也很容易舉出COM並不能滿足要求的情況。Web service平台是一套標準,它定義了應用程序如何在Web上實現互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平台上寫Web service ,只要我們可以通過Web service標準對這些服務進行查詢和訪問。

不管你的Web service是用什麼工具,什麼語言寫出來的,只要你用SOAP協議通過HTTP來調用它,總體結構都應如下圖所示。通常,你用你自己喜歡的語言(如VB 6或者VB.NET)來構建你的Web service,然後用SOAP Toolkit或者.NET的內建支持來把它暴露給Web客戶。於是,任何語言,任何平台上的客戶都可以閱讀其WSDL文檔,以調用這個Web service。客戶根據WSDL描述文檔,會生成一個SOAP請求消息。Web service都是放在Web服務器 (如IIS) 後面的,客戶生成的SOAP請求會被嵌入在一個HTTP POST請求中,發送到Web服務器來。Web服務器再把這些請求轉發給Web service請求處理器。對VB 6程序來說,Web service請求處理器是一個與SOAP Toolkit組件協同工作的ASP頁面或ISAPI extension。而對VB.NET程序來說,Web service請求處理器則是一個.NET Framework自帶的ISAPI extension。請求處理器的作用在於,解析收到的SOAP請求,調用Web service,然後再生成相應的SOAP應答。Web服務器得到SOAP應答後,會再通過HTTP應答的方式把它送回到客戶端。

基本概念
SOAP
Web service建好以後,其他人就會去調用它。簡單對像訪問協議(SOAP)提供了標準的遠程過程調用( RPC)方法來調用Web service。SOAP規範定義了SOAP消息的格式,以及怎樣通過HTTP協議來使用SOAP。SOAP也是基於XML和XSD的,XML是SOAP的數據編碼方式。客戶端和服務端之間的方法調用請求和結果返回值都放在這些消息裡。

XML和XSD
可擴展的標記語言(XML)是Web service平台中表示數據的基本格式。除了易於建立和易於分析外,XML主要的優點在於它既是平台無關的,又是廠商無關的。無關性是比技術優越性更重要的。XML解決了數據表示的問題,但它沒有定義一套標準的數據類型,更沒有說怎麼去擴展這套數據類型。例如,整形數到底代表什麼?16位,32位,還是64位?這些細節對實現互操作性都是很重要的。W3C制定的XML Schema(XSD)就是專門解決這個問題的一套標準。它定義了一套標準的數據類型,並給出了一種語言來擴展這套數據類型。Web service平台就是用XSD來作為其數據類型系統的。當用某種語言(如VB.NET或C#)來構造一個Web service時,為了符合Web service標準,所有使用的數據類型都必須被轉換為XSD類型。

WSDL(Web Services Description Language)
用於描述服務端所提供服務的XML格式。WSDL文件裡,描述了服務端提供的服務,提供的調用方法,以及調用時所要遵循的格式,比如調用參數和返回值的格式等等。WSDL 很像COM編程裡的IDL(Interface Description Language),是服務器與客戶端之間的契約,雙方必須按契約嚴格行事才能實現功能。

WSML(Web Services Meta Language)
用於描述WSDL裡提供的方法與實現該方法的COM對像之間的映射關係。該文件是Microsoft的實現中特有的,不是SOAP標準的一部分。一般情況下,該文件只在服務端存在。

轉自 http://big5.webasp.net/article/5/4877.htm

2009年10月12日 星期一

原創-網站繁體轉簡體功能-推薦:Visual Studio International Pack

在MasterPage上的程式碼
using System.Globalization;
using System.IO;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter; using System.Threading;
using System.Configuration;
在Page_Load加上
        if (!IsPostBack)
{
if (Session["CultureName"] == null)
{
if (Response.Cookies["lang"].Value == null)
{
Session["CultureName"] = CultureInfo.CurrentCulture.Name;
}
else
{
Session["CultureName"] = Response.Cookies["lang"].Value;

}
}
}
繁體按鈕
    protected void LinkButton1_Click(object sender, EventArgs e)
{
Session["CultureName"] = "zh-TW";
Response.Cookies["lang"].Value = "zh-TW";
Response.Cookies["lang"].Expires = DateTime.Now.AddDays(60);
Page.Response.Redirect(Page.Request.Url.ToString(), true);
}
簡體按鈕
    protected void LinkButton2_Click(object sender, EventArgs e)
{
InitializeCulture();
Session["CultureName"] = "zh-CN";
Response.Cookies["lang"].Value = "zh-CN";
Response.Cookies["lang"].Expires = DateTime.Now.AddDays(60);
Page.Response.Redirect(Page.Request.Url.ToString(), true);
}
在網頁的Render事件
    protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
try
{
string lang = Session["CultureName"].ToString();
string sText;
StringWriter oStringWriter = new StringWriter();
HtmlTextWriter oHtmlWriter = new HtmlTextWriter(oStringWriter);
base.Render(oHtmlWriter);
oHtmlWriter.Flush();
oHtmlWriter.Close();
sText = oStringWriter.ToString();
if (lang == "zh-CN")
{
sText = translate.Big5ToGb(sText);
}
else if (lang == "zh-TW")
{
sText = translate.GbToBig5(sText);
}
Response.Write(sText);
}
catch
{
}
}
在translate.cs 理撰寫
    public static string Big5ToGb(string Text)
{
Text = UnicodeDictionary.StrToUnicode16(Text);
return ChineseConverter.Convert(Text, ChineseConversionDirection.TraditionalToSimplified);
}
public static string GbToBig5(string Text)
{
Text = UnicodeDictionary.StrToUnicode16(Text);
return ChineseConverter.Convert(Text, ChineseConversionDirection.SimplifiedToTraditional);
}
這樣就可以將整各網頁做繁簡轉換了

繁體轉簡體功能-推薦:Microsoft Visual Studio International Pack 1.0 版

Microsoft Visual Studio International Pack 是一套國產的類別庫喔,是由台灣微軟的工程師所開發的,主要是幫助 .NET 程式開發人員建立全球化的應用程式,其中包括許多功能,其中有一套我們很可能會用到的「繁簡轉換」功能,也就是「中文繁簡轉換類別庫」。

在你下載回 vsintlpack1.zip 檔案並解壓縮後,會有個 CHTCHSConv.msi 安裝檔,這個就是「中文繁簡轉換類別庫及 Add-In 工具」,安裝好之後相關檔案會放在以下目錄(好長的目錄名稱啊):

C:\Program Files\Microsoft Visual Studio International Pack\Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool

你只要將該目錄中的 ChineseConverter.dll 組件複製到你網站的 Bin 目錄下就能用了,要使用之前必須先引用其命名空間:

using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
其中只有一個 ChineseConverter 靜態類別與一個 ChineseConversionDirection 列舉(enum),使用方式很簡單,如果要將繁體字轉成簡體字可參考以下程式碼:
string TWS = "領導有策略";
string CHS = ChineseConverter.Convert(TWS, ChineseConversionDirection.TraditionalToSimplified);
如果要將簡體字轉成繁體字可參考以下程式碼:
string CHS = "领导有策略";
string TWS = ChineseConverter.Convert(CHS, ChineseConversionDirection.SimplifiedToTraditional);
夠簡單吧!

除了單純的「字對字」轉譯之外,如果使用者電腦有安裝 Microsoft Office 2007 的話(使用這個組件的主機),他還會利用 Office 2007 內建的一些「詞彙轉譯」功能,發現雖然文件說有安裝 Microsoft Office 2007 可以讓中文繁簡體轉換出來的品質更好,不過我測試了一下發現其實沒差,不知道品質好在哪裡?不過不失為一個好用的工具啦! ^_^

參考網址:http://blog.miniasp.com/post/2008/05/Recommand-Microsoft-Visual-Studio-International-Pack-1-0.aspx

好用的 Microsoft Visual Studio International Pack 在 2009/3/31 更新 Microsoft Visual Studio International Pack 1.0 SR1版。而SR1 在功能修正日文 Kana 轉換類別庫及日文 Yomi 自動完成類別庫, 其他的元件皆和 1.0 版本相同。

http://www.microsoft.com/downloads/details.aspx?FamilyID=44CAC7F0-633B-477D-AED2-99AEE642FC10&displaylang=zh-tw

也許您還沒有使用過這個好用的東西,以下是Microsoft Visual Studio International Pack 的介紹

.NET 程式開發人員要建立一個全球化的應用程式, 必須有各式各樣不同文化及語系上的不同功能. Visual Studio International Pack 中包括了一組類別庫以滿足這樣的需求. Visual Studio International Pack 1.0 版本針對亞洲的四個不同語系, 提供了以下七個不同的元件來加強 .NET Framework 在全球化(globalization)功能上的支援.

1. 東亞語系數字格式化類別庫 - 可以將數值資料格式化成中文繁體, 中文簡體, 日文以及韓文的數值大寫字串.
2. 日文 Kana 轉換類別庫 - 可以將 Kana 字元組轉換至其他日文的表示方法.
3. 日文文字對齊類別庫 - 可以在應用程式中產生出日文特有的文字對齊字串.
4. 日文 Yomi 自動完成類別庫 - 提供一個類別庫及 TextBox 控制項範例以支援可感應日文輸入法的自動完成功能.
5. 韓文自動完成TextBox 控制項- 提供一個 TextBox 控制項以支援可感應韓文輸入法的自動完成及 Intellisense 功能.
6. 簡體中文拼音轉換類別庫 - 可幫助應用程式取得簡體中文字元的拼音及筆劃等資訊.
7. 中文繁簡轉換類別庫及 Add-In 工具 - 可幫助應用程式轉換中文繁體字串至中文簡體, 或是由簡至繁體. 此元件也包括了一個
8. isual Studio 的 Add-In 工具, 可以將資源檔中的字串做繁簡轉換. 讓使用者快速的開發出兩岸三地的應用程式.

支援的作業系統:Windows Server 2003 R2 (32-Bit x86); Windows Vista Service Pack 1; Windows XP Service Pack 3
所需軟體: Microsoft Visual Studio 2005 以及 Microsoft Visual Studio 2008, Microsoft .NET Framework 2.0, Microsoft Office 2007 (可選用 - 針對中文繁簡轉換類別庫)

2009年10月7日 星期三

進入 網路芳鄰 關閉XP Guest 詢問我帳號密碼

開始>執行>gpedit.msc 電腦設定 > Windows設定 > 安全行設定 > 本機原則 > 安全性選項 下的
帳戶:Guest帳戶狀態 必須選取『已停用』

總之網路存取:共用和安全性模式用於本機帳戶必須是『傳統-本機使用者以自身身份驗證』

這樣在網路芳鄰要進入XP的電腦,就可使用自己所設定的帳號密碼登入瞜