Windows控制台的增强 Console

GPL
C/C++
Windows
2012-03-28
唐朝和尚

Console是Windows控制台的增强的实现。受eConsole(http://www.informatik.uni-frankfurt.de/~corion)项目的启发而创建。

Console功能包括:

多选项卡(多标签页)支持

像文本编辑器一样选择文本

设置不同类型的背景(纯色,图形,透明度)

设置字体

各种不同的窗口风格

注:Console不是一个Shell,因此,它没有实现Shell的特性,如命令完成,语法着色,命令行历史等。

Console是你选择的Shell(cmd.exe, 4NT, bash等)的更强大的终端。

=============================================================================

官方版本不支持中文显示和输入,并且窗口最大化

我们可以对其做一些修改来实现中文显示和输入。

1,中文显示

把下面的内容保存为reg文件:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Console\Console2 command window]

"CodePage"=dword:000003a8

"ScreenBufferSize"=dword:01f40050

"WindowPosition"=dword:00ee0127

"FontSize"=dword:000e0000

"FontFamily"=dword:00000036

"FontWeight"=dword:00000190

"FaceName"="新宋体"

 

2,中文输入(需要修改源代码)

修改ConsoleView.cpp文件:

BOOL ConsoleView::PreTranslateMessage(MSG* pMsg)

{

if ((pMsg->message == WM_KEYDOWN) || 

(pMsg->message == WM_KEYUP) ||

(pMsg->message == WM_SYSKEYDOWN) || 

(pMsg->message == WM_SYSKEYUP))

{

// Avoid calling ::TranslateMessage for WM_KEYDOWN, WM_KEYUP,

// WM_SYSKEYDOWN and WM_SYSKEYUP (except for wParam == VK_PACKET, 

// which is sent by SendInput when pasting text).

///

// This prevents WM_CHAR and WM_SYSCHAR messages, enabling stuff like

// handling 'dead' characters input and passing all keys to console.

if (pMsg->wParam == VK_PACKET) return FALSE;

//::DispatchMessage(pMsg);   // 原代码中的内容

//添加输入中文功能: begin (参考自http://download.csdn.net/detail/zhangj7851/2513105)

::TranslateMessage(pMsg);

if(!::PeekMessage(pMsg, NULL, 0, 0, PM_NOREMOVE))

::DispatchMessage(pMsg);

//添加输入中文功能: end

return TRUE;

}

 

return FALSE;

}

 

3,窗口最大化(需要修改源代码)

修改MainFrame.cpp文件

void MainFrame::SetWindowStyles()

{

    ......

    //dwStyle &= ~WS_MAXIMIZEBOX;   // 这一行注释或删除掉

    ......

}

加载中

评论(1)

极品屌丝
你说的是抓鸡的工具吧

暂无资讯

2
回答
谁写过端口扫描的小程序

小弟急需通过winpcap的端口扫描程序(在控制台下面的),谁能给我这方面的资料。(文档或者一小段的代码都行)

2013/03/13 11:19

没有更多内容

加载失败,请刷新页面

没有更多内容

20道C#练习题(一)1——10题

1.输入三个整数,xyz,最终以从小到大的方式输出。利用if嵌套。 Console.Write("请输入x="); double x = double.Parse(Console.ReadLine()); Console.Write("请输入y="); double y = double...

2016/05/12 14:08
8
2
分支(选择)结构2016/03/07

分支(条件)语句03/07 一、 语句分类:顺序语句,选择语句(分支语句),循环语句 二、 1、if(){} 例如int a = 10; if (a < 11) { a++; } if (a > 3) { a--; } Console.WriteLine(a); 运算结...

2016/05/12 14:08
4
2
Dell 配置链路聚合

5. 配置链路聚合 说明:DELL 5524 交换机可以使用手动创建链路聚合,也可以使用 LACP 协议进行链路聚 合。将交换机 19-20 端口设定为静态链路聚合,将 21-22 端口设定为 LACP 动态链路聚合。...

2014/12/23 10:08
51
0
循环、类0311

循环、类0311 1、棋盘放粮食/一天一分钱问题 Console.Write("输入天数:"); double a = double.Parse(Console.ReadLine()); double sum = 0, d = 0; for (double i = 1; i <= a; i++) { if ...

2016/05/12 14:08
1
2
js调试工具Console命令详解

1、显示信息的命令 console.log('hello'); console.info('信息'); console.error('错误'); console.warn('警告'); 2、占位符 console上述的集中度支持printf的占位符格式,支持的占位符有:字...

2015/09/16 16:03
162
0
javascript隐式类型转换

### 对象的原始值 在javascript中存在很多隐式转换,有些时候我们需要获取对象的原始值,然后进行进一步的运算。 获取对象的原始值有两种转换模式,对象到字符串的模式和对象到数字的模式。 ...

2016/03/09 18:33
51
1
js:谁是true,谁是false

## 具有”真正“的值,则认为是true: ```js > if ([]) console.log(123); 123 undefined > if ({}) console.log(123); 123 undefined > if (11) console.log(123); 123 undefined > if (-1...

2015/12/09 23:03
97
1
函数 传址

函数 传址 1.输入两个数比较大小,返回大的 class Program { public double bijiao() { Console.Write("请输入第一个数"); double a = double.Parse(Console.ReadLine()); Console.Write("请...

2016/05/12 14:08
3
2

没有更多内容

加载失败,请刷新页面

返回顶部
顶部