如何使用Go在Windows上请求管理权限

我想实现我的应用程序,是 需要右键单击并选择 以管理员身份运行

我要运行它每次。我希望Windows像其他Windows应用程序一样提示我获得管理员权限。

考虑以下代码:

package main

import (

"fmt"

"io/ioutil"

"time"

)

func main() {

err := ioutil.WriteFile("C:/Windows/test.txt", []byte("TESTING!"), 0644)

if err != nil {

fmt.Println(err.Error())

time.Sleep(time.Second * 3)

}

}

如果您编译它并双击它,它将打印:

打开:C:\ Windows \ test.txt:拒绝访问。

但是,如果右键单击并以管理员身份运行,它将创建并写入文件。

如何使其仅通过双击即可要求管理员权限?

回答:

您需要嵌入一个清单文件,该文件将告诉Windows您想要提升的特权。

该页面上的示例是:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

<assemblyIdentity

version="9.0.0.0"

processorArchitecture="x86"

name="myapp.exe"

type="win32"

/>

<description>My App</description>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

<security>

<requestedPrivileges>

<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

</requestedPrivileges>

</security>

</trustInfo>

</assembly>

这篇坚果文章表明,使用rsrc应该可以解决问题。

以上是 如何使用Go在Windows上请求管理权限 的全部内容, 来源链接: utcz.com/qa/399143.html

回到顶部