You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
959 B
39 lines
959 B
package terminal
|
|
|
|
import (
|
|
"syscall"
|
|
)
|
|
|
|
var (
|
|
kernel32 = syscall.NewLazyDLL("kernel32.dll")
|
|
procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
|
|
procSetConsoleTextAttribute = kernel32.NewProc("SetConsoleTextAttribute")
|
|
procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition")
|
|
procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW")
|
|
procGetConsoleCursorInfo = kernel32.NewProc("GetConsoleCursorInfo")
|
|
procSetConsoleCursorInfo = kernel32.NewProc("SetConsoleCursorInfo")
|
|
)
|
|
|
|
type wchar uint16
|
|
type dword uint32
|
|
type word uint16
|
|
|
|
type smallRect struct {
|
|
left Short
|
|
top Short
|
|
right Short
|
|
bottom Short
|
|
}
|
|
|
|
type consoleScreenBufferInfo struct {
|
|
size Coord
|
|
cursorPosition Coord
|
|
attributes word
|
|
window smallRect
|
|
maximumWindowSize Coord
|
|
}
|
|
|
|
type consoleCursorInfo struct {
|
|
size dword
|
|
visible int32
|
|
}
|
|
|