syscall_windows.go 959 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package terminal
  2. import (
  3. "syscall"
  4. )
  5. var (
  6. kernel32 = syscall.NewLazyDLL("kernel32.dll")
  7. procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
  8. procSetConsoleTextAttribute = kernel32.NewProc("SetConsoleTextAttribute")
  9. procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition")
  10. procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW")
  11. procGetConsoleCursorInfo = kernel32.NewProc("GetConsoleCursorInfo")
  12. procSetConsoleCursorInfo = kernel32.NewProc("SetConsoleCursorInfo")
  13. )
  14. type wchar uint16
  15. type dword uint32
  16. type word uint16
  17. type smallRect struct {
  18. left Short
  19. top Short
  20. right Short
  21. bottom Short
  22. }
  23. type consoleScreenBufferInfo struct {
  24. size Coord
  25. cursorPosition Coord
  26. attributes word
  27. window smallRect
  28. maximumWindowSize Coord
  29. }
  30. type consoleCursorInfo struct {
  31. size dword
  32. visible int32
  33. }