2014-02-16 35 views
0

我試圖以編程方式取得windows 8.1 system32文件夾中uxtheme.dll的所有權(C++)。我讀了,嘗試了幾個小時的搜索,但無法找到任何解決方案。每次設置uxtheme所有權時,它都不會顯示在屬性選項卡中。所有權和完整權限始終由Trusted Installer繼承。在C++中取得uxtheme.dll的所有權並贏得8.1

我試過system("takeown /f C:\Windows\system32\uxtheme.dll"),它打印出成功,但可悲的是不工作。

同樣可以從msdn的功能TakeOwnership()。 [http://msdn.microsoft.com/en-us/library/windows/desktop/aa379620%28v=vs.85%29.aspx]

我需要做什麼,繼承本地所有權管理員,所以我可以改變這個DLL?資源保護與它有什麼關係?

一旦設置了所有權,我將能夠用MoveFileEx()替換dll嗎?

非常感謝你, lody

+0

當你使用'system'函數時,它會爲該命令創建一個* new *進程,這就是爲什麼它不起作用。 –

+0

至於'TakeOwnership'函數,與任何其他系統函數一樣,您需要檢查*爲什麼*失敗。這是通過['GetLastError'](http://msdn.microsoft.com/en-us/library/windows/desktop/ms679360%28v=vs.85%29.aspx)函數完成的(注意:只有在調用if一個函數實際上失敗了)。請參閱[這裏的錯誤代碼列表](http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381%28v=vs.85%29.aspx)。 –

+0

謝謝你的快速啓動!那麼我應該使用WinExec()還是ShellEexecute()?正如我所說,它不會失敗。它退出消息「DACL改變成功」。 – lody

回答

0

好吧,我解決我的問題。

取得文件所在的所有導演的所有權。 請注意:如果您正在運行64位,則系統\文件的路徑將被重定向到SysWoW64 \文件夾。