From ce3d0954a51c1b958211a4cb41d3179c4c06fe8c Mon Sep 17 00:00:00 2001 From: "Jason T. Greene" Date: Thu, 16 Jun 2022 21:34:57 -0500 Subject: Open Windows tutorial after MSI installation Signed-off-by: Jason T. Greene --- cmd/winpath/main.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'cmd') diff --git a/cmd/winpath/main.go b/cmd/winpath/main.go index 6fbe72837..b7aa7330d 100644 --- a/cmd/winpath/main.go +++ b/cmd/winpath/main.go @@ -12,6 +12,7 @@ import ( "syscall" "unsafe" + "golang.org/x/sys/windows" "golang.org/x/sys/windows/registry" ) @@ -26,6 +27,7 @@ const ( Environment = "Environment" Add operation = iota Remove + Open NotSpecified ) @@ -37,6 +39,8 @@ func main() { op = Add case "remove": op = Remove + case "open": + op = Open } } @@ -46,6 +50,14 @@ func main() { os.Exit(ERR_BAD_ARGS) } + // Hidden operation as a workaround for the installer + if op == Open && len(os.Args) > 2 { + if err := winOpenFile(os.Args[2]); err != nil { + os.Exit(OPERATION_FAILED) + } + os.Exit(0) + } + if err := modify(op); err != nil { os.Exit(OPERATION_FAILED) } @@ -182,3 +194,9 @@ func alert(caption string) int { return int(ret) } + +func winOpenFile(file string) error { + verb, _ := syscall.UTF16PtrFromString("open") + fileW, _ := syscall.UTF16PtrFromString(file) + return windows.ShellExecute(0, verb, fileW, nil, nil, windows.SW_NORMAL) +} -- cgit v1.2.3-54-g00ecf