![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение NET SEND [NT4, Win2k]
Kirill © (2001-10-25 18:10:00)Мастера, у меня вопрос:
как можно получить сообщение, полученное от другого компьютера (отправили net send"ом). При этом не давать системе его показать.
А то иногда случайно нажмешь на пробел или на Ентер и просишь всех повторить (ведь не знаешь от кого оно пришло).
Заранее благодарен за все советы и ссылки (желательно не очень далеко).
Kirill (2002-05-06 15:14:00) [1]2Korney:
Прога очень понравилась.
При тормозах системы окно не успевает пропадать :)
2Ведмедь:
Попробую.
Korney (2002-05-03 10:44:00) [2]2 Linx
Пока нечем делиться, я посылал Kirill-у свою прогу (ссылку я давал выше), в общем то в ней все работает похоже как у тебя, нахожу окно, читаю из него сообщение, закрываю окно. И проблеммы те-же.
Но работа потихоньку продвигается, путь перехвата API похоже самый верный, другого я пока не вижу.
Однако тут еще одна проблемма возникает. чтобы перехватить API в сервисе нужны привилегии администратора, иначе ничего не выйдет.
Ведмедь (2002-04-23 13:38:00) [3]2 KirillВся ее платность заключается в нажатии на кнопку Close при старте программы после истечения триала :)
Linx (2002-04-23 12:41:00) [4]Kirill и Korney пожалуйста поделитесь проделанной работой, я вижу вы какими-то вариантами кода обмениваетесь. У меня та же проблема, умею читать сообщение из Журнала событий, закрывать нужное окно и вроде все класно, но когда комп блокирован эта схема не работает. Я тоже хочу научиться получать сообщения без окна. Кстати обнаружил интересный момент, просматривал свойство службы "Служба сообщений" и обнаружил, что эту службу можно затускать с какими-то параметрами, вот бы узнать что там за переметры, может там и вывод окна можно отключить?
Kirill (2002-04-15 17:59:00) [5]2 Korney:
Прогу получил. Очень хороша. Осталось закрыть вообще появление сообщения.
2 Ведмедь:
Она платная.
Korney (2002-04-15 12:46:00) [6]2Ведмедь
Ну ты сказал.
Это по принципу:
- Зачем тебе учиться читать, что бы прочитать "3 Мушкетера" (например), возьми в прокате касету да посмотри.
Нет уж. "Лучше день потерять, потом за 5 минут долететь."
А лишние знания еще никому не мешали.
2Kirill
Появилась новая мысль.
Перехватить вызов API MessageBoxW - через него Messanger service выплувывает на экран принятые сообщения.
Я сейчас как раз над этим работаю, правда уже на немеряное колчество граблей наступил, но пока воюю. Если что получиться толковое, сообщу.
Ведмедь (2002-04-12 11:15:00) [7]Дык, не мучься - возьми с www.vypress.com ихний мессагер (по-моему, лучший экземпляр подобного рода прог) и наслаждайся жизнью.
Kirill (2002-04-11 19:39:00) [8]2 Korney:
Закидывай на мой ящик.
Не знаю, шутка это или нет, но 1 апреля Мелкомягкие заявили, что следущая операционка будет open-source.
А вот сайт не посоветую - сам найти не могу.
x.000.d (2002-04-11 19:30:00) [9]Народ подскажите на каком порту висит эта служба сообщений !?
и можно ли порграммно отпровлять мессы ? как ?
(пример типа winexec ...... не описывать :) )
Korney (2002-04-10 11:02:00) [10]2 Kirill
Исходники врядли у кого-то есть. Мелкомягкие жмутся за них. Разве что на каких хакерских сайтах. Гдето в прошлом году проходила информация, что кто-то стянул у них исходники чуть ли не всей винды.
А прогу, если хочешь я тебе на мыло кину. C boom.ru хреново проги качаются. Если знаешь какой бесплатный хостинг, чтобы можно было файлы размещать, подскажи.
Kirill (2002-04-10 10:26:00) [11]2Korney:
Меня он тоже уже волнует полгода, но решения пока нет.
То решение с хуком не очень удобен, а остановка службы вообще неприемлим.
Вашу программу с сайта не удалось загрузить, поэтому Ваших результатов не посмотрел.
Вот идея переписать Messenger service хорошая. Возникает вопрос, у кого есть исходники?
Korney (2002-04-09 15:17:00) [12]Приходила еще мысль переписать Messenger service но я ее поскорее прогнал, ввиду того что вообще неизвестно что он там делает и как.
Хочется с ним взаимодействовать.
Korney (2002-04-09 15:08:00) [13]2 Kirill
Меня этот вопрос уже пол года мучает. Я к нему периодически возвращаюсь когда время появляется. На этот раз вроде ответ найден, в виде перехвата API, но с ним надо разбираться и разбираться. И еще неизвестно как он будет работать, ведь цель - чтобы сообщения принимались программой и тогда когда машина заблокирована.
Чуствую есть простое красивое НЕДОКУМЕНТИРОВАННОЕ решение. Но как бы его раскопать.
Есть еще API функция NetBIOS. Через нее тоже можно попробовать.
Kirill (2002-04-09 13:37:00) [14]Ни за что бы не подумал, что этот вопрос так долго проживет!
А ответа все же нет.
Korney (2002-04-09 12:43:00) [15]FindWindow - это конечно вариант. но далеко не лучший.
У меня самого на данный момент таким образом работает (кому интересно - http://korney.boom.ru), но хочу переделать. С Хуками похоже тут ничего не выгорит, я их уже все перепробовал, массу времени убил. Надо либо делать перехват API скорее всего MessageBoxA или MessageBoxW, либо писать снифер для сетевой карточки. Другого выхода я пока не вижу.
Хотя нарвался на прозрачную инфу о том что перехваты можно делать через интерфейсы Windows.
fishka (2002-03-07 12:09:00) [16]СПАСИБО!!!
USAtyj (2002-03-07 10:36:00) [17]"Соо" - это как раз начало от полного текста:
Сообщение от КОМП1 для КОМП2 на 01.01.2002 12:00
222222
У тебя просто размер бувера указан маленький, потому взялось только 3 первых символа.
Опиши Buff как:
Buff: array [0..2048] of char;
И тебе придется первые 2 строки удалять самому, чтобы получить чистый текст сообщения.
Kirill (2002-03-06 17:54:00) [18]2 Spector:
Самый простой способ написать батник, что-то вроде этого
:ONEMORE
net send <имя_компа> <текст>
GOTO ONEMORE
fishka (2002-03-06 15:50:00) [19]Например, мне приходит сообщение типа "222222".
В программе я пишу (согласно приведенного Вами примера):
Memo2.Lines.Add(strpas(rcMessage));
И получаю в Memo2:
Coo
У меня Windows 2000.
А где присланные мне "222222"? Что не так?
USAtyj (2002-03-06 15:01:00) [20]Дык вот же написано:
GetWindowText(GetDlgItem(MsgHdl,65535),Buff,sizeof(Buff));
Т.е. GetWindowText не самого окна, а именно контрола, в котором текст сообщения.