github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/mattn/go-isatty/isatty_windows.go (about)

     1  // +build windows
     2  // +build !appengine
     3  
     4  package isatty
     5  
     6  import (
     7  	"syscall"
     8  	"unsafe"
     9  )
    10  
    11  var kernel32 = syscall.NewLazyDLL("kernel32.dll")
    12  var procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
    13  
    14  // IsTerminal return true if the file descriptor is terminal.
    15  func IsTerminal(fd uintptr) bool {
    16  	var st uint32
    17  	r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)
    18  	return r != 0 && e == 0
    19  }