/*** * Just a small demonstration script that makes an alert box containing the user the current process is running as */ package main import ( "log" "os/user" "syscall" "unsafe" ) // MessageBox of Win32 API. func MessageBox(hwnd uintptr, caption, title string, flags uint) int { ret, _, _ := syscall.NewLazyDLL("user32.dll").NewProc("MessageBoxW").Call( uintptr(hwnd), uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(caption))), uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(title))), uintptr(flags)) return int(ret) } // MessageBoxPlain of Win32 API. func MessageBoxPlain(title, caption string) int { const ( NULL = 0 MB_OK = 0 ) return MessageBox(NULL, caption, title, MB_OK) } func main() { currentUser, err := user.Current() if err != nil { log.Fatalf("Unable to get current user: %s", err) } userId := currentUser.Username MessageBoxPlain("Running as", userId) }