|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
07.06.2008, 22:16 | #1 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Скопировать занятый системный файл
Неполучается скопировать файлы SAM, System и т.д.
Использую CreateFile, с обычным доступом к файлу. Можно ли улучшить код, например покластерное чтение файлов. Если неудастся исправить то что есть, то как переделать программу на покластерное чтение файла, по указанному полному пути? |
07.06.2008, 22:58 | #2 |
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
Хм... Я даже знаю почему не возможно скопировать. Система защищает эти файлы, открыв их на чтение-запись, лично я копировал (SAM и SYSTEM) с помощью WinHex 12.x (любой справится) только работать надо от админа.
Вы правы, WinHex считывает не файл, а сектора, где записан этот файл. Помните если WinHex не активизирован, он не даст скопировать более 200 кб инфы, а (system кажется) достигает 8 мб (у меня) Интересно то, что именно "Sam" - поэтому далее надо использовать LCP 5 - хорошая утилита.
Всё гениальное - просто!
|
08.06.2008, 14:24 | #3 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
А покластерно, имея путь к файлу, можно хоть как-то прочитать файл при помощи CreateFile и записать его копию в другое место? Как тогда дефрагментаторы под админом и не под админом могут двигать файлы.
|
08.06.2008, 23:10 | #4 |
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
CreateFile - на сколько мне известно, работает на высоком (пользовательском) уровне. А чтобы скопировать занятый файл, надо на низком, - в HEX-режиме. Т.е. сначало создать дамп диска и передать инфу в HEX-редактор, ну... WinHex это лучше придумали, там не надо шариться в HEX-коде чтоб скопировать данные, но если узнать по каким адресам расположен нужный файл, то можно смело копировать.
Так вот, низкоуровневое программирование - это assembler, - в Вашем случае (мне так кажется) не обойтись, так как он тоже работает с HEX или 16-ричными значениями и руководствуется инструкциями процессора. Вывод из этого, если дать команду процессору на копирование определённого сектора, то копирование пройдёт легко. (т.к. привилегии выше чем у процессора получить нельзя.) А по поводу дефрагментации, если замечали, там стартуют 2 программы, возможно тоже самое они и делают. (первая отдаёт команду второй на перемещение, а вторая написана на assembler-e и заставляет процессор перенести с одного сектора на другой ту или иную информацию)
Всё гениальное - просто!
|
09.06.2008, 08:44 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Копии этих файлов можно найти в C:\WINDOWS\repair\
Если винда обновляет их то тебе повезло.
I'm learning to live...
|
09.06.2008, 09:48 | #6 |
Участник клуба
Регистрация: 30.04.2007
Сообщений: 1,307
|
К сожелению это происходит редко.
Всё гениальное - просто!
|
31.12.2010, 14:01 | #7 |
Пользователь
Регистрация: 29.03.2009
Сообщений: 91
|
в принципе и mpr справится, но только из под админа
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Открыть занятый файл. | Kukkk | Общие вопросы Delphi | 5 | 24.03.2008 18:49 |
Каким образом скопировать файл? | Kashp | Общие вопросы Delphi | 14 | 07.08.2007 11:44 |
как скопировать файл | Scorpeon | Общие вопросы Delphi | 1 | 19.04.2007 13:45 |
как скопировать? | zetrix | Microsoft Office Excel | 0 | 30.10.2006 18:52 |