| | /*** |
---|
| | * 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) |
---|
| | } |
---|
| | |
---|
| | |