第一步修改默認(rèn)值以適合DX200平臺。
注:本人在項(xiàng)目預(yù)處理器中定義了一個(gè)DX200。去掉DX200定義后,將是100%原始putty,加上DX200后將適合DX200平臺使用。
在項(xiàng)目中搜索DX200字符,就是我修改的代碼部分。
修改默認(rèn)協(xié)議為Telnet
<be_all_s.c>
增加
#ifdef DX200
#define TELNET_DEFAULT
#endif
修改字符光標(biāo)(caret)閃動
<setting.c>
#ifdef DX200
gppi(sesskey, "BlinkCur", 1, &cfg->blink_cur);
#else
gppi(sesskey, "BlinkCur", 0, &cfg->blink_cur);
#endif
修改默認(rèn)緩沖區(qū)為2000
<setting.c>
#ifdef DX200
gppi(sesskey, "ScrollbackLines", 2000, &cfg->savelines);
#else
gppi(sesskey, "ScrollbackLines", 200, &cfg->savelines);
#endif
修改S15兼容
<setting.c>
#ifdef DX200
gppi(sesskey, "LFImpliesCR", 1, &cfg->lfhascr);
#else
gppi(sesskey, "LFImpliesCR", 0, &cfg->lfhascr);
#endif
修改默認(rèn)顏色(原始putty字符是灰色,背景是黑色)
<setting.c>
#ifdef DX200
{
for (i = 0; i < 22; i++) {
static const char *const defaults[] = {
"0,0,0", "255,255,255", "255,255,255", "85,85,85", "0,0,0",
"0,255,0", "0,0,0", "85,85,85", "187,0,0", "255,85,85",
"0,187,0", "85,255,85", "187,187,0", "255,255,85", "0,0,187",
"85,85,255", "187,0,187", "255,85,255", "0,187,187",
"85,255,255", "187,187,187", "255,255,255"
};
char buf[20], buf2[30];
int c0, c1, c2;
sprintf(buf, "Colour%d", i);
gpps(sesskey, buf, defaults, buf2, sizeof(buf2));
if (sscanf(buf2, "%d,%d,%d", &c0, &c1, &c2) == 3) {
cfg->colours[0] = c0;
cfg->colours[1] = c1;
cfg->colours[2] = c2;
}
}
}
#else
for (i = 0; i < 22; i++) {
static const char *const defaults[] = {
"255,255,255", "255,255,255", "0,0,0", "85,85,85", "0,0,0",
"0,255,0", "0,0,0", "85,85,85", "187,0,0", "255,85,85",
"0,187,0", "85,255,85", "187,187,0", "255,255,85", "0,0,187",
"85,85,255", "187,0,187", "255,85,255", "0,187,187",
"85,255,255", "187,187,187", "255,255,255"
};
char buf[20], buf2[30];
int c0, c1, c2;
sprintf(buf, "Colour%d", i);
gpps(sesskey, buf, defaults, buf2, sizeof(buf2));
if (sscanf(buf2, "%d,%d,%d", &c0, &c1, &c2) == 3) {
cfg->colours[0] = c0;
cfg->colours[1] = c1;
cfg->colours[2] = c2;
}
}
#endif
修改鼠標(biāo)為Windows類型鼠標(biāo),右鍵不是粘貼(點(diǎn)一下右鍵剪貼板內(nèi)容自動跑進(jìn)設(shè)備了,危險(xiǎn)),而是出現(xiàn)右鍵菜單。
設(shè)想以后新增加功能全部放到這個(gè)右鍵菜單里面
<setting.c>
#ifdef DX200
gppi(sesskey, "MouseIsXterm", 2, &cfg->mouse_is_xterm);
#else
gppi(sesskey, "MouseIsXterm", 0, &cfg->mouse_is_xterm);
#endif
修改窗口默認(rèn)出現(xiàn)大小,位置。原始的太小,而且位置也不太好,現(xiàn)在全是寬屏,就放到右邊吧。
為了不影響后面其它程序的窗口,露出<關(guān)閉,最大化,最小化>的系統(tǒng)區(qū)域。
<windows.c>
#ifdef DX200
{
RECT wa;
SystemParametersInfo(SPI_GETWORKAREA, 0, (PVOID)&wa, 0);
guess_width = extra_width + font_width * (term->cols+2);
guess_height =wa.bottom- wa.top;
SetWindowPos(hwnd, NULL, wa.right-guess_width, extra_height, guess_width, guess_height-extra_height,
SWP_NOREDRAW | SWP_NOZORDER);
}
#else
guess_width = extra_width + font_width * term->cols;
guess_height = extra_height + font_height * term->rows;
SetWindowPos(hwnd, NULL, 0, 0, guess_width, guess_height,
SWP_NOMOVE | SWP_NOREDRAW | SWP_NOZORDER);
#endif
去掉窗口標(biāo)題欄的菜單,因?yàn)橐呀?jīng)將窗口上面的右鍵放出來了。
#ifndef DX200
popup_menus[SYSMENU].menu = GetSystemMenu(hwnd, FALSE);
#endif
目前遺留問題
當(dāng)窗口的字體等變化時(shí),那么窗口的大小沒有重新計(jì)算位置,這個(gè)完全不影響,手工調(diào)整也行,但是不完美。下一步增加。
目前已經(jīng)可以使了,增加設(shè)備(connection)時(shí)候,填寫一個(gè)IP和名字,save就行了,非常舒服。下一步增加自動登錄,自動保存LOG,執(zhí)行批命令。
[ 本帖最后由 WWWSpider 于 2012-6-12 10:15 編輯 ]
|