2014-02-16 11 views
0

Im пытается получить право собственности на uxtheme.dll в моих окон 8.1 system32 папка программно (C++). Я читал, пробовал и гугл в течение нескольких часов, но не мог найти решение. Каждый раз, когда свойство uxtheme установлено, оно не отображается на вкладке свойств. Собственность и полные права всегда наследуются доверенным установщиком., взяв на себя ответственность за uxtheme.dll в C++ и выиграть 8.1

Я пробовал его с system("takeown /f C:\Windows\system32\uxtheme.dll"), который печатает успех, но, к сожалению, не работает.

То же самое относится к функции TakeOwnership() из msdn. [http://msdn.microsoft.com/en-us/library/windows/desktop/aa379620%28v=vs.85%29.aspx]

Что мне нужно сделать, чтобы наследовать право собственности на местное admin, так что я могу отключить эту DLL? Защита ресурсов имеет к этому какое-либо отношение?

Как только право собственности будет установлено, я смогу заменить dll на MoveFileEx()?

большое спасибо, Lody

+0

Когда вы используете функцию 'system', он создает * новый * процесс для команды, поэтому он не будет работать. –

+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

Ok я решить мою проблему.

Примите участие во всех каталогах, в которых находится файл. Помните: если вы используете 64-битную систему, исправления в системные \ файлы будут перенаправлены в папку SysWoW64 \.