2009年2月4日 星期三

Design Pattern 設計模式

原文
Gof 模式
Creational 模式
物件的產生需要消 耗系統資源,所以如何有效率的產生、管理 與操作物件,一直都是值得討論的課題, Creational 模式即與物件的建立相關,在這個分類下的模式給出了一些指導原則及設計的方向。

  • Structural 模式
如何設計物件之間 的靜態結構,如何完成物件之間的繼承、實 現與依賴關係,這關乎著系統設計出來是否健壯(robust):像是易懂、易維護、易修改、耦合度低等等議題。Structural 模式正如其名,其分類下的模式給出了在不同場合下所適用的各種物件關係結構。

  • Behavioral 模式
物件之間的合作行 為構成了程式最終的行為,物件之間若有設 計良好的行為互動,不僅使得程式執行時更有效率,更可以讓物件的職責更為清晰、整個程式的動態結構(像是物件調度)更有彈性。

多執行緒模式
在很多應用中都會使用多執行緒,尤其是在Web應用中,多執行緒以 Gof 整理的模式為基礎,考量多執行緒環境中,如何組合這些基本模式來完成多執行緒安全要求。


參考資料
以下是以Java實作設計模式的介紹網站,從下面的連結開始,當中您可以找到更多設計模式的資源。

使用者入門 (Visual C++ 中的 [如何?])

使用 Visual C++
逐步解說:使用 Visual Studio IDE

介紹 Visual Studio 整合式開發環境 (IDE),並示範適用於 Visual C++ 開發人員的有用功能。

HOW TO:編譯針對 Visual Studio 中 CLR 的 C++ 程式

示範如何使用 Visual Studio IDE 編譯 Visual C++ 程式。

HOW TO:編譯說明主題的程式碼範例

示範如何編譯 Visual Studio 隨附的說明主題中的程式碼範例。

HOW TO:從命令列編譯原生 C++ 程式

示範如何從命令列編譯 Visual C++ 程式。

HOW TO:搭配 Microsoft Platform SDK 使用 Visual C++ Express 版

提供安裝 Microsoft Platform SDK 以搭配使用 Visual C++ Express Edition 的指示。

針對 UNIX 使用者的 Visual C++ 簡介

向 Microsoft 環境的新手開發人員介紹 Visual Studio 和 Visual C++。

HOW TO:從現有程式碼建立 C++ 專案

示範如何將現有的程式碼匯入至 Visual Studio。

HOW TO:建立 Windows Form 應用程式

解說如何使用 Visual Studio 建立 Windows Form 應用程式。

逐步解說:建立 Windows Form 控制項

解說如何使用 Visual Studio 建立 Windows Form 控制項,以及如何在應用程式中使用該控制項。

ASP.NET Web 服務範本 (C++)

介紹用來編寫 XML Web Service 的 ASP.NET Web 服務範本。

建立和開發 Managed 裝置專案

討論針對 Managed 裝置和針對桌上型電腦進行開發的一些差異性。

HOW TO:建立 SQL Server 專案 (C++)

提供 SQL Server 類別庫範本的概觀。

CLR 主控台應用程式範本 (C++)

介紹主控台應用程式範本,它可用來建立會從命令列執行的應用程式。

逐步解說:建立和使用 Managed 組件

示範如何建立 Managed 組件,以及如何從另一個應用程式來使用該組件。

HOW TO:建立 Standard C++ 程式

解說如何使用 Visual Studio 建立及編譯標準的 C++ 程式。

MFC 應用程式精靈

解說如何使用 MFC 應用程式精靈建立 MFC 應用程式。

MFC ActiveX 控制項精靈

解說如何使用 MFC ActiveX 控制項精靈建立 MFC ActiveX 控制項。

Win32 應用程式精靈

解說如何使用 Win32 應用程式精靈建立標準的 C++ 程式。

MFC DLL 精靈

解說如何使用 MFC DLL 精靈建立 MFC 動態連結程式庫。

ATL 專案精靈

解說如何使用 ATL 專案精靈建立 Active Template Library 應用程式。

ATL Server 專案精靈

解說如何使用 ATL Server 專案精靈建立原生 XML Web Service 應用程式。

Windows 服務範本 (C++)

