我想实现我的应用程序,是 不是 需要右键单击并选择 以管理员身份运行 我要运行它每次。我希望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应该可以解决问题。