我一直在使用C#2008修改註冊表並在C:下寫入臨時文件的Excel插件。該插件工作正常,直到我升級到Windows 7,當我做違反權限例外彈出一直。我已經趕上了他們,沒有任何事情被捕獲。我還閱讀了更改清單文件的內容,但它沒有.exe文件,我可以在其上執行mt.exe:如何在Windows 7中允許註冊表修改和驅動器C:修改?
有關如何允許這兩個操作的任何想法?
我一直在使用C#2008修改註冊表並在C:下寫入臨時文件的Excel插件。該插件工作正常,直到我升級到Windows 7,當我做違反權限例外彈出一直。我已經趕上了他們,沒有任何事情被捕獲。我還閱讀了更改清單文件的內容,但它沒有.exe文件,我可以在其上執行mt.exe:如何在Windows 7中允許註冊表修改和驅動器C:修改?
有關如何允許這兩個操作的任何想法?
可以以管理員身份運行得到充分的權限來修改註冊表
然後,您可以通過使用
System.IO.Path.GetTempPath()
當我調試它時如何?我如何在管理員模式下進行調試? –
在Windows 7中,http://weblogs.asp.net/soever/archive/2009/10/07/visual-studio-alway-run-as-administrator.aspx –
寫在Temp文件夾或用戶文件夾中的臨時文件,因爲你正在運行在Excel內部,期望Excel以管理員權限運行是不現實的。因此,您需要將需要管理員權限的操作分離爲單獨的可執行文件,將requireAdministrator
清單應用於可執行文件,然後從插件調用可執行文件。
沒有很好的理由在用戶的臨時文件夾之外創建臨時文件(*是可訪問的)。把東西直接放在'C:\'或任何系統分區上,都是非常難看的。除此之外,我認爲人們不會接受「需要管理員權限」提示,因爲這是由excel插件引起的。 – ThiefMaster
@ ThiefMaster:一個令人討厭的問題,他可能沒有遇到,因爲他如何使用C#,但可能有關,是['tmpfile'](http://msdn.microsoft.com/en-us/library/ x8x7sakw.aspx)嘗試在根驅動器中創建臨時文件(通常爲'C:')。 – user7116