自己设置CMD窗口位置、字体、大小等

自己设置CMD窗口位置、字体、大小等

由于最近学了点汇编,所以总是用CMD,每次看到老师都要设置下大小,蛮烦人的,特此找了个这方法固定大小。不过……最终还是没有成功,只要启动debug就还会恢复到原来大小,纠结啊……暂时没空解决了,先扔这里吧~

1、默认设置:

HKEY_CURRENT_USER\Console

2、自定义设置:

[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]

3、键及值:

“WindowPosition”=dword:00640104
“CodePage”=dword:000003a8
“FontSize”=dword:00100008
“FontFamily”=dword:00000030
“FontWeight”=dword:00000190
“HistoryNoDup”=dword:00000000
“FullScreen”=dword:00000000
“ScreenColors”=dword:000000ce
“ScreenBufferSize”=dword:12c0050

4、键值意义:

各键值均为十六进制表示
窗口位置—–WindowPosition—高四位为上,低四位为左。
如00640104,即距屏幕上沿64H=100,距屏幕左沿104H=260
字体大小—–FontSize———高四位为字高,低四位为字宽
如00100008,即字体宽×高=08H×10H=8×16
全屏幕——-FullScreen——-0:窗口 1:全屏幕(此时WindowPosition失效)
窗口尺寸—–WindowSize——-高四位为高度,低四位为宽度
默认00190050,即高19H=25行,宽50H=80列
缓冲区尺寸—ScreenBufferSize-高四位为高度,低四位为宽度
默认012c0050,即高12cH=300行,宽50H=80列
字体颜色—–ScreenColors—–低两位同color设置中的字体颜色值
字体类型—–FontFamily——-36:新宋体 30:点阵字体
当前代码页—CodePage———默认3a8H=936:ANSI/OEM-简体中文GBK
丢弃旧副本—HistoryNoDup—–0:不丢弃 1:丢弃旧副本

5、自定义与默认关系:

系统首先在自定义里面查找相关设置,若自定义中没有,则到默认里面查找。
即自定义优先级高于默认。

6、批处理设定窗口属性

set rr=”HKCU\Console\%%SystemRoot%%_system32_cmd.exe”
reg delete %rr% /f>nul
reg add %rr% /v “WindowPosition” /t REG_DWORD /d 0x00640104 /f>nul
reg add %rr% /v “WindowSize” /t REG_DWORD /d 0x00190050 /f>nul
reg add %rr% /v “ScreenBufferSize” /t REG_DWORD /d 0x00190050 /f>nul
reg add %rr% /v “FullScreen” /t REG_DWORD /d 0x00000001 /f>nul
reg add %rr% /v “FontSize” /t REG_DWORD /d 0x00100008 /f>nul

7、字体大小:

(1)点阵字体(较小)
3×5——-00050003
5×8——-00080005
6×12——000c0006
6×13——000d0006
8×16——00100008
8×18——00120008
10×20—–0014000a
10×22—–0016000a
12×27—–001b000c
(2)新宋体(较大)
6—-00060000—3*7
8—-00080000—4*9
10—000a0000—5*11
12—000c0000—6*14
14—000e0000—7*16
16—00100000—8*18
18—00120000—9*21
20—00140000—10*23
24—00180000—12*27
28—001c0000—14*32
36—00240000—18*41
72—00480000—36*82

以上是自定义cmd窗口属性的基本知识,下面提供一个实例,是一个小游戏:猜数字。

@echo off
set rr=”HKCU\Console\%%SystemRoot%%_system32_cmd.exe”
reg add %rr% /v “WindowPosition” /t REG_DWORD /d 0x0064020b /f>nul
reg add %rr% /v “WindowSize” /t REG_DWORD /d 0x000e0015 /f>nul
reg add %rr% /v “ScreenBufferSize” /t REG_DWORD /d 0x000e0015 /f>nul
if not defined ff (set ff=0&start cmd /c %0&exit)
::mode con cols=21 lines=14
title 猜数字
setlocal enabledelayedexpansion
cd /d %TEMP%

>tmp.bat echo @echo off
>>tmp.bat echo title 输入数字
>>tmp.bat echo for /l %%%%i in (1,1,6) do echo.
>>tmp.bat echo set /p num=输入数字:
>>tmp.bat echo echo %%num%%^>tm.tmp
>>tmp.bat echo exit

:main
cls
set times=0
echo 次 数字   状况
:again
set n1=%random:~-1%
set n2=
set n3=
set n4=
:value
set n=%random:~-1%
if “%n2%”==”” if %n% NEQ %n1% set n2=%n%
if “%n3%”==”” if %n% NEQ %n1% if %n% NEQ %n2% set n3=%n%
if “%n4%”==”” if %n% NEQ %n1% if %n% NEQ %n2% if %n% NEQ %n3% set n4=%n%
if “%n4%”==”” goto :value
::echo %n1%,%n2%,%n3%,%n4%
:check
if %times% EQU 8 goto :end
set A=0&set B=0&set m=0
reg add %rr% /v “WindowPosition” /t REG_DWORD /d 0x0064015c /f>nul
reg add %rr% /v “WindowSize” /t REG_DWORD /d 0x000e0015 /f>nul
reg add %rr% /v “ScreenBufferSize” /t REG_DWORD /d 0x000e0015 /f>nul
start /wait cmd /k tmp.bat
reg delete %rr% /f>nul
set /p num=<tm.tmp
del tm.tmp&set /a times+=1
if /i “%num%”==”exit” (del tm.tmp&del tmp.bat&exit)
for %%i in (%n1%,%n2%,%n3%,%n4%) do (
(echo %num%|find “%%i”)>nul&&(
set /a B+=1
call set k=%%num:~!m!,1%%
if “%%i”==”!k!” set /a A+=1
)&set /a m+=1
)
echo %times% %num%   %A%A%B%B
if %A% NEQ 4 goto :check
del tmp.bat
echo   恭喜你,答对了!
pause>nul
exit

:end
echo.
echo     你已试了8次了!
echo    答案是%n1%%n2%%n3%%n4%
echo    再来一次吧!
set /p ff=
if /i “%ff%”==”N” (del tmp.bat&exit)
goto :main

17 Comments
    1. 是的~那个例子里有~ 😉

  1. 很实用。CMD的窗口看了有种枯燥的感觉……

    1. 呵呵,直接写个reg文件也可以改了~

    1. 这个这个……以后会有别的啦,目前只是当做个记录哈,要明年了~

    1. 看看就懂了,嘿嘿~

  2. 我靠~~这么麻烦啊 ❗

  3. <img src=" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <img src=" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 呵呵 这个啊 我就不会折腾啊

  4. 还真没见过修改这个的,长见识了哈~

Leave a Reply

Time limit is exhausted. Please reload the CAPTCHA.