|
@@ -161,6 +161,8 @@ var (
|
|
|
procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW")
|
|
procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW")
|
|
|
procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId")
|
|
procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId")
|
|
|
procGetConsoleMode = modkernel32.NewProc("GetConsoleMode")
|
|
procGetConsoleMode = modkernel32.NewProc("GetConsoleMode")
|
|
|
|
|
+ procSetConsoleMode = modkernel32.NewProc("SetConsoleMode")
|
|
|
|
|
+ procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo")
|
|
|
procWriteConsoleW = modkernel32.NewProc("WriteConsoleW")
|
|
procWriteConsoleW = modkernel32.NewProc("WriteConsoleW")
|
|
|
procReadConsoleW = modkernel32.NewProc("ReadConsoleW")
|
|
procReadConsoleW = modkernel32.NewProc("ReadConsoleW")
|
|
|
procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot")
|
|
procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot")
|
|
@@ -1629,6 +1631,30 @@ func GetConsoleMode(console Handle, mode *uint32) (err error) {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func SetConsoleMode(console Handle, mode uint32) (err error) {
|
|
|
|
|
+ r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0)
|
|
|
|
|
+ if r1 == 0 {
|
|
|
|
|
+ if e1 != 0 {
|
|
|
|
|
+ err = errnoErr(e1)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ err = syscall.EINVAL
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) {
|
|
|
|
|
+ r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(&info)), 0)
|
|
|
|
|
+ if r1 == 0 {
|
|
|
|
|
+ if e1 != 0 {
|
|
|
|
|
+ err = errnoErr(e1)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ err = syscall.EINVAL
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) {
|
|
func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) {
|
|
|
r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0)
|
|
r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0)
|
|
|
if r1 == 0 {
|
|
if r1 == 0 {
|