|
目前无解,UNICODE显示的字体是完全由UNIFONT控制的.
即使是GRUB4DOS内部也没有办法处理.
你可以考虑自己写一个小程序,首先获取当前光标位置,显示完后再读取一下光标位置,两个位置之间的距离就是总长度了.
C语言的话,获取fontx/fonty变量的值就行了.
比如未显示之前读一次存为fontx1,fonty1
显示之后读一次存为fontx2,fonty2
如果fonty2不等于fonty1则已经跳行了.
fontx2-fontx1就是显示的长度.
另外如果不想写外部命令,直接用批处理也是可以获取fontx/fonty的值的.
根据GRUB4DOS.H的定义.
#define fontx ((*(int **)0x8304)[26])
#define fonty ((*(int **)0x8304)[27])
所以fontx的值获取方法如下
set /a fontx=26<<2+*0x8304
set /a fontx1=*%fontx%&0xffffffff
fonty类似,
再给你一个测试的批处理.
set /a fontx=26<<2+*0x8304
echo -n 1234567890 && read %fontx%
会得到0xa即10个字符.
注:如果没有加-n则读到的是0,因为回车后就是在下一行的起始位置了. |
|