第一步修改默认值以适合DX200平台。
注:本人在项目预处理器中定义了一个DX200。去掉DX200定义后,将是100%原始putty,加上DX200后将适合DX200平台使用。
在项目中搜索DX200字符,就是我修改的代码部分。
修改默认协议为Telnet
<be_all_s.c>
增加
#ifdef DX200
#define TELNET_DEFAULT
#endif
修改字符光标(caret)闪动
<setting.c>
#ifdef DX200
gppi(sesskey, "BlinkCur", 1, &cfg->blink_cur);
#else
gppi(sesskey, "BlinkCur", 0, &cfg->blink_cur);
#endif
修改默认缓冲区为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
修改默认颜色(原始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
修改鼠标为Windows类型鼠标,右键不是粘贴(点一下右键剪贴板内容自动跑进设备了,危险),而是出现右键菜单。
设想以后新增加功能全部放到这个右键菜单里面
<setting.c>
#ifdef DX200
gppi(sesskey, "MouseIsXterm", 2, &cfg->mouse_is_xterm);
#else
gppi(sesskey, "MouseIsXterm", 0, &cfg->mouse_is_xterm);
#endif
修改窗口默认出现大小,位置。原始的太小,而且位置也不太好,现在全是宽屏,就放到右边吧。
为了不影响后面其它程序的窗口,露出<关闭,最大化,最小化>的系统区域。
<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
去掉窗口标题栏的菜单,因为已经将窗口上面的右键放出来了。
#ifndef DX200
popup_menus[SYSMENU].menu = GetSystemMenu(hwnd, FALSE);
#endif
目前遗留问题
当窗口的字体等变化时,那么窗口的大小没有重新计算位置,这个完全不影响,手工调整也行,但是不完美。下一步增加。
目前已经可以使了,增加设备(connection)时候,填写一个IP和名字,save就行了,非常舒服。下一步增加自动登录,自动保存LOG,执行批命令。
[ 本帖最后由 WWWSpider 于 2012-6-12 10:15 编辑 ]
|