周一來到M公司上班,除了不好意思和周圍的人聊天外,倒也沒有什么不舒服的地方。換個(gè)工作對我來說似乎跟換個(gè)項(xiàng)目做一樣。至少目前感覺還。。。正常。
剛上班,除了看文檔就是申請各種資源了,M果然是傳說中的“大公司”,各個(gè)服務(wù)器的訪問權(quán)限都需要走流程申請,且聽說做這些工作的都是外包公司,就是說,可能給你解決問題的是個(gè)老外。。。這也是麻煩,時(shí)差啊,申請的訪問權(quán)限的延遲長的要命。這中間我還弄錯(cuò)個(gè)申請,也沒發(fā),人家分得很細(xì),發(fā)錯(cuò)了,就直接回你一個(gè)--‘can't understand‘,于是咱就得重來一邊。唉,好懷念魔鬼做管理員的日子,一個(gè)電話,甚至吼上一句,什么訪問權(quán)限啊,直接root口令就發(fā)過來了。。。
看文檔是件很無聊的事情,至少對我來說是這樣,每次我只能堅(jiān)持看20分鐘,然后就會(huì)走神30分鐘。。。為了讓自己能安靜坐著,就想著該寫些代碼,于是開始對Putty動(dòng)刀了。。。Putty和SecureCRT一樣,是用于遠(yuǎn)程訪問的終端程序,只是Putty是free的,而SecureCRT是。。。被盜版的,至少目前我還沒有碰到一個(gè)用正版SecureCRT的,哪怕是在M公司。。。當(dāng)然我也一直是盜版SecureCRT的使用者,很好,很強(qiáng)大。現(xiàn)在M公司多數(shù),應(yīng)該說絕大多數(shù)都是正版的,咱也不好意思再用了,于是就換用魔鬼使用的Putty。
Putty那叫一個(gè)“不方便”,沒有Tab不說,你要不Paster那連Copy也沒有。唉,都被SecureCRT慣壞了。于是也真是吃了空,下載了源碼,就想著把Putty改成SecureCRT了。源碼解壓,不錯(cuò),有VC工程,打開工程,登時(shí)暈了,全眼的.c文件。。。看到下面的代碼,就知道添加Tab方式是沒有指望了。。
void listbox( struct ctlpos * cp, char * stext,
int sid, int lid, int lines, int multi)

{
RECT r;


if (stext != NULL)
{
r.left = GAPBETWEEN;
r.top = cp -> ypos;
r.right = cp -> width;
r.bottom = STATICHEIGHT;
cp -> ypos += r.bottom + GAPWITHIN;
doctl(cp, r, " STATIC " , WS_CHILD | WS_VISIBLE, 0 , stext, sid);
}
r.left = GAPBETWEEN;
r.top = cp -> ypos;
r.right = cp -> width;
r.bottom = LISTHEIGHT + (lines - 1 ) * LISTINCREMENT;
cp -> ypos += r.bottom + GAPBETWEEN;
doctl(cp, r, " LISTBOX " ,
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL |
LBS_NOTIFY | LBS_HASSTRINGS | LBS_USETABSTOPS |
(multi ? LBS_MULTIPLESEL : 0 ),
WS_EX_CLIENTEDGE, "" , lid);
}
Putty的作者絕對是C的高人,甚至我都懷疑他應(yīng)該是用ASM的,為了讓大家好理解才用C來寫的。。。。別的不說,其代碼中涉及到的Windows控件部分的代碼,全面都是直接調(diào)用API的,這讓我等用慣了‘Window Designer'的人來說,那些代碼堪比天書。。。Putty代碼已經(jīng)超出我理解范圍了,但又有些不心甘,于是照貓畫虎,添加了所謂的’Copy‘功能,聊以自慰。。。
<----丟臉的分割線---->
剛才跟同事說起此事,同事很詫異地說:“Copy功能怎么可能沒有啊~”,并當(dāng)場演示給我看,原來在Putty中,選擇不Paste就是COPY!丟臉啊~不過Putty這個(gè)功能也說明了,以后不要沒事在屏幕上亂選了,小心COPY哦~