всё же я не понимаю, господа присяжные заседатели! у меня появилось немного свободного времени на работе и я решил продолжить извращать Буфер обмена. а что из этого вышло? опять стою и НЕ ПОНИМАЮ!
для тех кто не помнит ф-ю 60:
60 = ВЗАИМОДЕЙСТВИЕ МЕЖДУ ПРОЦЕССАМИ (IPC)
INTER PROCESS COMMUNICATION
ebx = 1 - определить область памяти для приема сообщений IPC
ecx = адрес
edx = размер
ebx = 2 - послать сообщение
ecx = PID процесса
edx = указатель на сообщение
esi = его длина
регистры не изменяются
см. также функцию 40
Никаких описаний работы тов. Велосипед не предоставил.
Отправляю IPC сообщение длиной в 2 байта (типа "hi") а на том конце получаю
+0 dword PID отправляющего
+4 dword некое число, напрямую зависящее от количества передаваемых байт, однако принципа я не понял. отправляю 2 байта этот дворд равен 12. отправляю 256 байт - он равен пятьсот сколькототам.
+8 dword какие то страшные цифры 1819043176
+12 dword тоже цифры.
Мож кто слышал или сам сталкивался?
Вопрос 2 - принимается только первое сообщение IPC. Остальные игнорируются (точнее игнорируется само принятие этих сообщений - ф-я 10 молчит) мож надо что нить сбрасывать? флажок какой нить?
в теории уже почти готовы макросы отправки-прёма (ещё не проверял в действии т.к. см. выше)
опять я и опять IPC
И ещё вспомнил чё хотел спросить - отлов нажатий клавиш (хотя бы принт скрин и скролл лок) в не активном приложении..
Посмотрел PANEL. хитроооо! я бы так не додумался, но ведь должен быть способ попроще?
Посмотрел PANEL. хитроооо! я бы так не додумался, но ведь должен быть способ попроще?
Скорее всего +4 dword должен быть размером сообщения. +8 dword - самим сообщением.
Смотрим ветку дополнения sysfuncr.txt в форуме ядро. Я там описал принцип работы ipc в MenuetOS. Если это не поможет - шли программу, доказывающую неверность моего описания 60 функции. (halyavin [at ] land [point ] ru)
Смотрим ветку дополнения sysfuncr.txt в форуме ядро. Я там описал принцип работы ipc в MenuetOS. Если это не поможет - шли программу, доказывающую неверность моего описания 60 функции. (halyavin [at ] land [point ] ru)
thnx! а я что то не смотрел.. сори
тааак. (только не смейтесь ) буфер на финишной прямой. такой вопрос - стек располагается ДО места приёма сообщений, т.к. при необходимости буфер увеличивает свою память. так вот - у велика даже в примере стек располагался где то в середине, это нормально???
второй вопрос - при уменьшении памяти программы какой минимальный предел допускаемый ядром? или его нету (минимума) ?
второй вопрос - при уменьшении памяти программы какой минимальный предел допускаемый ядром? или его нету (минимума) ?
Размер буфера задается приложением при его создании. Ядро автоматически буфер не увеличивает. Так что где хочешь, там и располагай буфер, только гарантируй, что он ни с чем не пересечется. Велик любит стек посередине. Это имеет смысл когда после стека располагается структура данных, размер которой может расти.
Минимума нет, но если укажешь отрицательное число, то ядро может упасть (эту ситуацию я не учел - будем исправлять).DoomEd Archangel wrote: при уменьшении памяти программы какой минимальный предел допускаемый ядром? или его нету (минимума)
DoomEd Archangel
Молодец! Давай я за тебя болею!
Ты главное помни, что стек начинается в верхних адресах и начинает увеличиваться к нижним. Пока я этого не узнал, из поста Trans'a полтора года назад то делал кучу тупостей в коде и не мог понять, в чем дело.
В принципе минимальный размер программы нет смысла делать мене 4Кб или 1000h. Так как размер сегмента или страницы не бывает менее 4 Кб. Даже если программа занимает меньше, то она все равно будет занимать в памяти 4 Кб. Это физический предел.
Молодец! Давай я за тебя болею!
Ты главное помни, что стек начинается в верхних адресах и начинает увеличиваться к нижним. Пока я этого не узнал, из поста Trans'a полтора года назад то делал кучу тупостей в коде и не мог понять, в чем дело.
В принципе минимальный размер программы нет смысла делать мене 4Кб или 1000h. Так как размер сегмента или страницы не бывает менее 4 Кб. Даже если программа занимает меньше, то она все равно будет занимать в памяти 4 Кб. Это физический предел.
thnx. обнаружил глюк смещения копируемого сообщения, при множественном копировании/вставки... ищу.
Who is online
Users browsing this forum: No registered users and 7 guests