解說如何使用 Windows 服務範本建立 Windows 服務,Windows 服務是一種會在它自己的 Windows 工作階段中長時間執行的可執行應用程式。

建立及移植 Visual C++ 裝置專案

包含有關建立新 Visual C++ 裝置專案的主題,以及有關可讓現有專案在 Visual Studio 2005 環境中鎖定裝置的主題。

逐步解說:建立和使用動態連結程式庫

示範如何建立動態連結程式庫,以及如何從另一個應用程式來使用該 DLL。

C++ 語言 (Visual C++ 中的 [如何?])

介紹用來鎖定 Common Language Runtime (CLR) 為目標的 C++ 新語法。

HOW TO:讀取二進位檔案

示範如何從檔案讀取二進位資料。

HOW TO:寫入二進位檔案

示範如何將二進位資料寫入檔案中。

HOW TO:讀取文字檔

示範如何開啟文字檔,並一次讀取一行。

HOW TO:寫入文字檔

示範如何使用 StreamWriter 類別建立文字檔,並將文字寫入到這個檔案中。

HOW TO:列舉目錄中的檔案

示範如何擷取目錄中的檔案之清單。

HOW TO:監視檔案系統變更

使用 FileSystemWatcher 來註冊建立、變更、刪除或重新命名檔案的對應事件。

HOW TO:擷取檔案資訊

示範 FileInfo 類別。當您知道檔案名稱時,您可以使用這個類別擷取檔案的資訊,例如檔案大小、目錄、完整名稱以及建立和上次修改的日期和時間。

HOW TO:將資料寫入至 Windows 登錄

使用 CurrentUser 機碼來建立 RegistryKey 類別的可寫入執行個體。

HOW TO:從 Windows 登錄讀取資料

使用 CurrentUser 機碼來從 Windows 登錄讀取資料。

HOW TO:從剪貼簿擷取文字

使用 GetDataObject 成員函式來傳回 IDataObject 介面的指標,然後即可對此介面查詢資料的格式,並用來擷取實際的資料。

HOW TO:將文字儲存在剪貼簿中

使用 System.Windows.Forms 命名空間中所定義的 Clipboard 物件來儲存字串。

HOW TO:擷取 Windows 版本

示範如何擷取目前作業系統的平台和版本的資訊。

HOW TO:擷取自啟動後經過的時間

示範如何判斷 Windows 啟動之後所經歷的時間滴答計數或是毫秒數。

2009年1月15日 星期四

C# Compress Decompress byte[] 壓縮 解壓縮 byte[]

public static byte[] Compress(byte[] buffer)
{
try
{
MemoryStream ms = new MemoryStream();
GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true);
zip.Write(buffer, 0, buffer.Length);
zip.Close();
ms.Position = 0;

MemoryStream outStream = new MemoryStream();

byte[] compressed = new byte[ms.Length];
ms.Read(compressed, 0, compressed.Length);

byte[] gzBuffer = new byte[compressed.Length + 4];
Buffer.BlockCopy(compressed, 0, gzBuffer, 4, compressed.Length);
Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzBuffer, 0, 4);
return gzBuffer;
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
}


