msgbox_windows.go 702 B

12345678910111213141516171819202122232425
  1. package main
  2. import (
  3. "os/exec"
  4. "syscall"
  5. "unsafe"
  6. )
  7. // showMessageBox 调用 Windows MessageBoxW 弹出模态对话框
  8. func showMessageBox(title, msg string) {
  9. user32 := syscall.NewLazyDLL("user32.dll")
  10. msgBox := user32.NewProc("MessageBoxW")
  11. lpTitle, _ := syscall.UTF16PtrFromString(title)
  12. lpText, _ := syscall.UTF16PtrFromString(msg)
  13. // MB_OK | MB_ICONWARNING | MB_SETFOREGROUND | MB_TOPMOST
  14. const flags = 0x00000000 | 0x00000030 | 0x00010000 | 0x00040000
  15. msgBox.Call(0, uintptr(unsafe.Pointer(lpText)), uintptr(unsafe.Pointer(lpTitle)), uintptr(flags))
  16. }
  17. // runNotepad 调用 notepad.exe 打开指定文件
  18. func runNotepad(path string) {
  19. exec.Command("notepad.exe", path).Start()
  20. }