| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- package goautoit
- import "log"
- // IsAdmin -- Checks if the current user has full administrator privileges.
- func IsAdmin() int {
- ret, _, lastErr := isAdmin.Call()
- if ret == 0 {
- log.Println(lastErr)
- }
- return int(ret)
- }
- // ProcessClose -- Terminates a named process.
- func ProcessClose(process string) int {
- ret, _, lastErr := processClose.Call(strPtr(process))
- if ret == 0 {
- log.Println(lastErr)
- }
- return int(ret)
- }
- // ProcessExists -- Checks to see if a specified process exists.
- func ProcessExists(process string) int {
- ret, _, lastErr := processExists.Call(strPtr(process))
- if ret == 0 {
- log.Println(lastErr)
- }
- return int(ret)
- }
- // ProcessSetPriority -- Changes the priority of a process.
- func ProcessSetPriority(process string, priority int) int {
- ret, _, lastErr := processSetPriority.Call(strPtr(process), intPtr(priority))
- if ret == 0 {
- log.Println(lastErr)
- }
- return int(ret)
- }
- // ProcessWait -- Pauses script execution until a given process exists.
- func ProcessWait(process string, args ...interface{}) int {
- var timeout int
- var ok bool
- if len(args) == 0 {
- timeout = 0
- } else if len(args) == 1 {
- if timeout, ok = args[0].(int); !ok {
- panic("timeout must be a int")
- }
- } else {
- panic("Error parameters")
- }
- ret, _, lastErr := processWait.Call(strPtr(process), intPtr(timeout))
- if ret == 0 {
- log.Println(lastErr)
- }
- return int(ret)
- }
- // ProcessWaitClose -- Pauses script execution until a given process does not exist.
- func ProcessWaitClose(process string, args ...interface{}) int {
- var timeout int
- var ok bool
- if len(args) == 0 {
- timeout = 0
- } else if len(args) == 1 {
- if timeout, ok = args[0].(int); !ok {
- panic("timeout must be a int")
- }
- } else {
- panic("Error parameters")
- }
- ret, _, lastErr := processWaitClose.Call(strPtr(process), intPtr(timeout))
- if ret == 0 {
- log.Println(lastErr)
- }
- return int(ret)
- }
- // RunWait -- Runs an external program and pauses script execution until the program finishes.
- // flag 3(max) 6(min) 9(normal) 0(hide)
- func RunWait(szProgram string, args ...interface{}) int {
- var szDir string
- var flag int
- var ok bool
- if len(args) == 0 {
- szDir = ""
- flag = SWShowNormal
- } else if len(args) == 1 {
- if szDir, ok = args[0].(string); !ok {
- panic("szDir must be a string")
- }
- flag = SWShowNormal
- } else if len(args) == 2 {
- if szDir, ok = args[0].(string); !ok {
- panic("szDir must be a string")
- }
- if flag, ok = args[1].(int); !ok {
- panic("flag must be a int")
- }
- } else {
- panic("Too more parameter")
- }
- pid, _, lastErr := runWait.Call(strPtr(szProgram), strPtr(szDir), intPtr(flag))
- // log.Println(pid)
- if int(pid) == 0 {
- log.Println(lastErr)
- }
- return int(pid)
- }
- // RunAs -- Runs an external program under the context of a different user.
- func RunAs(user, domain, password string, loginFlag int, szProgram string, args ...interface{}) int {
- var szDir string
- var flag int
- var ok bool
- if len(args) == 0 {
- szDir = ""
- flag = SWShowNormal
- } else if len(args) == 1 {
- if szDir, ok = args[0].(string); !ok {
- panic("szDir must be a string")
- }
- flag = SWShowNormal
- } else if len(args) == 2 {
- if szDir, ok = args[0].(string); !ok {
- panic("szDir must be a string")
- }
- if flag, ok = args[1].(int); !ok {
- panic("flag must be a int")
- }
- } else {
- panic("Too more parameter")
- }
- pid, _, lastErr := runAs.Call(strPtr(user), strPtr(domain), strPtr(password), intPtr(loginFlag), strPtr(szProgram), strPtr(szDir), intPtr(flag))
- // log.Println(pid)
- if int(pid) == 0 {
- log.Println(lastErr)
- }
- return int(pid)
- }
- // RunAsWait -- Runs an external program under the context of a different user and pauses script execution until the program finishes.
- func RunAsWait(user, domain, password string, loginFlag int, szProgram string, args ...interface{}) int {
- var szDir string
- var flag int
- var ok bool
- if len(args) == 0 {
- szDir = ""
- flag = SWShowNormal
- } else if len(args) == 1 {
- if szDir, ok = args[0].(string); !ok {
- panic("szDir must be a string")
- }
- flag = SWShowNormal
- } else if len(args) == 2 {
- if szDir, ok = args[0].(string); !ok {
- panic("szDir must be a string")
- }
- if flag, ok = args[1].(int); !ok {
- panic("flag must be a int")
- }
- } else {
- panic("Too more parameter")
- }
- pid, _, lastErr := runAsWait.Call(strPtr(user), strPtr(domain), strPtr(password), intPtr(loginFlag), strPtr(szProgram), strPtr(szDir), intPtr(flag))
- // log.Println(pid)
- if int(pid) == 0 {
- log.Println(lastErr)
- }
- return int(pid)
- }
|