2011-11-22 52 views
0

我一直在使用C#2008修改註冊表並在C:下寫入臨時文件的Excel插件。該插件工作正常,直到我升級到Windows 7,當我做違反權限例外彈出一直。我已經趕上了他們,沒有任何事情被捕獲。我還閱讀了更改清單文件的內容,但它沒有.exe文件,我可以在其上執行mt.exe:如何在Windows 7中允許註冊表修改和驅動器C:修改?

有關如何允許這兩個操作的任何想法?

+6

沒有很好的理由在用戶的臨時文件夾之外創建臨時文件(*是可訪問的)。把東西直接放在'C:\'或任何系統分區上,都是非常難看的。除此之外,我認爲人們不會接受「需要管理員權限」提示,因爲這是由excel插件引起的。 – ThiefMaster

+0

@ ThiefMaster:一個令人討厭的問題,他可能沒有遇到,因爲他如何使用C#,但可能有關,是['tmpfile'](http://msdn.microsoft.com/en-us/library/ x8x7sakw.aspx)嘗試在根驅動器中創建臨時文件(通常爲'C:')。 – user7116

回答

1

可以以管理員身份運行得到充分的權限來修改註冊表

然後,您可以通過使用

System.IO.Path.GetTempPath() 
+0

當我調試它時如何?我如何在管理員模式下進行調試? –

+0

在Windows 7中,http://weblogs.asp.net/soever/archive/2009/10/07/visual-studio-alway-run-as-administrator.aspx –

0

寫在Temp文件夾或用戶文件夾中的臨時文件,因爲你正在運行在Excel內部,期望Excel以管理員權限運行是不現實的。因此,您需要將需要管理員權限的操作分離爲單獨的可執行文件,將requireAdministrator清單應用於可執行文件,然後從插件調用可執行文件。