有時候會出現顯示會出現亂碼,通常是編碼方式出了問題.
我們可以理用Encoding來解決這個問題...
範例程式:
string Source = "轉換編碼方式範例字串";
byte[] Target_BIG5 = Encoding.Default.GetBytes(Source ); //將字串轉為byte[], 中文版Default就是指BIG5編碼
byte[] Target_UTF8 = Encoding.Convert(Encoding.Default, Encoding.UTF8, Target_BIG5 );//轉碼Encoding.Convert(Source Encoder,Target Encoder , Source Variable)
MessageBox.Show(Encoding.UTF8.GetString(Target_UTF8 ));//顯示轉為UTF8後的字串 
歡迎跟我連絡
免安裝程式...哈哈 歡迎聊天
2009年8月11日 星期二
修改字串編碼方式(Encoding)
2009年8月10日 星期一
在職場不做徒勞無功的事
記得以前有位同事離職前多拉了幾個人走,以為會對公司的業務造成影響,經我觀察的結果做了結論:完全沒有影響,缺人找人,頂多資深員工辛苦點。對公司來說,所有員工在職時都很重要,離職後都不重要。沒有一個員工是非留不可的,這似乎就是職場常態。近20年以來,我長時間在美台兩地以理財專家的立埸談理財,幫助客戶及社會大眾做好理財。我常強調做好理財的目的是錢盡其用,讓錢發揮最大的效用,一個相關的重要原則就是凡事講究划算。 我覺得以這樣的現實觀點來看工作,和我倡議的『回到蠻荒』觀點倒是有相通的地方,那就是不做徒勞無功的事,或沒有成果的事。蠻荒的動物都能秉持這樣的原則工作。所以依現實的原則看工作,現代人工作的目的應該只是為了能賺錢,除此以外無他。 以下是探討這類觀點的專家所提供的一些工作原則,不妨做為參考:
原則1:工作真的只是一份工作
不要期待工作與生活能兼顧,事實上也沒幾個人能將工作與生活成功的整合起來,工作並不是生活,我們工作是為了要過生活,或保有自己所喜歡的生活。想想看,你一天或一個禮拜能有多少時間和家人相處,或和親朋好友去做一些你喜歡做的事,就可以知道要兼顧工作與生活是不可能的。工作只是工作,目的是為了賺錢。
原則2:不要害怕換工作
工作既是為了賺錢,只要可能賺更多錢,或做起來更愉快、更有滿足感,何妨就換工作?而且,以這樣的原則換工作,收入當然會越換越多,跳槽可能也會變得稀鬆平常。只要每次工作時都全力以赴,有稱職的表現,對雇主和業界都能交代,應該隨時可以找到下一個工作的機會。
原則3:一鳥在手勝過十鳥在林
很多公司都聲稱他們有優渥的福利制度,包括退休金計劃。可是不斷有事實告訴我們,越來越多的人在屆滿退休之前就失去工作了。所以爭取眼前的福利可能更實際,比較值得期待,例如包括健康醫療保障在內的團體保險、托嬰照顧、親職休假、績效獎金的分發,增加加班費或年終獎金等等。
原則4:謀生本事不厭其多
新世紀的工作與收入可能會變得不穩定,產業的興衰或輪替也會變得快速無比,在同一家企業內辛苦一輩子可能會以失業收場。所以橫向拓展各方面的技能,會比縱向的在企業的組織內向上攀爬追求位高權重還要實際。其實現在已有不少企業也『學會』了一些聰明的技巧,對授予好聽的高階職位並不吝惜,可以讓你擁有耀眼的頭銜,但對薪資增加並沒有多大幫助。與其強求這種虛名,不如讓自己能具備十八般武藝可以多方面賺錢,隨時跳槽。
原則5:做好份內工作就回家去
再提醒你,工作只是工作,公司少了你一個人的工作,照樣可以運轉下去。踏實的學習你的工作所該具備的技能,努力做好你的工作,但不要奢望你可以憑一己之力多為公司創造多少業績或產能。不要因此耗掉你大量的私人時間,讓自己從生活中抽離出來。記住,做好自己份內的工作,然後回家去。
原則6:遠離辦公室政治
你工作的目的是為賺取合理的收入,而不是追求虛名與權位,所以不用在心思在辦公室政治上。當紅炸子雞可能因改朝換代而去職走路,被冰凍的失志衰老也可能鹹魚翻身。與其耗費時間介入這些無實際意義的辦公室鬥爭,不如多花時間在自己的家庭。 
雨季說:
收到離職同事轉寄的一封信,寫的很好所以在此轉載給大家參考...
以前一直對辦公室的政治一笑置之,總覺得好好工作近自己本分就好了...
沒想到,就像開車一樣,不是你不撞人家,就沒事了,人家樣會找上門來撞你...
唉!有人就有事吧...
2009年8月5日 星期三
新一代的Windows XP Embedded
新版的XPE除了集合前兩代的功能(2007 Feature Pack也算一代),新增了下列功能
1.Microsoft Silverlight:跨瀏覽器、跨平台 plug-in,帶給您全新的媒體體驗.
2..NET Framework 3.5 :Windows 專用的最新 managed 程式碼程式設計模組.
3.支援 Windows Server 2008 (RDP 6.1):包含安全性及管理技術,可使裝置完美連結 Windows Vista,並使用 Windows Server 2008 的全新功能.
3.Windows Media Player 11:包含全新的媒體功能,可有效協助管理數位音樂、相片及影像媒體櫃.
4.Internet Explorer 7 :進一步改善瀏覽、搜尋、列印及 RSS 摘要存取等功能.
5.Windows Server Update Services (支援):軟體更新服務.
6.System Center Configuration Manager (支援):可全面評估、安裝及更新裝置的解決方案.
7.MBSA :Microsoft Baseline Security Analyzer 工具.
8.Future Platform Innovation (功能與技術) .
Windows Embedded Standard 2009 Target Designer
Navigating Windows Embedded Standard's Target Designer
開發人員可將 Windows Embedded Standard 用於各種智慧型、連線式及服務導向的先進商業或消費用途裝置,亦可執行數千種現有的 Windows 應用程式及驅動程式,範圍涵蓋精簡型電腦至多功能印表機。
高階機上盒
加油機 (Fuel Pumps)
全功能 Point Of Service 裝置
遊戲裝置
家用自動化閘道設備 (Home Automation Gateway)
工業控制器
智慧型應用裝置
多媒體網際網路裝置
Kiosk
媒體伺服器
Point Of Service 行動裝置
監控裝置
多功能印表機
可連結網路的媒體裝置與伺服器
使用 Windows 作業系統的終端機
前往下載(試用版,期限為120天,並提供完整功能 )
2009年8月3日 星期一
內湖國小
一所美美的國小,921全毀後重建重生...
其他新關資訊
學校名稱:
南投縣內湖國民小學
Nei Hu Elementary School
學校地址:
南投縣鹿谷鄉558內湖村興產路51號
No.51, Xingchan Rd., Neihu Village ,Lugu Shiang, Nantou County 558, Taiwan (R.O.C.)
.建築特色
• 全區採木構造建築—骨架使用 美國南方松 。
• 主體採用西方結構 (剪力牆系統)、東方之行架系統。
• 整體建築設計融合美、日式風格。
• 多就地取材,以原有塊石築牆、礫石鋪路。
• 保留校地原始杉樹林遍布之風貌。
• 校區置高點設有可觀察自然生態之「樹屋」。
• 校區地標 --「尼泊爾式雙塔」,通風效果良好。
• 校區內特設生態池,供學生觀察研究。
內湖森林小學位於通往溪頭森林遊樂區的台151號縣道旁,在九二一地震之後,由於遷校土地取得一波三折,使內湖國小成為重建的二百九十三所學校當中最後一所重建的學校,也是一所以發展生態教育為目標的森林生態小學。
內湖森林小學全部採用原木為建材,照建築計劃進行重建,總經費約為七千五百萬元,規劃上儘量減少對基地原有生態的破壞,並充分配合當地景觀特色進行設計,全校共分為教學區、生態區、專科教室、行政區、宿舍區、活動區等,是一所坐落於蓊鬱林木間的森林小學。
參觀時間和注意事項
假日都開放參觀
上課日則開放四點以後參觀
但若遇學生於四點後在校學習
還請遊客避開教室等
以免影響到學生和老師
另外,要有公德心喔
不要亂丟圾垃,使用廁所後請保持乾淨
不然,小朋友和老師就累了
下雨天後,地面容易濕滑,也請自行小心。
由於地處山區,偶有蛇類出沒,也請小心。
2009年7月31日 星期五
認證登錄系統圖片產生 .Net 控制項 (續)
下面圖片中的Circle或是Pie的圖形邊緣都有鋸齒出現不怎麼美觀.
找到IdentifyPictureControl.cs中這個DrawANewPicture() Function
加入下面粗體字那行,修正後就可以美觀一點了...
//Private Function
private void DrawANewPicture()
{
myPictureSize = this.Size;
GraphicsPath myGP = new GraphicsPath();
myBitmap = new Bitmap(this.Width, this.Height);
Graphics myG = Graphics.FromImage(myBitmap);
//GDI+ 修飾用屬性
myG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
myG.Clear(Color.White);
....
修正後,看起來舒服多了...
母親給出的答案
有個孩子對一個問題一直想不通:為什麼他的同桌的同學想考第一名就考上第一,而自己想考第一卻才考了全班第二十一名?
回家後他問道:"媽媽我是不是比別人笨?我覺得我和他一樣聽老師的話,一樣認真地做作業,可是,為什麼我總是比落後他?"媽媽聽了兒子的話,感覺到兒子開始有自 尊心了,而這種自尊心正在被學校的排名傷害著。她望著兒子,沒有回答,因為她不知道該怎樣回答。
又一次考試後,孩子考了第十七名,而他的同學還是第一名。回家後,兒子又問了同樣的問題。她真想說,人的智力確實有三六九等,考第一的人,腦子就是比一般的人靈活。然而這樣的回答,難道是孩子真想知道的答案嗎?她慶幸自己沒說出口。
應該怎樣回答兒子的問題呢?有幾次,她真想重覆那幾句被上萬個父母重覆了上萬次的話--你太貪玩了,你在學習上還不夠勤奮,和別人比起來還不夠努力……以此來搪塞兒子。然而,像她兒子這樣腦袋不夠聰明,在班上成績不甚突出的孩子,平時活得還不夠辛苦嗎?所以她沒有那麼做,她想為兒子的問題找到一個完美的答案。
兒子小學畢業了,雖然他比過去更加努力,但依然沒有趕上他的同學,不過與過去相比,他的成績一直在進步。為了對兒子的進步表示讚賞,她帶他去看了一次大海。就是在這次旅行中,這位母親回答了兒子的問題。
現在這位兒子再也不擔心自己的名次了,也再沒有人追問他小學時成績排第幾名,因為他已經以全校第一名的成績考上了大學。放寒假回來時,母校請他給同學及家長們做一段演說。其中他講小時候的一段經歷:「我和母親坐在沙灘上,她指著前面對我說,你看那些在海邊爭食的鳥兒,當海浪打來的時候,小麻雀總能迅速地起飛,牠們拍打兩三下翅膀就升入天空;而海鷗總顯得非常笨拙,牠們從沙灘飛入天空總要很長時間,然而,真正能飛越大海橫過大洋的還是海鷗。」這場演說使很多母親流下了眼淚,其中包括他自己的母親。
這位母親從不說一些令孩子洩氣的話,在找不到適當的答案前寧可沉默,以自身之受去支持孩子的一步步成長,孩子在這樣寬容的環境下,最後交出優秀的成績。
教育,是對生命個體的尊重和喚醒,是對人的內在潛能的開發和拓展,讓孩子健康地生長,需要一種平和的心境,一種智慧的胸襟,一種獨特的魅力,這一切必須以寬容為基礎!
雨季說:
一段刻苦銘心的話,可以改變聽的懂的人的一生...
但是絕大部分,都是對牛彈琴 聽者無心
2009年7月30日 星期四
認證登錄系統圖片產生 .Net 控制項
繼續上一篇文章,將Class改寫為.Net控制項
新增一個Event,如果USER點選到圓圈(Circle),會產生Identify_OK Event.
新增一個屬性SharpNumber,可以設定圖形的複雜度.
新增一個Method GetNext(),可以重新繪製新的認證圖片.
程式碼:
1.IdentifyPictureControl.cspublic partial class IdentifyPictureControl : UserControl
{
//Private Variable
private Random myRandom = new Random();
private int mySharpNo;
private Size myPictureSize;
private Bitmap myBitmap;
private Region myRegion;
private Point myMouseLocation;
public int SharpNumber
{
set { mySharpNo = value; }
get { return mySharpNo; }
}
public IdentifyPictureControl()
{
InitializeComponent();
mySharpNo = 20;
myRegion = new Region();
myMouseLocation = new Point(-1, -1);
}
//Event
public event EventHandler Identify_OK;
protected virtual void OnIdentify_OK(EventArgs e)
{
if (Identify_OK != null)
{
Identify_OK(this, e);
}
}
//Private Component Event
private void IdentifyPictureControl_Load(object sender, EventArgs e)
{
DrawANewPicture();
this.BackgroundImage = myBitmap;
}
private void IdentifyPictureControl_Click(object sender, EventArgs e)
{
if (myRegion.IsVisible(myMouseLocation))
{
OnIdentify_OK(EventArgs.Empty);
}
}
private void IdentifyPictureControl_MouseMove(object sender, MouseEventArgs e)
{
myMouseLocation = e.Location;
}
private void IdentifyPictureControl_MouseLeave(object sender, EventArgs e)
{
myMouseLocation = new Point(-1, -1);
}
//Private Function
private void DrawANewPicture()
{
myPictureSize = this.Size;
GraphicsPath myGP = new GraphicsPath();
myBitmap = new Bitmap(this.Width, this.Height);
Graphics myG = Graphics.FromImage(myBitmap);
myG.Clear(Color.White);
//DrawEllipse
int mySize = GetSize(myPictureSize.Height);
Point myPoint = GetLocation(myPictureSize, mySize);
Pen myPen = new Pen(GetColor(), 3);
myG.DrawEllipse(myPen, new Rectangle(myPoint, new Size(mySize, mySize)));
myGP.AddEllipse(new Rectangle(myPoint, new Size(mySize, mySize)));
myRegion = new Region(myGP);
//DrawRectangle
for (int i = 0; i < mySharpNo/2; i++)
{
mySize = GetSize(myPictureSize.Height);
myPoint = GetLocation(myPictureSize, mySize);
myPen = new Pen(GetColor(), 3);
myG.DrawRectangle(myPen, new Rectangle(myPoint, new Size(mySize, mySize)));
}
for (int i = 0; i < mySharpNo/2; i++)
{
mySize = GetSize(myPictureSize.Height);
myPoint = GetLocation(myPictureSize, mySize);
myPen = new Pen(GetColor(), 3);
myG.DrawPie(myPen, new Rectangle(myPoint, new Size(mySize, mySize)), GetAngle(), GetAngle());
}
}
private Point GetLocation(Size PictureSize, int SharpWidth)
{
int X = myRandom.Next(0, PictureSize.Width - SharpWidth - 3); //3 Pen Width
int Y = myRandom.Next(0, PictureSize.Height - SharpWidth - 3); //3 Pen Width
return new Point(X, Y);
}
private int GetSize(int PictureWidth)
{
return (int)(PictureWidth / myRandom.Next(2, 6));
}
private Color GetColor()
{
switch (myRandom.Next(0, 10))
{
case 0:
return Color.Yellow;
case 1:
return Color.Violet;
case 2:
return Color.Green;
case 3:
return Color.DeepPink;
case 4:
return Color.DarkSlateBlue;
case 5:
return Color.DarkRed;
case 6:
return Color.CornflowerBlue;
case 7:
return Color.DarkSalmon;
case 8:
return Color.Gainsboro;
case 9:
return Color.Gold;
case 10:
return Color.Indigo;
default:
return Color.Black;
}
}
private float GetAngle()
{
return (float)(myRandom.Next(10, 350));
}
//Public method
public void GetNext()
{
DrawANewPicture();
this.BackgroundImage = myBitmap;
}
}
2.IdentifyPictureControl.Designer.cs
partial class IdentifyPictureControl
{
///
/// 設計工具所需的變數。
///
private System.ComponentModel.IContainer components = null;
///
/// 清除任何使用中的資源。
///
/// 如果應該公開 Managed 資源則為 true,否則為 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region 元件設計工具產生的程式碼
///
/// 此為設計工具支援所需的方法 - 請勿使用程式碼編輯器修改這個方法的內容。
///
///
private void InitializeComponent()
{
this.SuspendLayout();
//
// IdentifyPictureControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.Name = "IdentifyPictureControl";
this.Size = new System.Drawing.Size(148, 148);
this.Load += new System.EventHandler(this.IdentifyPictureControl_Load);
this.MouseLeave += new System.EventHandler(this.IdentifyPictureControl_MouseLeave);
this.Click += new System.EventHandler(this.IdentifyPictureControl_Click);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.IdentifyPictureControl_MouseMove);
this.ResumeLayout(false);
}
#endregion
}
範例引用程式碼:
private void button1_Click(object sender, EventArgs e)
{
identifyPictureControl1.SharpNumber = 30;
identifyPictureControl1.GetNext();
}
private void identifyPictureControl1_Identify_OK(object sender, EventArgs e)
{
MessageBox.Show("OK");
}
認證登錄系統圖片產生物件
目前網路上有很多防止程式自動登錄註冊...攻擊網頁的方式...
常見的方式有底下兩種...

