如何使用Go在Windows上请求管理权限
我想实现我的应用程序,是 需要右键单击并选择 以管理员身份运行
我要运行它每次。我希望Windows像其他Windows应用程序一样提示我获得管理员权限。
考虑以下代码:
package mainimport (
"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