unity打包的windows程序运行权限问题整理
在Vista以后的windows版本中,有些時(shí)候需要提升編譯后生成程序的權(quán)限,即希望讓生成的程序以管理員身份運(yùn)行。雖然在一般情況下,可以使用鼠標(biāo)右鍵選擇的方式來強(qiáng)行以管理員身份運(yùn)行,但它并沒有屏蔽普通運(yùn)行方式,而且普通人通常也不會(huì)使用右鍵選擇以管理員身份運(yùn)行,所以必須在生成程序時(shí)就限定程序只能以管理員方式來運(yùn)行。
在Vista以后的windows版本中,微軟引入了UAC機(jī)制,它的目的是防止程序?qū)Σ僮飨到y(tǒng)本身進(jìn)行惡意篡改。要讓程序以管理員身份運(yùn)行,就需要在程序中引入U(xiǎn)AC標(biāo)注,也即讓程序顯示“UAC盾牌”(就是軟件icon右下角會(huì)有一個(gè)盾牌的logo)
UAC Execution Level可選參數(shù):
0: asInvoker:應(yīng)用程序?qū)⑹褂门c啟動(dòng)它的進(jìn)程相同的權(quán)限運(yùn)行。 可通過選擇“以管理員身份運(yùn)行”將應(yīng)用程序提升為更高權(quán)限。 (俗稱中權(quán)限)
1: highestAvailable:應(yīng)用程序?qū)⑹褂每赡艿淖罡邫?quán)限級(jí)別運(yùn)行。 如果啟動(dòng)該應(yīng)用程序的用戶為管理員組的一個(gè)成員,則此選項(xiàng)與 requireAdministrator 相同。 如果可用的最高權(quán)限級(jí)別高于打開進(jìn)程的級(jí)別,則系統(tǒng)將提示提供憑據(jù)。
2: requireAdministrator:應(yīng)用程序?qū)⑹褂霉芾韱T權(quán)限運(yùn)行。 啟動(dòng)該應(yīng)用程序的用戶必須是管理員組的一個(gè)成員。 如果打開進(jìn)程未使用管理權(quán)限運(yùn)行,則系統(tǒng)將提示提供憑據(jù)。(俗稱高權(quán)限)
對(duì)于unity程序,打包是使用的windowsplayer.exe文件(路徑就在下面)來打包的,level的設(shè)置是在unity的安裝目錄下的Data\PlaybackEngines\windowsstandalonesupport\Source\WindowsPlayer\WindowsPlayer\WindowsPlayer.manifest"
當(dāng)level = asInvoker的時(shí)候,沒有小盾牌
當(dāng)level = requireAdministrator的時(shí)候,是有小盾牌的
官方文檔解釋manifest文件屬性
unity打包win包將高權(quán)限改為中權(quán)限的一個(gè)處理方案
tips1: 如果level = anInvoker 但打出來的包仍然有小盾牌,或者包移動(dòng)到其他電腦上顯示出了小盾牌,那么需要查一下打包后的腳本操作。比如可以通過這種方法修改,進(jìn)行權(quán)限簽名操作。(也就是說可以通過外部命令行的形式進(jìn)行修改)
tips2: 為什么我的電腦圖標(biāo)帶有小盾牌,卻沒有彈出讓我獲取管理員權(quán)限的提示呢?
跟自己的電腦安全設(shè)置有關(guān)
總結(jié)
以上是生活随笔為你收集整理的unity打包的windows程序运行权限问题整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bytestobstr php,一段as
- 下一篇: java信息管理系统总结_java实现科