
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.30] |
![]() |
|
Страницы: (9) « Первая ... 3 4 [5] 6 7 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#61
,
|
|
|
Цитата Du-Xa @ 21.01.04, 17:16 xZero: Ну и как? Попробовал? Нет! Сессия, блин, в разгаре!!! |
Сообщ.
#62
,
|
|
|
Мужики, чё вы парню все мОзги запарили?
![]() Делай так! Пишешь малюсенькую программулину, которая просто напросто открывает все твои нужные файлы и постоянно держит их открытыми. Поставь её в автозагрузку или в реестр в Run. При запуске системы твоя прога откроет все твои ценнейшие файлы, и при попытке удалить какой-либо из них, сама система скажет: "Не тронь!". ![]() Проблемы-то нет фактически. ![]() |
![]() |
Сообщ.
#63
,
|
|
Да. Вот только что? У меня работает
|
Сообщ.
#64
,
|
|
|
Цитата DrUnkard @ 23.01.04, 01:29 Мужики, чё вы парню все мОзги запарили? ![]() Делай так! Пишешь малюсенькую программулину, которая просто напросто открывает все твои нужные файлы и постоянно держит их открытыми. Поставь её в автозагрузку или в реестр в Run. При запуске системы твоя прога откроет все твои ценнейшие файлы, и при попытке удалить какой-либо из них, сама система скажет: "Не тронь!". ![]() Проблемы-то нет фактически. ![]() Во-первых: дело в том, что мы его предупреждали о выборе метода, но он все же пошел этим! Во-вторых: а что, если ему надо сберечь очень много файлов, то этот способ несколько извратен! (опять, таки, имхо). В-3: конечно, можно прдумать что-ниюудь и по проще!!! Но кому как .... =( |
![]() |
Сообщ.
#65
,
|
|
А если ему надо файлы защитить от удаления, но при этом можно было бы их послушать (мп3-шки) или посмотреть (ави-шки) в плеерах?
|
Сообщ.
#66
,
|
|
|
Одно другому не мешает.
![]() Система запрещает только изменение открытого другим процессом файла и его удаление. А читать ты его можешь хоть сотней разных приложений. ![]() |
![]() |
Сообщ.
#67
,
|
|
Вы отвлекаеетесь от темы. Раз уже есть код, может всётаки его доделать
|
Сообщ.
#68
,
|
|
|
Цитата DrUnkard @ 23.01.04, 21:26 Одно другому не мешает. ![]() Система запрещает только изменение открытого другим процессом файла и его удаление. А читать ты его можешь хоть сотней разных приложений. ![]() Мне надо защитить свои 17Gb музыки. Что мог уже на болванки по скидал, денег больше не осталось. А друзья прийдут через 3 дня. Поэтому проблема для меня глобальна. А в общем на моем винчестере кроме музыки ничего важного уже не осталось. Просто обидно терять, то, что накапливалось годами. |
Сообщ.
#69
,
|
|
|
Мда, a в формате МР3 - это примерно 2000 песен. Твои друзья не вандалы, случаем? Я бы перед их приходом, просто изъял шнур питания компа, запрятал его на балконе под снег - и спал бы спокойно.
![]() |
Сообщ.
#70
,
|
|
|
Пример с DeleteFile() работает, проверенно на примере программкой:
AssignFile(f,'file.txt'); ReWrite(f); CloseFile(f); //Создадим файл DeleteFile('file.txt'); //Удалим файл Но в Виндовс (Win98 и WinXP) это не проходит => IMHO, файлы в Винде удаляются по SHFileOperationA(W?) из SHELL32.DLL... Отсюда вопрос: А как паставить хук на нее? Добавлено в : Пример на DeleteFile() работает, бесспорно. Проверено программкой: AssignFile(f,'file.txt'); ReWrite(f); CloseFile(f); // Создадим файл DeleteFile('file.txt'); //Удалим (попытаемся) файл Но в Виндовс (Win98 и WinXP) это не проходит... + Появление характерного окошка (с задержкой на подготовку списка): +-----------------------------+ | Удаление: | | | | [..ProgressBar....][Отмена] | +-----------------------------+ Наводит на мысль об использовании SHFileOperationA() (SHFileOperationW()?) из SHELL32.DLL. Но только как на нее хук повесить грамотно... Кто подскажет? |
![]() |
Сообщ.
#71
,
|
|
я пробовал таким же способ как и на DeleteFileA - ничего не выходит
|
Сообщ.
#72
,
|
|
|
Так же не получится - у нее параметры совсем другие!
![]() |
Сообщ.
#73
,
|
|
|
Неужели никто ничего умного не добавит? :)
|
![]() |
|
|
У меня даже с этим Rewrite(f); ... DeleteFile("name.txt") все равно ничего не идет. Удаляю что хочу.
Думал в Exe не подгружается Dll попробовал загрузить статично. Результат тот же. Одно значит - либо я не то списал(Ctrl+C - Shift+Ins), либо Delphi у меня плохие Dll создает(проверял, отличные dll!). Но описанный выше пример с DeleteFileA ничего не сбережет на моем компьютере! Попробовал даже Sleep(3000); поставить между Close(f) и Deletefile("name.txt") - Файл создается и отлично удаляется! Почему же все-таки у меня не идет, а у всех идет этот пример ![]() ![]() ![]() Если бы он работал, то этот алгоритм я думаю на многое можно было бы применить!!! Не знаю что добавить. Кто может обьясните, пожалуйста, почему у меня на MsgBox хук ставится а на DeleteFileA нет, хотя не у кого больше проблем нет с этой функцией, кстати и на SHFileOperationA() у меня хук тоже не работает. Гости прийдут сегодня и все!!! |
Сообщ.
#75
,
|
|
|
Слушай, а ты точно ничего не перепутал? У меня все отлично компилится и работает!
Вот исходники и компилированный проект. В сообщении "Не закрывать, пока идет работа!" кнопку Ок не давить, пока удаляешь файлы (т.е. не закрывать). Да чего я объясняю, все итак понятно. Кстати, а как ты хук на SHFileOperationA ставишь? Там же целая структура есть.. Кроме того, замечено, что DLL'ка как-то не сразу выгружается: Файл (DLL) не удалялась пару минут... 2All: Ну кто же знает, как поставить хук на SHFileOperationA? Добавлено в : Кстати, компилино в Delphi 7... Прикреплённый файл ![]() |