亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

Vista開發新特性之你的文件存在哪?
2007-08-20   網絡

當你的程序添加了UAC manifest的時候,那么同時也就喪失了Vista的這項兼容性保護;這個時候你必須在程序中使用正確的路徑,把配置文件,日志文件等等都寫入到用戶自己的AppData中去。我們可以從下面的記事本演示中看到,由于記事本已經對Vista進行了升級,那么訪問\program files\目錄將會返回“沒有權限”的錯誤信息: 


Vista開發新特性之你的文件存在哪?
“沒有權限”

  如果我們比較一下EditPlus和記事本的exe文件,我們就可以看到區別了:  

Vista開發新特性之你的文件存在哪?
比較一下EditPlus和記事本的exe文件

  我們會發現記事本exe文件的manifest中多了以下代碼:

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>

  以上代碼告訴Vista上的UAC,記事本現在使用asInvoker的權限,也就是和調用者同樣的權限;我在專門介紹UAC的文章中提到過,Vista上的用戶默認是標準用戶,沒有訪問\program files\的權限,這就是為什么記事本會保存失敗。

  多用戶應用環境

  從Windows開始支持多用戶開始,其實就已經有了用戶目錄的概念,但是我們一直都沒有在軟件開發中對這個問題作足夠多的重視,造成了很多的應用程序都把一些用戶自己的配置內容寫入到了\program files\application name目錄中。這個問題有很多人不理解,到底那些內容是應該保存在\program files\application name目錄中,那些應該保存到\users\username\appdata目錄中。其實我們可以簡單的這樣區分:

  \program files\application name:保存安裝過程中固化的應用程序配置,這些配置不應被個別用戶更改;比如:固定的網關,服務器地址,應用程序的動態鏈接庫列表,程序版本信息等。

  \users\username\appdata:保存可以由用戶修改的內容,并且這個配置文件應該是在應用程序第一次運行的時候由程序動態創建的。比如:窗口的位置,大小,上次登錄的時間,用戶名,cookie等等。

  為什么不能由安裝程序創建這個文件呢?主要是為了支持無值守的部署情況,這種情況下安裝程序無從知曉個別用戶的具體情況;所以無法正確創建這個文件。

  其實,創建這個文件最簡單的方式就是使用.net framework 中的Appl???$?icationBlock的Configuration模塊,因為它會自動的處理文件的讀寫和創建;對應用程序是完全透明的。

熱詞搜索:

上一篇:如何修復受損的硬盤主引導記錄和引導區
下一篇:Vista開發新特性之你的文件存在哪?3

分享到: 收藏