Ruby 中的用户界面编程技巧
1. 终端尺寸获取
在 Ruby 中,获取终端尺寸有不同的方法。在 Windows 系统下,可以使用 Win32API 调用 Windows 的相关函数来实现:
m_GetStdHandle = Win32API.new('kernel32', 'GetStdHandle', ['L'], 'L')
m_GetConsoleScreenBufferInfo = Win32API.new ('kernel32',
'GetConsoleScreenBufferInfo',
['L', 'P'], 'L' )
format = 'SSSSSssssSS'
buf = ([0] * format.size).pack(format)
stdout_handle = m_GetStdHandle.call(STDOUT_HANDLE)
m_GetConsoleScreenBufferInfo.call(stdout_handle, buf)
(bufx, bufy, curx, cury, wattr,
left, top, right, bottom, maxx, maxy) = buf.unpack(format)
return bottom - top + 1, right - left + 1
在 Unix 系统中,如果上述方法不适用,可以调用 stt
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