今天利用C#寫了一個認證圖片產生物件IdentifyPicture,效果如下圖
只要USER點選到圖中唯一圓形的區塊就算認證成功(箭頭所指)...
程式碼:
public class IdentifyPicture
{
private Random myRandon;
private int mySharpNo;
private Size myPictureSize;
private Bitmap myBitmap;
public Bitmap IdPicture //產生的圖片
{
get { return myBitmap; }
}
private Region myRegion;
public Region IdRegion //驗證圓形於圖上範圍
{
get { return myRegion; }
}
public IdentifyPicture(Size PictureSize , int SharpNumber)
{
myRandon = new Random();
mySharpNo = SharpNumber;
myPictureSize = PictureSize;
myBitmap = new Bitmap(PictureSize.Width, PictureSize.Height);
myRegion = new Region();
DrawANewPicture();
}
private void DrawANewPicture()
{
GraphicsPath myGP = new GraphicsPath();
Graphics myG = Graphics.FromImage(myBitmap);
myG.Clear(Color.White);
//DrawEllipse
int mySize = GetSize(myPictureSize.Height);
Point myPoint = GetLocation(myPictureSize, mySize);
Pen myPen = new Pen(GetColor(), 3);
myG.DrawEllipse(myPen, new Rectangle(myPoint, new Size(mySize, mySize)));
myGP.AddEllipse(new Rectangle(myPoint, new Size(mySize, mySize)));
myRegion = new Region(myGP);
//DrawRectangle
for (int i = 0; i < mySharpNo; i++)
{
mySize = GetSize(myPictureSize.Height);
myPoint = GetLocation(myPictureSize, mySize);
myPen = new Pen(GetColor(), 3);
myG.DrawRectangle(myPen, new Rectangle(myPoint, new Size(mySize, mySize)));
}
for (int i = 0; i < mySharpNo; i++)
{
mySize = GetSize(myPictureSize.Height);
myPoint = GetLocation(myPictureSize, mySize);
myPen = new Pen(GetColor(), 3);
myG.DrawPie(myPen, new Rectangle(myPoint, new Size(mySize, mySize)), GetAngle(), GetAngle());
}
}
private Point GetLocation(Size PictureSize, int SharpWidth)
{
int X = myRandon.Next(0, PictureSize.Width - SharpWidth - 3); //3 Pen Width
int Y = myRandon.Next(0, PictureSize.Height - SharpWidth - 3);//3 Pen Width
return new Point(X, Y);
}
private int GetSize(int PictureWidth)
{
return (int)(PictureWidth / myRandon.Next(2, 6));
}
private Color GetColor()
{
switch (myRandon.Next(0, 10))
{
case 0:
return Color.Yellow;
case 1:
return Color.Violet;
case 2:
return Color.Green;
case 3:
return Color.DeepPink;
case 4:
return Color.DarkSlateBlue;
case 5:
return Color.DarkRed;
case 6:
return Color.CornflowerBlue;
case 7:
return Color.DarkSalmon;
case 8:
return Color.Gainsboro;
case 9:
return Color.Gold;
case 10:
return Color.Indigo;
default:
return Color.Black;
}
}
private float GetAngle()
{
return (float)(myRandon.Next(10, 350));
}
}
應用範例如下:
程式碼:
public partial class Form1 : Form
{
Region CheckRegion;
Point MouseLocation;
IdentifyPicture myIDPicture;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
CheckRegion = new Region();
MouseLocation = new Point(0, 0);
myIDPicture = new IdentifyPicture(pictureBox_CP.Size, 10);
pictureBox_CP.Image = myIDPicture.IdPicture;
CheckRegion = myIDPicture.IdRegion; }
private void button_NewPicture_Click(object sender, EventArgs e)
{
myIDPicture = new IdentifyPicture(pictureBox_CP.Size, 10);
pictureBox_CP.Image = myIDPicture.IdPicture;
CheckRegion = myIDPicture.IdRegion; label_Result.Text = "?";
}
private void pictureBox_CP_Click(object sender, EventArgs e)
{
if (CheckRegion.IsVisible(MouseLocation))
label_Result.Text = "OK";
else
label_Result.Text = "?"; }
private void pictureBox_CP_MouseMove(object sender, MouseEventArgs e)
{
MouseLocation = e.Location;
}
private void pictureBox_CP_MouseLeave(object sender, EventArgs e)
{
MouseLocation = new Point(0, 0);
}
}
提供大家參考(重點用粗體字表示)...
若有錯請不吝指教...
有機會在改成.Net 控制項(Control)...
2009年7月22日 星期三
Google 的日全蝕

今天早上8點20分,全亞洲都在屏息以待一個天文奇觀,本世紀最長的日蝕現象將從上演,時間長達六分多鐘,是去年新疆日全蝕的近三倍,不過台灣只能看到日偏蝕...
其餘亞洲地區包括印度、尼泊爾、不丹、孟加拉、日本南部等地都可以看到日全蝕的景象,根據美國太空總署(NASA)運用Google Map的介面,在地圖上畫出了日全蝕所經過的地帶,其中中國大陸佔據了最大的區塊,日蝕最長的地區則是日本鹿兒島縣十島村的惡石島,時間長達6分20秒。日本的直播網站為:http://www.live-eclipse.org/
今年台灣只能看到日偏蝕的現象,不過到2012年3月21日台灣的基隆、台北、桃園、新竹、苗栗一代將可見到日環蝕;至於日全蝕的現象,則要等到2070年4月11日,地點在墾丁及蘭嶼一帶。







