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