1package ansi 2 3import ( 4 "syscall" 5) 6 7var ( 8 kernel32 = syscall.NewLazyDLL("kernel32.dll") 9 procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo") 10 procSetConsoleTextAttribute = kernel32.NewProc("SetConsoleTextAttribute") 11 procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition") 12 procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW") 13 procGetConsoleCursorInfo = kernel32.NewProc("GetConsoleCursorInfo") 14 procSetConsoleCursorInfo = kernel32.NewProc("SetConsoleCursorInfo") 15) 16 17type wchar uint16 18type short int16 19type dword uint32 20type word uint16 21 22type coord struct { 23 x short 24 y short 25} 26 27type smallRect struct { 28 left short 29 top short 30 right short 31 bottom short 32} 33 34type consoleScreenBufferInfo struct { 35 size coord 36 cursorPosition coord 37 attributes word 38 window smallRect 39 maximumWindowSize coord 40} 41 42type consoleCursorInfo struct { 43 size dword 44 visible int32 45} 46