모두의 프린터는 어떠한 경우에도 회원가입, 카드결제를 요구하지 않습니다.

윈도API, ShellExcute를 이용한 관리자권한으로 명령어 실행

Go
import (
	"golang.org/x/sys/windows"
	"path/filepath"    
)


/**
*	runAsCommand
**/
func runAsCommand(exe string, runArg string, showCmd int32) error {
	verb := "runas"
	cwd := filepath.Dir(exe)

	verbPtr, _ := syscall.UTF16PtrFromString(verb)
	exePtr, _ := syscall.UTF16PtrFromString(exe)
	cwdPtr, _ := syscall.UTF16PtrFromString(cwd)
	argPtr, _ := syscall.UTF16PtrFromString(runArg)

	err := windows.ShellExecute(0, verbPtr, exePtr, argPtr, cwdPtr, showCmd)
	if err != nil {
		return err
	}

	return nil
}

윈도에서 프로그래밍을 하다보면 .. 특정 위치의 레지스트리에 정보를 기록하거나 시스템영역의 파일을 읽거나 하기 위해서 관리자권한으로 프로그램을 실행해야하는 경우에 사용가능한 함수입니다.

golang.org/x/sys/windows 패키지의 ShellExcute 바인딩을 이용합니다.

%d