Вопрос № 57486: Здравствуйте. Может кто нибудь написать текст программы, которая удаляет все файлы в директории ? Не могу открыть найденный файл, в этом вся проблема.( Под Дос )...Вопрос № 57489: Здравствуйте, уважаемые эксперты! Пожалуйста подскажите как написать драйвер по WinXP который мог, ну, скажем по нажатию Ctrl-K выводить некое подобие MessageBox с фиксированным текстом. На статьи по написанию драйверов, в которых нет нихрина кода,
а...Вопрос № 57490: добрый день!
скажите пожалуйста, зачем в GDT начальный дескриптор обязательно должен быть нулевым? ну вот кому это такая блажь в голову пришла?...Вопрос № 57549: Здравствуйте ! Существует ли в ассемблере функция расширения имени файла до полного? А то я ищу файлы в папке c:games, а когда пытаюсь открыть, выскакивает ошибка, о том что такого файла нет
(потому что компилятор ищет его в текущем каталоге)....
Вопрос № 57.486
Здравствуйте. Может кто нибудь написать текст программы, которая удаляет все файлы в директории ? Не могу открыть найденный файл, в этом вся проблема.( Под Дос )
Отправлен: 02.10.2006, 22:27
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Jekyll
Здравствуйте, Whiteman!
сабж очень прост. делаешь цикл - findfirstfile - findnextfile - findclose. сравниваешь аттрибуты найденного, если это файл - делаешь DeleteFile и все.
Ответ отправил: Jekyll (статус: 2-ой класс)
Ответ отправлен: 03.10.2006, 02:13
Next:
lea si,mask_file
lea di,filename
mov cx,5
cld
rep movsb ; скопировали путь из маски
lea si,dataarea+1eh ;копируем имя файла из найденого в буффере
filenameloop:
lodsb
stosb
or al,al
jnz filenameloop
lea dx,filename
mov AH, 41h
int 21h ;удаляем файл
lea dx,dataarea
mov AH, 4Fh
int 21h
jnc Next
No_found:
int 20h
mask_file db 'c:1*.*',0
dataarea: db 30h dup (0)
filename: db 255 dup (0)
CSEG ends
end begin
Ответ отправил: Стас (статус: Специалист)
Ответ отправлен: 03.10.2006, 21:23 Оценка за ответ: 5
Вопрос № 57.489
Здравствуйте, уважаемые эксперты! Пожалуйста подскажите как написать драйвер по WinXP который мог, ну, скажем по нажатию Ctrl-K выводить некое подобие MessageBox с фиксированным текстом. На статьи по написанию драйверов, в которых нет нихрина кода, а только пояснения просьба не отсылать... Заранее благодарю
Отправлен: 02.10.2006, 22:39
Вопрос задал: Pinkbyte (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Jekyll
Здравствуйте, Pinkbyte!
отсылаю к wasm.ru. куча кода, куча пояснений, есть грамотные люди, которые на форуме разведут по понятиям :))
Ответ отправил: Jekyll (статус: 2-ой класс)
Ответ отправлен: 03.10.2006, 02:15 Оценка за ответ: 1 Комментарий оценки: Был я на вашем wasm.ru. Кроме кода на Дельфях для Ring-0 ничо полезного не почерпнул,да и тот не пригодился, а драйвер там написан ваабще непонятный!
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Pinkbyte!
Я так понимаю, DDK отсутствует...
Если бы был, то такого вопроса не возникло бы, там есть примеры.
А вот без DDK, драйвер, ну никак, не слепишь...
Так что, первым делом ищи WinDDK, сойдет и NTDDK.
Проштудируй, ну а потом уж, как правильно сказали, с конкретными вопросами на WASM.RU
Написание драйвера под ХР - весьма нетривиальная задача. Так что придется изрядно "попотеть".
Удачи!
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 03.10.2006, 10:54 Оценка за ответ: 4 Комментарий оценки: Встречный вопрос - где найти DDK и скока это чудо весит?
Вопрос № 57.490
добрый день!
скажите пожалуйста, зачем в GDT начальный дескриптор обязательно должен быть нулевым? ну вот кому это такая блажь в голову пришла?
Отправлен: 02.10.2006, 22:41
Вопрос задал: Вiктор (статус: 6-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Вiктор!
Почему сразу блажь?
Это сделано для возможности использования нулевого значения, как индикатора незагруженности сегментного регистра каким-либо селектором.
А соответствующее поле селектора используется, как индекс в таблицах GDT и LDT. Делай вывод...
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 03.10.2006, 10:30 Оценка за ответ: 5 Комментарий оценки: спасибо, я это как-то упустил из виду.
Вопрос № 57.549
Здравствуйте ! Существует ли в ассемблере функция расширения имени файла до полного? А то я ищу файлы в папке c:games, а когда пытаюсь открыть, выскакивает ошибка, о том что такого файла нет
(потому что компилятор ищет его в текущем каталоге).
Отправлен: 03.10.2006, 12:48
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Jekyll
Здравствуйте, Whiteman!
В ассемблере не существуют функций вообще :) это машинный язык.
Берите API под Windows и прерывания по ДОС.
Ответ отправил: Jekyll (статус: 2-ой класс)
Ответ отправлен: 03.10.2006, 12:56
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Whiteman!
А кто мешает самому сформировать полное имя, дописав к "c:games" найденное имя?
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 03.10.2006, 14:31
Отвечает: Pinkbyte
Здравствуйте, Whiteman!
Если вы не можете дописать путь до начального попробуйте тогда ф-wb. SetCurrentDirectory - она установит указанную вами папку как текущую и уже в ней будет пытаться открыть файл впоследствии...
--------- Нейтральность - высшее достижение сознания
Ответ отправил: Pinkbyte (статус: 1-ый класс)
Ответ отправлен: 03.10.2006, 17:40