added ability to rerun itself as admin should hopefully work and actually made window smaller
This commit is contained in:
13
admin/admin_linux.go
Normal file
13
admin/admin_linux.go
Normal 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
41
admin/admin_windows.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user