public static byte[] Decompress(byte[] gzBuffer)
{
try
{
MemoryStream ms = new MemoryStream();
int msgLength = BitConverter.ToInt32(gzBuffer, 0);
ms.Write(gzBuffer, 4, gzBuffer.Length - 4);

byte[] buffer = new byte[msgLength];

ms.Position = 0;
GZipStream zip = new GZipStream(ms, CompressionMode.Decompress);
zip.Read(buffer, 0, buffer.Length);

return buffer;
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
}

C# 對稱 加密 解密 演算法 程式範例

C# 對稱 加密 解密 演算法 程式範例

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

namespace DataCrypto
{
///
/// 對稱加密演算法
///
public class SymmetricMethod
{

private SymmetricAlgorithm mobjCryptoService;
private string Key;
///
/// 對稱加密的構造函數
///
public SymmetricMethod()
{
mobjCryptoService = new RijndaelManaged();
Key = "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7";
}
///
/// 獲得密鑰
///
/// 密鑰
private byte[] GetLegalKey()
{
string sTemp = Key;
mobjCryptoService.GenerateKey();
byte[] bytTemp = mobjCryptoService.Key;
int KeyLength = bytTemp.Length;
if (sTemp.Length > KeyLength)
sTemp = sTemp.Substring(0, KeyLength);
else if (sTemp.Length < stemp =" sTemp.PadRight(KeyLength," stemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk" byttemp =" mobjCryptoService.IV;" ivlength =" bytTemp.Length;"> IVLength)
sTemp = sTemp.Substring(0, IVLength);
else if (sTemp.Length < stemp =" sTemp.PadRight(IVLength,">
/// 加密
///
///

待加密的串
/// 經過加密的串
public string Encrypto(string Source)
{
byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
MemoryStream ms = new MemoryStream();
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
cs.Write(bytIn, 0, bytIn.Length);
cs.FlushFinalBlock();
ms.Close();
byte[] bytOut = ms.ToArray();
return Convert.ToBase64String(bytOut);
}
///
/// 解密方法
///
/// 待解密的串
/// 經過解密的串
public string Decrypto(string Source)
{
byte[] bytIn = Convert.FromBase64String(Source);
MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
mobjCryptoService.Key = GetLegalKey();
mobjCryptoService.IV = GetLegalIV();
ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
return sr.ReadToEnd();
}
}
}

2009年1月5日 星期一

Web Service 透過IE 非本機叫用

修改改 Web.Config 檔案

在 <system.web> </system.web> 區段中加入下面這一段

<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>

Web Service 教學 基本觀念( 建立 製作 使用 叫用 )

Web Service 很簡單,可參考以下連結教學

Web Service 教學

該網頁包含了 如何
建立 Web Service
叫用 Web Service

遺失或缺少 *.DLL 或 *.INF

可至以下兩個網頁中搜尋,並免費下載。

*.INF --> *.INF 搜尋
*.DLL --> *.DLL 搜尋

2008年12月30日 星期二

數值格式字串

Console.WriteLine(

string.Format("{0:#,0.00;(#,0.00);-}", -1234.56));

// (1,234.56)

Console.WriteLine(

string.Format("{0:#,0.00;(#,0.00);-}", 1234.56));

// 1,234.56

Console.WriteLine(

string.Format("{0:#,0.00;(#,0.00);-}", 0));

// -


原文

MSDN 自訂數值格式字串

2008年10月11日 星期六

Google 自定搜尋

可為自己的Blog加上Google搜尋引擎...

就如你右邊看到的那個一樣
http://www.google.com/coop/cse/

2008年10月7日 星期二

7-Zip

是一款Open Source的壓縮軟體

很可惜不能壓縮 rar 格式,但可壓成 zip 格式

*.7z 超高壓縮格式


支援格式如下..
壓縮 / 解壓縮: 7z, ZIP, GZIP, BZIP2 and TAR
只能解壓縮: RAR, CAB, ISO, ARJ, LZH, CHM, MSI, WIM, Z, CPIO, RPM, DEB and NSIS

官方網站

2008年9月28日 星期日

Vista命令行大全

Vista命令行大全

一.win+(X)

其中win不會不知道吧,X為代碼!
(1)Win+L 鎖定當前用戶.
(2)Win+E 資源管理器.
(3)Win+R 運行.
(4)Win+G (Gadgets)順序切換邊欄小工具.
(5)Win+U 輕鬆訪問中心.
(6)Win+X Windows移動中心.
(7)Win+Tab 啟用 3D窗口切換.
(8)Ctrl+Win+Tab 用鍵盤控制 Flip 3D窗口切換其中有個停頓效果.可以有足夠的時間進行選擇!
(9)Win+break 開啟系統屬性窗口.

二.Shell:command (外殼命令行)

以“Shell+冒號+命令”的格式,打開各種外殼文件夾:
(1)shell:AddNewProgramsFolder
(2)shell:Administrative Tools
(3)shell:AppData
(4)shell:AppUpdatesFolder
(5)shell:Cache
(6)shell:CD Burning
(7)shell:ChangeRemoveProgramsFolder
(8)shell:Common Administrative Tools
(9)shell:Common AppData
(10)shell:Common Desktop
(11)shell:Common Documents
(12)shell:Common Programs
(13)shell:Common Start Menu
(14)shell:Common Startup
(15)shell:Common Templates
(16)shell:CommonDownloads
(17)shell:CommonMusic
(18)shell:CommonPictures
(19)shell:CommonVideo
(20)shell:ConflictFolder
(21)shell:ConnectionsFolder
(22)shell:Contacts
(23)shell:ControlPanelFolder
(24)shell:Cookies
(25)shell:CredentialManager
(26)shell:CryptoKeys
(26)shell:CSCFolder
(27)shell:Default Gadgets
(28)shell:Desktop
(29)shell:Downloads
(30)shell:DpapiKeys
(31)shell:Favorites
(32)shell:Fonts
(33)shell:Gadgets
(34)shell:Games
(35)shell:GameTasks
(36)shell:History
(37)shell:InternetFolder
(38)shell:Links
(39)shell:Local AppData
(40)shell:LocalAppDataLow
(41)shell:LocalizedResourcesDir
(42)shell:MAPIFolder
(43)shell:My Music
(44)shell:My Pictures
(45)shell:My Video
(46)shell:MyComputerFolder
(47)shell:NetHood
(48)shell:NetworkPlacesFolder
(49)shell:OEM Links
(50)shell:Original Images
(51)shell:Personal
(52)shell:PhotoAlbums
(53)shell:Playlists
(54)shell:PrintersFolder
(55)shell:PrintHood
(56)shell:Profile
(57)shell:ProgramFiles
(58)shell:ProgramFilesCommon
(59)shell:ProgramFilesCommonX86
(60)shell:ProgramFilesX86
(61)shell:Programs
(62)shell:Public
(63)shell:PublicGameTasks
(64)shell:Quick Launch
(65)shell:Recent
(66)shell:RecycleBinFolder
(67)shell:ResourceDir
(68)shell:SampleMusic
(69)shell:SamplePictures
(70)shell:SamplePlaylists
(71)shell:SampleVideos
(72)shell:SavedGames
(73)shell:Searches
(74)shell:SendTo
(75)shell:Start Menu
(76)shell:Startup
(77)shell:SyncCenterFolder
(78)shell:SyncResultsFolder
(79)shell:SyncSetupFolder
(80)shell:System
(81)shell:SystemCertificates
(82)shell:SystemX86
(83)shell:Templates
(84)shell:TreePropertiesFolder
(85)shell:UserProfiles
(86)shell:UsersFilesFolder
(87)shell:Windows

三.快速開啟功能篇:

(1)appwiz.cpl 開啟添加刪除程序
(2)Control Pannel(控制面板)
(3)collab.cpl 網絡鄰居登陸設置
(4)desk.cpl 顯示設置
(5)firewall.cpl 防火墻設置
(6)hdwwiz.cpl 硬件添加嚮導
(7)inetcpl.cpl Internet屬性設置
(8)intl.cpl 區域和語言選項設置
(9)main.cpl 鼠標屬性設置
(10)mmsys.cpl 聲音設置
(11)ncpa.cpl 網絡連接
(12)Ncpa.cpl 開啟網絡連接
(13)powercfg.cpl 電源選項
(14)sysdm.cpl 系統屬性
(15)wscui.cpl 安全中心


四.用戶功能篇:

(1)control.exe /name Microsoft.WindowsUpdate 啟用windows update
(2)control.exe /name Microsoft.PerformanceInformationAndTools 啟用vista體驗索引窗口
(3)control.exe /name Microsoft.Personalization /page pageWallpaper 啟用壁紙設置窗口
(4)control.exe /name Microsoft.FolderOptions 啟用文件夾選項設置對話框
(5)netplwiz 打開用戶管理器

五.MMC(管理控制台)功能的快速開啟:

(1)compmgmt.msc 計算機管理控制台
(2)devmgmt.msc 設備管理器控制台
(3)diskmgmt.msc 磁盤管理器控制台
(4)eventvwr.msc 日誌管理器控制台
(5)fsmgmt.msc 共享文件夾控制台
(6)gpedit.msc 組策略管理控制台
(7)iis6.msc iis管理控制台
(8)lusrmgr.msc 本地賬戶管理控制台
(9)napclcfg.msc NAP管理控制台
(10)printmanagement.msc 打印管理控制台
(11)rsop.msc 組策略結果集控制台
(12)services.msc 服務管理控制台
(13)wf.msc 防火墻管理控制台

六.系統工具的快速啟用

(1)osk.exe 啟用屏幕鍵盤
(2)msconfig.exe 系統啟動設置工具,其中包含啟用,關閉UAC功能
(3)notepad.exe 打開記事本
(4)mspaint.exe 打開畫筆
(5)explorer.exe 啟用資源管理器
(6)cmd.exe 啟用命令行窗口
(7)SystemPropertiesAdvanced.exe“系統屬性”->“高級”
(8)SystemPropertiesComputerName.exe“系統屬性”->“計算機名”
(9)SystemPropertiesDataExecutionPrevention.exe“系統屬性”->“數據執行保護”
(10)SystemPropertiesHardware.exe“系統屬性”->“硬件”
(11)SystemPropertiesPerformance.exe“系統屬性”->“性能選項”
(12)SystemPropertiesProtection.exe “系統屬性”->“系統保護”
(13)SystemPropertiesRemote.exe “系統屬性”->“遠程”

2008年9月27日 星期六

[Vista & XP] 讓電腦開機時自動登入

開始>執行>

netplwiz

control userpasswords2

王漢宗48套自由字型 (免費中文字型)

王漢宗48套自由字型 (免費中文字型)

下載

1000種免費英文字體

1000種免費英文字體

http://www.showfont.net/

2008年9月26日 星期五

Windows XP 的乾淨開機

使用「選擇式啟動」進行 Windows XP 的乾淨開機
1
按下「開始」>「執行」。


2
在「執行」對話方塊中,輸入下列文字:
msconfig



3
按下「確定」。


4
「系統設定公用程式」出現時,按下「一般」標籤。
在「選擇式啟動」之下,確定僅勾選「載入系統服務」。
(「使用原始的 BOOT.INI」這個選項無法取消選取,這是正常的)。


5
按下「服務」標籤。


6
選取「隱藏所有 Microsoft 服務」。
警告請勿略過此行所述步驟。在繼續進行第 7 行所述步驟前,您必須隱藏 Microsoft 服務。



7
取消勾選仍顯示於「服務」標籤上的所有服務。


8
按下「套用」>「確定」。


9
當系統提示您重新啟動電腦時,按下「是」。


10
完成所有疑難排解或產品安裝。




將電腦還原為原來的設定
1
按下「開始」>「執行」。


2
在「執行」對話方塊中,輸入下列文字:
msconfig



3
按下「確定」。


4
「系統設定公用程式」出現時,請在「一般」標籤上,按下「正常啟動」。


5
按下「確定」。


6
當系統提示您重新啟動電腦時,按下「是」。




參考資料
要在 Windows XP 啟動時讓某些應用程式自動啟動,共有以下四種方法:
· 「啟動」資料夾:含有應用程式的捷徑,當 Windows 啟動後這些應用程式便會立刻執行
· Windows 登錄:含有 Windows 啟動時會跟著執行的應用程式模組
· Win.ini 檔案:含有各種裝置的 Windows 驅動程式,例如印表機和數據機等等
· System.ini 檔案:含有應用程式所需的虛擬驅動程式

選擇性啟動利用 Windows 的 MSConfig 公用程式設定下次電腦啟動時要載入哪些程式與驅動程式。在 MSConfig 對話方塊內,請根據先前的清單挑選下次電腦啟動時要執行哪些項目以及不要執行哪些項目。選擇性啟動和診斷啟動不同,前者可讓您決定 Windows 登錄資料庫與「啟動」資料夾中的哪些程式不要跟著 Windows 一起啟動,賽門鐵克建議大部分使用者都應先考慮採用選擇性啟動這種方式。

診斷啟動是一個交談式的過程,逐項詢問您要不要載入各個元件。只要選取 Windows MSConfig 公用程式中的診斷啟動,接著重新啟動電腦,或者在電腦啟動過程中早一點按住 F8 鍵,便可跳到診斷啟動模式。進行診斷啟動時,您可以針對每一個元件決定要不要載入。診斷啟動與選擇性啟動不同的地方,在於前者不能讓您針對「啟動」資料夾與 Windows 登錄資料庫中的個別項目決定要不要啟動。這種啟動方式比較適合經驗豐富的使用者,換句話說,了解各項元件對 Windows 有何影響的人比較適合採用診斷啟動方式。

http://service1.symantec.com/SUPPORT/INTER/traditionalchinesekb.nsf/twdocid/20020903092643932

開始>執行

開始>執行

開始-執行指令大全 --------------------------------------------------------------------------------
gpedit.msc-----群組原則
sndrec32-------錄音機
Nslookup-------IP位址偵測器
explorer-------開啟檔案總管
logoff---------登出指令
tsshutdn-------60秒倒計時關機指令
lusrmgr.msc----本地機用戶和組
services.msc---本機服務設定
oobe/msoobe /a----檢查XP是否啟動
notepad--------開啟記事本
cleanmgr-------磁碟垃圾整理
net start messenger----開始信使服務
compmgmt.msc---電腦管理
net stop messenger-----停止信使服務
conf-----------啟動 netmeeting
dvdplay--------DVD播放器
charmap--------啟動字元對應表
diskmgmt.msc---磁牒管理實用程序
calc-----------啟動電子計算器
dfrg.msc-------磁碟重組工具
chkdsk.exe-----Chkdsk磁牒檢查
devmgmt.msc--- 裝置管理員
drwtsn32------ 系統醫生
rononce -p ----15秒關機
dxdiag---------檢查DirectX資訊
regedt32-------註冊表編輯器
Msconfig.exe---系統配置實用程序
rsop.msc-------群組原則結果集
mem.exe--------顯示記憶體使用情況
regedit.exe----註冊表
progman--------程序管理器
winmsd---------系統資訊
perfmon.msc----電腦效能監測程序
winver---------檢查Windows版本
sfc /scannow-----掃瞄錯誤並復原
taskmgr-----工作管理器(2000/xp/-2003)
eventvwr.msc------------事件檢視器
secpol.msc----------------本機安全性設定
rsop.msc------------------原則的結果集
ntbackup----------------啟動製作備份還原嚮導
mstsc-----------遠端桌面
wmimgmt.msc----開啟windows管理體系結構WMI)
wupdmgr--------windows更新程序
wscript--------windows指令碼宿主設定
write----------寫字板
wiaacmgr-------掃瞄儀和照相機嚮導
winchat--------XP原有的區域網路聊天
mplayer2-------簡易
widnows media player mspaint--------畫圖板
mstsc----------遠端桌面連接
mplayer2-------媒體播放機
magnify--------放大鏡實用程序
mmc------------開啟控制台
mobsync--------同步指令
dfrg.msc-------磁碟重組程式
dcomcnfg-------開啟系統元件服務
ddeshare-------開啟DDE共享設定
dvdplay--------DVD播放器
ntbackup-------系統製作備份和還原
narrator-------螢幕「講述人」
ntmsmgr.msc----移動存儲管理器
ntmsoprq.msc---移動存儲管理員操作請求
netstat -an----(TC)指令檢查連接
syncapp--------新增一個公文包
sysedit--------系統配置編輯器
sigverif-------文件簽名驗證程序
shrpubw--------新增共用資料夾
secpol.msc-----本機安全原則
syskey---------系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼
Sndvol32-------音量控制程序
sfc.exe--------系統檔案檢查器
sfc /scannow---windows文件保護
tourstart------xp簡介(安裝完成後出現的漫遊xp程序)
taskmgr--------工作管理器
eventvwr-------事件檢視器
eudcedit-------造字程序
packager-------對像包裝程序
regsvr32 /u *.dll----停止dll文件執行
regsvr32 /u zipfldr.dll------取消ZIP支持
cmd.exe--------CMD命令提示字元
chkdsk.exe-----Chkdsk磁牒檢查
certmgr.msc----證書管理實用程序
calc-----------啟動計算器
cliconfg-------SQL SERVER 客戶端網路實用程序
Clipbrd--------剪貼板檢視器
netmeeting compmgmt.msc---電腦管理
ciadv.msc------索引服務程序
osk------------開啟螢幕小鍵盤
odbcad32-------ODBC資料來源管理器
iexpress-------木馬元件服務工具,系統原有的
fsmgmt.msc-----共用資料夾管理器
utilman--------協助工具管理器
Clipbrd--------剪貼板檢視器
packager-------對像包裝程序
sfc /scannow---windows文件保護 ---- 補充一下,副檔名 .cpl的也可以執行喔,自己用 dir *.cpl /s找找有哪些可以用 像 desk.cpl--桌面內容 sysdm.cpl--系統內容 --------

移除Windows XP內建的Windows Messenger (移除Windows Messenger)

「執行」視窗中輸入下面指令:
RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove

Dr.Web

開網頁連結前先掃毒...

IE:http://www.drweb.com/online/drweb-online-en.reg

FireFox:https://addons.mozilla.org/zh-TW/firefox/downloads/file/35133/dr.web_anti-virus_link_checker-1.0.18-fx+mz+tb.xpi

Opera

官網:http://www.drweb.com/?lng=en

VirusTotal 超強「36合1」免費線上掃毒

http://www.virustotal.com/zh-tw/

2008年7月29日 星期二

ASP.NET程序中常用代碼匯總

1. 打開新的窗口並傳送參數︰

//傳送參數︰
response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="++"’)</script>")
  //接收參數︰
string a = Request.QueryString("id");
string b = Request.QueryString("id1");

2.為按鈕添加對話框

Button1.Attributes.Add("onclick","return confirm(’確認?’)");
button.attributes.add("onclick","if(confirm(’are you sure?’)){return true;}else{return false;}")

3.刪除表格選定記錄

int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()

4.刪除表格記錄警告

private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
 switch(e.Item.ItemType)
 {
  case ListItemType.Item :
  case ListItemType.AlternatingItem :
  case ListItemType.EditItem:
   TableCell myTableCell;
   myTableCell = e.Item.Cells[14];
   LinkButton myDeleteButton ;
   myDeleteButton = (LinkButton)myTableCell.Controls[0];
   myDeleteButton.Attributes.Add("onclick","return confirm(’您是否確定要刪除這條信息’);");
   break;
  default:
   break;
 }
}

5.點擊表格行鏈接另一頁

private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 //點擊表格打開
 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  e.Item.Attributes.Add("onclick","window.open(’Default.aspx?id=" + e.Item.Cells[0].Text + "’);");
}
  //雙擊表格連接到另一頁
  //在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
 string OrderItemID =e.item.cells[1].Text;
 
 e.item.Attributes.Add("ondblclick", "location.href=’../ShippedGrid.aspx?id=" + OrderItemID + "’");
}
//雙擊表格打開新一頁
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
 string OrderItemID =e.item.cells[1].Text;
 
 e.item.Attributes.Add("ondblclick", "open(’../ShippedGrid.aspx?id=" + OrderItemID + "’)");
}
  ★特別注意︰【?id=】 處不能為 【?id =】

