Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
"Ассемблер? Это просто! Учимся программировать (FAQ)"
Выпуск № 230
от 29.03.2002, 02:05
Администратор: Калашников Олег
Сайт Администратора: Программирование на Ассемблере
Старейшины рассылки |
1. Broken Sword - ответов: 414. 2. Painbringer (нечто наподобие домашней страницы) - ответов: 378. 3. Sensey - ответов: 340. 4. DiGiT - ответов: 294. 5. Dron (Операционная система с нуля!) - ответов: 291. |
Новости |
Вопрос № 403 |
Please! Обьясните, как можно в делфи получить строчку из эксплорера (когда наводишь на ссылку, в строке состояния отображается адрес), есть ли какая-то готовая функция, а если нет то как это можно обойти.
И ещё можно ли эту строчку, автоматически помещать в буфер обмена, например если там есть какое-то слово ключевое. Заранее благодарен /ALastorZ
Отправитель: ALastorZ
Вопрос отправлен: 24.03.2002, 03:33
Подгруппа: Оптимизация программ
_______________
Отвечает masquer
Здравствуйте, ALastorZ!
Можно попробовать установить хук на мышку, потом парсить то, что находится в активном контроле. Можно перехватить функцию эксплорера, которая отвечает за это, но ее еще определить нужно. Вообще все эти методики для начинающего достаточно сложны. У Рихтера описывается второй способ (перехват апи-функций).
Отправлено: 24.03.2002, 23:09
Отправитель: masquer (регистрация: 16/01/2002, ответов на счету: 64)
Украина, Николаев
_______________
Отвечает Артём Шегеда
Добрый день, ALastorZ!
Зайди на сайт http://filebye-mail.nsys.by/article.php?story=20011011212710560. Там есть ссылка на маленькую утилитку. Если ты серьёзно интересуешься этим вопросом, посмотри её. Это просто java-script, но вполне понятный.
Отправлено: 25.03.2002, 11:46
Отправитель: Артём Шегеда (регистрация: 28/12/2001, ответов на счету: 90)
URL: http://www.shegeda.chat.ru/ - Пристанище неодинокого программиста
x-USSR, Харьков
Вопрос № 404 |
Не подскажите подробный алгоритм резидентирования прог и подвешивания их на прерывания (функциии)в Windows, аналогичный
как в Dos.
Отправитель: Speedy Gonsalez (kiselevo@mtu-net.ru)
Вопрос отправлен: 24.03.2002, 06:57
Подгруппа: Общие вопросы по программированию на Ассемблере под Win32
_______________
Отвечает LAO
Здравствуйте, Speedy Gonsalez!
Резиндентных программ для Windows не существует. Поскольку Windows мультизадачная система, т.е. в ней можно запустить сразу несколько приложений, то любое приложение, запущенно в Windows условно можно считать резидентной.
Прерывания в Windows тоже не перехватывают. Если Вам необходимо отслеживать и как-то реагировать на какие-то события в Windows, то следует либо написать собственный драйвер под Windows, используя DDK (Device Development Kit), либо отслеживая процессы Windows (см. книги типа "Windows для профессионалов"). Возможны другие решения задачи.
Отправлено: 24.03.2002, 07:16
Отправитель: LAO (регистрация: 05/03/2002, ответов на счету: 70)
Россия, Москва
_______________
Отвечает Blackeye
Доброе время суток, Speedy Gonsalez!
Насчет отсавления программы резидентной как в ДОС int 27h (если не ошибаюсь), я не знаю. Но можно пойти другим путем просто остваить ее запущенной, предварительно скрыв форму а также отображения в панели задач, переключения на нее с помощью Alt-TAB и также из списка задач в Ctrl-alt-del. Мне кажеться что это самый рациональный способ, хотя я могу и ошибаться.
Отправлено: 24.03.2002, 12:22
Отправитель: Blackeye (регистрация: 15/02/2002, ответов на счету: 55)
URL: http://www.soft4master.h1.ru - Delphi, my programms...
Украина, Запорожье
_______________
Отвечает Mr. BuS
Приветствую Вас, Speedy Gonsalez!
Не существует такого алгоритма!!! Суть резиденции в том, что ты можешь запускать другие проги, не закрывая свою. Но ведь Windows и так позволяет это делать. Это называется мультизадачность. А вешать проги на прерывания вообще невозможно - прерывания могут обрабатываться ТОЛЬКО драйверами. Если хочешь обрабатывать прерывания - пиши драйвер какого-нибудь несуществующего (виртуального) устройства и пропиши его в реестре, чтобы он загружался при каждой загрузке Windows.
Отправлено: 24.03.2002, 23:25
Отправитель: Mr. BuS (регистрация: 19/03/2002, ответов на счету: 18)
Syros
РФ, Татарстан, Казань
_______________
Отвечает DiGiT
Здравствуйте, Speedy Gonsalez!
В винде резидентов нет. Есть трояны. Как это не прискорбно.
А там с хуками разбирайся. В частности win32.hlp. Там много полезного.
Отправлено: 25.03.2002, 04:28
Отправитель: DiGiT (регистрация: 28/12/2001, ответов на счету: 294)
ICQ:133534725
Russia(),Student
_______________
Отвечает vitya
Доброе время суток, Speedy Gonsalez!
В windows, это хук.Для того, что бы это сделать
Вам придется сделать следующие вещи.
1. Написать функцию для обработки события. Как она выглядит зависит от message, который вы собираетсь обрабатывать. Точнее, формат одинаковый, разные значения у параметров. Смотрите в хелпах.
2. Закинуть эту функцию в DLL.
3. Написать клиент, который подгрузит dll с помощью LoadLibrary, найдет вашу функцию с помощью GetProcAddress()
4. Вызовер функцию HookWindowsEx(), и подсадит ваш обработчик.
5. В конце работы надо вызвать UnhookWindowsEx().
Вот вроде и все. Для примера, правда на C++, смотри на www.sources.ru, там есть хуки.
Отправлено: 25.03.2002, 13:23
Отправитель: vitya (регистрация: 03/01/2002, ответов на счету: 53)
HPLA
103935193
Armenia, Yerevan
Вопрос № 405 |
Привет Всем!
вопрос такой: есть переменная, есть ее значение, есть сообщение, которое используется для вывода на печать. Как сделать, что бы после сообщения выводилось значение переменной? Кусок кода в приложении, подправте пожалуйста, что бы после слов "значение переменной равно" вываливалось содержимое переменной.Можно конечно прицелиться и метнуть в видеобуфер в нужное место, но мне кажется это гимор. Заранее благодарен
Приложение:
Отправитель: Sergey
Вопрос отправлен: 24.03.2002, 08:20
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Топор
Доброе время суток, Sergey!
Я так понимаю, что переменная уже найдена и переведена в символьную ASCII-форму. Тогда нужно точно знать, сколько знаков в числе. Если, например, два, то смотри пример.
Приложение:
Отправлено: 24.03.2002, 08:28
Отправитель: Топор (регистрация: 15/03/2002, ответов на счету: 42)
Радио "Эхо Москвы в Самаре"
Адрес: 443011, Самара, ул. Советской Армии, 217
Тел.: (8462)160302, 162918
URL: http://listen.to/btemple - Хорошая Русская Металлическая команда
Россия, Самара
_______________
Отвечает LAO
Доброе время суток, Sergey!
Даю код для вывода в значения переменной десятичной форме (см. приложение). Если интересует 16-ричная - посмотри старые рассылки, там где-то я уже давал пример. Алгоритм простой - делишь число на 10, скидываешь остаток (dl) в строку до тех пор пока делимое не равно нулю. Выводишь получившуюся строку на экран.
Приложение:
Отправлено: 25.03.2002, 12:39
Отправитель: LAO (регистрация: 05/03/2002, ответов на счету: 70)
Россия, Москва
_______________
Отвечает Beeblebrox
Приветствую Вас, Sergey!
Нужно перевести число в ax в текстовый вид (шестнадцатиричный либо десятичный). Пару-тройку-пятерку выпусков назад я приводил пример, поищи внимательно.
Отправлено: 25.03.2002, 13:27
Отправитель: Beeblebrox (регистрация: 13/03/2002, ответов на счету: 34)
URL: http://beeblbrx.narod.ru - Beeblebrox / TMA HomePage
ICQ #75393045
Ukraine, Kharkov
Вопрос № 318 |
Здравствуйте уважаемые Эксперты. Вопрос такой:
- как определить начальный кластер файла.
Принимаются любые варианты. Заранее спасибо.
Отправитель: Odin (vikingodin@yandex.ru)
Вопрос отправлен: 19.03.2002, 15:57
Подгруппа: Общие вопросы по программированию на Ассемблере под DOS
_______________
Отвечает Ayl
Добрый день, Odin!
Вариантов несколько.
Во-первых, можно "тупо" пройтись по дереву каталогов, найти запись о файле и прочитать номер первого кластера. Это единственный документированный способ получения первого кластера.
Во-вторых, можно использовать информацию из блока управления файлом. В этом блоке имеется такая информация как последний прочитанный кластер файла. Соответственно, нужно открыть файл и считывать из него данные порциями, равными размеру кластера (для получения всех кластеров, распределенных файлу). Для получения первого кластера достаточно прочитать 1 первый байт. Проблема в этом методе состоит в том, что адрес блока управления файлами нельзя получить стандартными способами, а нужно воспользоваться недокументированной функцией 52h прерывания 21h.
Других способов получения номера первого кластера я не встречал.
Отправлено: 19.03.2002, 17:13
Отправитель: Ayl (регистрация: 28/12/2001, ответов на счету: 187)
Россия, Санкт-Петербург
_______________
Отвечает GL
Доброе время суток, Odin!
Насколько я помню, этот кластер указывается в области каталога диска. Запусти diskedit и посмотри там.
Отправлено: 19.03.2002, 17:56
Отправитель: GL (регистрация: 02/03/2002, ответов на счету: 42)
Амурская обл., Благовещенск
_______________
Отвечает baldr
Здравствуйте, Odin!
Привет великому Odin'у от сына его baldr'а! :))
А вообще, нужно это делать через FAT. там не только начальный, там и все остальные его кластеры.
Точнее сказать затрудняюсь, но где-то была инфа по FAT32...
Отправлено: 20.03.2002, 00:04
Отправитель: baldr (регистрация: 28/12/2001, ответов на счету: 135)
URL: http://www.dospage.far.ru - Сайт об ОС DOS. Всем, кто любит эту ОС!
Россия, г. Семенов, Нижегородская обл.
_______________
Отвечает Dron
Добрый день, Odin!
Нет ничего проще.. :)
берешь запись в директории, там храниться номер первого кластера. по смещению 1ah - 2 байта.
Отправлено: 20.03.2002, 11:22
Отправитель: Dron (регистрация: 28/12/2001, ответов на счету: 291)
Информзащита
Адрес: Москва
URL: http://asmdev.narod.ru/asmos.html - Операционная система с нуля!
2144510
Россия, Москва
_______________
Отвечает LAO
Приветствую Вас, Odin!
На диске сразу после таблиц FAT располагается корневой каталог. На каждый файл в нем выделяется сектор из 32 байт. В байтах 1ah и 1bh размещается номер начального кластера файла (для файлов) или другого каталога (для каталогов). Более подробно посмотри в TechHelp'е или какой либо соответствующей литературе ("внутренняя структура диска")
Отправлено: 20.03.2002, 15:17
Отправитель: LAO (регистрация: 05/03/2002, ответов на счету: 70)
Россия, Москва
_______________
Отвечает Mr. BuS
Здравствуйте, Odin!
Надо лезть в каталог. Это тоже такой файл. У каталога есть определенная структура - для каждого файла там указано имя, номер начального кластера и другая инфа. Для того, чтобы обратиться к каталогу не как к каталогу, а как к файлу, чтобы читать в нем данные, нужно опять же знать его кластеры. И т. д. Алгоритм такой - ищешь в корневом каталоге (он расположен в фиксированном месте) подкаталог первого уровня, читаешь его, т. е. находишь в нем имя подкаталога второго уровня, потом читаешь подкаталог второго уровня и т. д., до тех пор пока не дойдешь до нужного файла.
Отправлено: 22.03.2002, 12:17
Отправитель: Mr. BuS (регистрация: 19/03/2002, ответов на счету: 18)
Syros
РФ, Татарстан, Казань
Вопрос № 319 |
Доброго всем времени суток.
У меня такой вопрос: имеется 2 компа в локалке, возможно ли обьеденить их вычислительные мощности скажем для работы с 3D графикой или например для взлома паролей перебором ?
Отправитель: Yevgeniy
Вопрос отправлен: 19.03.2002, 17:19
Подгруппа: Пользовательская работа с Windows
_______________
Отвечает StiGGeR
Добрый день, Yevgeniy!
вряд ли такое возможно, хотя бы потому что скорость передачи жанных между компами очень низкая.
Отправлено: 19.03.2002, 17:57
Отправитель: StiGGeR (регистрация: 02/01/2002, ответов на счету: 31)
ICQ: 125704802, FIDO: 2:5011/133
Россия, Уфа
_______________
Отвечает freeseacher
Доброе время суток, Yevgeniy!
при работе с 3d графикой IMHO нет, а вот при переборе это как реализуешь... дампить например!
Отправлено: 19.03.2002, 20:34
Отправитель: freeseacher (регистрация: 03/02/2002, ответов на счету: 51)
Тел.: 8(3832)366362
Новосибирск
_______________
Отвечает Frank
Добрый день, Yevgeniy!
Это должна поддерживать искомая программа. 3D MAX например может рендерить используя ресурсы локальной сети. Все зависит от программы. А универсальных прог по-пойму нету (поправьте и дайте ссылку если я не прав).
Отправлено: 19.03.2002, 21:38
Отправитель: Frank (регистрация: 14/01/2002, ответов на счету: 130)
КПИ,ФЭЛ,ДА-02
ICQ: 100341415 E-mail: Frank_U@mail.ru
Украина, Киев
_______________
Отвечает mr.hedgehog
Доброе время суток, Yevgeniy!
Имхо нет, поскольку процесс один. это раз.
Два: скорость передачи данных м/д компами не позволит..
Отправлено: 20.03.2002, 06:43
Отправитель: mr.hedgehog (регистрация: 05/02/2002, ответов на счету: 28)
Russia, Saint-Petersburg
_______________
Отвечает DivX
Здравствуйте, Yevgeniy!
Только если сама программа поддерживает это. И только для действительно многозадачных систем типа Windows NT, а для большей масштабируемости лучше ОСы класса UNIX. В том же 3D Max уже давно реализованна функция "сетевого" рендеринга так что если есть желание и ОСь типа NT можете поэксперементировать.
Отправлено: 20.03.2002, 07:15
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 238)
_______________
Отвечает v4D
Приветствую Вас, Yevgeniy!
Конечно же можно... это уже давно используется крупными фирмами
Например, производительность в 3DS Max составляет более 90%
от суммы производительности каждого компа в локалке...
Отправлено: 20.03.2002, 22:19
Отправитель: v4D (регистрация: 17/03/2002, ответов на счету: 11)
Ukraine, Kiev
_______________
Отвечает jc
Здравствуйте, Yevgeniy!
Теоритически можно все. Тебе только придеться каким либо образом распределять вычислительные ресурсы между машинами. С уважениме...
Отправлено: 21.03.2002, 10:02
Отправитель: jc (регистрация: 05/02/2002, ответов на счету: 45)
Россия, Йошкар-Ола
Вопрос № 320 |
Привет, эксперты!
Ребята, очень нужна ваша помощь! [Может и не совсем по теме рассылки, просто обратиться-то больше не к кому :(( ]. Пожалуйста, не отвечайте через форму, чтобы не засорять рассылку, а мой е-маил упадет к вам вместе с вопросом.
Ситуация такая:
Имею сишный исходник (написан на borland c), требуется откомпилить его в win32 dll. Никогда не ставил С, и даже не знаю, как там склеивать *.с и *.h файлы. Поможете? Или даже можно было бы оттранслировать в асм - там я хотя бы примерно знаю, что делать.
Отправитель: Dmitry (dmitry_m@kmr.kuzbass.net)
Вопрос отправлен: 19.03.2002, 18:26
Подгруппа: Оптимизация программ
_______________
Отвечает Топор
Доброе время суток, Dmitry!
Насколько я знаю, у командно-строчного компилера bcc.exe есть какой-то ключ (его можно узнать, вызвав компилятор с /?), по которому он не делает экзешник, а перегоняет в асм. Кажется, я даже его знаю - /Fa .
Отправлено: 19.03.2002, 22:58
Отправитель: Топор (регистрация: 15/03/2002, ответов на счету: 42)
Радио "Эхо Москвы в Самаре"
Адрес: 443011, Самара, ул. Советской Армии, 217
Тел.: (8462)160302, 162918
URL: http://listen.to/btemple - Хорошая Русская Металлическая команда
Россия, Самара
_______________
Отвечает v4D
Добрый день, Dmitry!
А для чего их склеивать ?
Когда вы добавляете *.h в прогу (Например: #include
Отправлено: 20.03.2002, 22:23
Отправитель: v4D (регистрация: 17/03/2002, ответов на счету: 11)
Ukraine, Kiev
Вопрос № 321 |
Доброе время суток Эксперты. У меня такой вопрос: есть монитор ViewSonic Professional Series PF775, но почемуто изображение нечеткое, цвета, краски отличные но при разрешении 1600-1200, буквы слегка расплывчатые и границы рабочей области экрана кривоваты, в чем проблемс? Video-карта вроде нормальная, ATI Xpert 16Mb. В чем проблемс, зараие сенкс.
Отправитель: Zmey
Вопрос отправлен: 19.03.2002, 18:59
Подгруппа: Модели, виды и типы компьютеров (hard)
_______________
Отвечает Den
Здравствуйте, Zmey!
Проблема в частоте обновления - ее надо уменьшить.
У меня тоже самое (только монитор другой) - постепенно уменьшал частоту и проверял всякими таблицами, пока не нашел максимальную без искажений.
А то что на коробке написано - реклама, хотя при таких максимальных настройках монитор работает :), как и обещала реклама
Отправлено: 19.03.2002, 20:41
Отправитель: Den (регистрация: 28/12/2001, ответов на счету: 28)
Россия, СПб, Ломоносов
_______________
Отвечает DivX
Здравствуйте, Zmey!
Если буквы и все-такое расплывчато при любом разрешении, то монитор скорее всего был плохо настроен и как следствие - плохая фокусировка лучей. А если это только при 1600х1200 - то это не беда, ухудшение фокусировки пр таких высоких разрешениях наблюдается у каждого 17" монитора.
Отправлено: 20.03.2002, 07:15
Отправитель: DivX (регистрация: 28/12/2001, ответов на счету: 238)
_______________
Отвечает Dr_NO
Доброе время суток, Zmey!
По моему, дело как раз в Вашей видеокарте. Дело в том, что на больших разрешениях возможен эффект "замыливания", что Вы и наблюдаете (как правило этим грешат встроенные видеокарты). Просто поставьте разрешение поменьше или же поменяйте видеокарту.
Отправлено: 20.03.2002, 07:46
Отправитель: Dr_NO (регистрация: 19/03/2002, ответов на счету: 4)
140323114
Россия, Люберцы
Форма отправки сообщения |
Заполните приведенную ниже форму для того, чтобы отправить вопрос. Дополнительную информации по пользованию формой для подписчиков и экспертов можно получить, нажав на знак вопроса в соответствующем разделе, при этом информация будет отображена в отдельном окне.
В почтовых программах форма не работает!!! Открывайте рассылку в браузере Internet Explorer, где и набирайте Ваш вопрос.
© 2000 - 2002 Россия, Москва. Авторское право: Калашников О. А. |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||