added ability to rerun itself as admin should hopefully work and actually made window smaller

This commit is contained in:
2023-12-14 20:25:51 -06:00
parent 0553968907
commit cf65351d4e
3 changed files with 67 additions and 3 deletions

13
admin/admin_linux.go Normal file
View File

@@ -0,0 +1,13 @@
package admin
import "errors"
var ErrNotImplemented = errors.New("not implemented on linux")
func RunSelfElevated() error {
return ErrNotImplemented
}
func Admin() bool {
return true
}

41
admin/admin_windows.go Normal file
View File

@@ -0,0 +1,41 @@
package admin
import (
"fmt"
"os"
"strings"
"syscall"
"golang.org/x/sys/windows"
)
func RunSelfElevated() error {
verb := "runas"
exe, _ := os.Executable()
cwd, _ := os.Getwd()
args := strings.Join(os.Args[1:], " ")
verbPtr, _ := syscall.UTF16PtrFromString(verb)
exePtr, _ := syscall.UTF16PtrFromString(exe)
cwdPtr, _ := syscall.UTF16PtrFromString(cwd)
argPtr, _ := syscall.UTF16PtrFromString(args)
var showCmd int32 = 1 //SW_NORMAL
err := windows.ShellExecute(0, verbPtr, exePtr, argPtr, cwdPtr, showCmd)
if err != nil {
fmt.Println(err)
}
return nil
}
func Admin() bool {
_, err := os.Open("\\\\.\\PHYSICALDRIVE0")
if err != nil {
fmt.Println("admin no")
return false
}
fmt.Println("admin yes")
return true
}