6.表格超連接列傳遞參數

<asp:HyperLinkColumn Target="_blank" headertext="ID號" DataTextField="id" NavigateUrl="aaa.aspx?id=’
 <%# DataBinder.Eval(Container.DataItem, "數據字段1")%>’ & name=’<%# DataBinder.Eval(Container.DataItem, "數據字段2")%>’ />

7.表格點擊改變顏色

if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
 e.Item.Attributes.Add("onclick","this.style.backgroundColor=’#99cc00’;
    this.style.color=’buttontext’;this.style.cursor=’default’;");
}
  寫在DataGrid的_ItemDataBound里
if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover","this.style.backgroundColor=’#99cc00’;
   this.style.color=’buttontext’;this.style.cursor=’default’;");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=’’;this.style.color=’’;");
}

8.關于日期格式

日期格式設定
DataFormatString="{0:yyyy-MM-dd}"
  //我覺得應該在itembound事件中
e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))

9.獲取錯誤信息並到指定頁面

//不要使用Response.Redirect,而應該使用Server.Transfer
  e.g
// in global.asax
protected void Application_Error(Object sender, EventArgs e) {
if (Server.GetLastError() is HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");

//其余的非HttpUnhandledException異常交給ASP.NET自己處理就okay了 :)
}
  //Redirect會導致post-back的產生從而丟失了錯誤信息,所以頁面導向應該直接在服務器端執行,這樣就可以在錯誤處理頁面得到出錯信息並進行相應的處理

10.清空Cookie

Cookie.Expires=[DateTime];
Response.Cookies("UserName").Expires = 0