Форум: "Сети";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
ВнизПолучение NET SEND Найти похожие ветки
← →
Kirill (2001-10-25 18:10) [0]Мастера, у меня вопрос:
как можно получить сообщение, полученное от другого компьютера (отправили net send"ом). При этом не давать системе его показать.
А то иногда случайно нажмешь на пробел или на Ентер и просишь всех повторить (ведь не знаешь от кого оно пришло).
Заранее благодарен за все советы и ссылки (желательно не очень далеко).
← →
Gray (2001-10-30 08:46) [1]В win2000 можно увидеть пропущеное сообщение через просмотр событий (Event Viewer) в разделе Журнал системы, источник Application Popup.
В NT тоже такое возможно.
← →
Kirill (2001-10-30 11:42) [2]Это хорошо для администраторау, у кого есть доступ к журналу. Для пользователей это проблема. Желательно это реализовать программно. Вопрос открыт.
← →
pank (2001-11-30 00:33) [3]У меня такая же проблема.
Хочу программно перехватывать это сообщение.
Может кто - нибудь всё таки знает как это сделать.
← →
AKV (2001-11-30 05:58) [4]Ставьте HOOK
← →
Sir Alex (2001-11-30 14:37) [5]А как отрубить реакцию на NET SEND, а то у нас в сетке поиграть спокойно нельзя, обязательно какой нибудь нехороший человека пришлет что-нить типа "Привет !!!" и пока ты читаешь сообщение, тебя спокойно убивают :(
← →
USAtyj (2001-11-30 15:27) [6]А ты по таймеру каждые полсекунды
FindWindow(PChar("#32770"),PChar("Служба сообщений ")) делай
считывай содержимое сообщения и закрывай окошко :))
← →
Kirill (2001-11-30 17:38) [7]А как сделать, чтобы оно вообще не появлялось?
← →
pank (2001-12-01 07:35) [8]что такое Hook?
(hook слевой)
← →
Tosov (2001-12-01 16:32) [9]Sir Alex
Чтобы сообщение не появлялось надо убить службу сообщений (можно и все остальные тоже поубивать - больше будет свободной оперативки :)
← →
Tosov (2001-12-01 16:36) [10]Sir Alex
Кстати если не закрывать предидущее сообщение - новое не появляется, так и живем :)
Kirill © (30.10.01 11:42)
Так тебя устраивает вариант с журналом сообщений - с ним и из Delphi можно работать и прав не нужно (даже на чужом компе).
PS в NT 4.0 я такого не нашел :(
← →
pank (2001-12-02 01:10) [11]У меня куча вопросов:
К г-ну USAtyj © как можно прочесть программно это сообщение?
К г-ну TOSOV где можно найти и как называется этот журнал?
← →
Tosov (2001-12-03 00:41) [12]pank
Журнал можно просмотреть с помощью eventvwr.exe
Если надо из Delphi посмотри в help"е про EventLog...
← →
Kirill (2001-12-03 20:53) [13]Tosov:
не совсем понял про EventLog из help"а как с ним работать.
← →
MOHAX (2002-02-19 21:06) [14]Удалено модератором
← →
NiGth (2002-02-24 07:02) [15]Sir Alex"у : убить можно вот так:
net stop messenger
или
net stop messeg
.
Pank"у: Hook - ловить всякие нажатия клавиш, мышь, вывод мессаг...
← →
yuravss (2002-02-25 02:34) [16]Для перехвата сетевых сообщений нужно писать что-то типа FireWall"a. Копайте в этом направлении !
← →
Spector (2002-03-06 06:36) [17]Народ а как сделать чтобы сообщение посланное через net send посылалось постоянно?
Spector
← →
fishka (2002-03-06 10:47) [18]А как считать полученное сообщение?
Я пишу что-то вроде:
GetWindowText(FindWindow(PChar("#32770"),PChar("Служба сообщений")),text,100000);
Memo2.Lines.Add(Strpas(text));
text - переменная PChar;
И выдается ошибка , если приходит сообщение. В чем моя ошибка?
← →
USAtyj (2002-03-06 13:18) [19]
MsgHdl:=FindWindow(PChar("#32770"),PChar("Служба сообщений "));
if MsgHdl=0 then
begin
MsgHdl:=FindWindow(PChar("#32770"),PChar("Messenger service "));
if MsgHdl=0 then
Exit
else Flag:=True;
end;
GetWindowText(GetDlgItem(MsgHdl,65535),Buff,sizeof(Buff));
rcMessage:=Buff;
PS: Заметь, что при поиске окна надо искать "Служба сообщений " - а именно пробел в конце!!!
← →
fishka (2002-03-06 14:22) [20]> USAtyj
Да, я ищу ""Служба сообщений " с пробелом. Ошибок не вываливается.
Но где сам текст сообщения? У меня вместо него какие-то не те слова.....
← →
USAtyj (2002-03-06 15:01) [21]Дык вот же написано:
GetWindowText(GetDlgItem(MsgHdl,65535),Buff,sizeof(Buff));
Т.е. GetWindowText не самого окна, а именно контрола, в котором текст сообщения.
← →
fishka (2002-03-06 15:50) [22]Например, мне приходит сообщение типа "222222".
В программе я пишу (согласно приведенного Вами примера):
Memo2.Lines.Add(strpas(rcMessage));
И получаю в Memo2:
Coo
У меня Windows 2000.
А где присланные мне "222222"? Что не так?
← →
Kirill (2002-03-06 17:54) [23]2 Spector:
Самый простой способ написать батник, что-то вроде этого
:ONEMORE
net send <имя_компа> <текст>
GOTO ONEMORE
← →
USAtyj (2002-03-07 10:36) [24]"Соо" - это как раз начало от полного текста:
Сообщение от КОМП1 для КОМП2 на 01.01.2002 12:00
222222
У тебя просто размер бувера указан маленький, потому взялось только 3 первых символа.
Опиши Buff как:
Buff: array [0..2048] of char;
И тебе придется первые 2 строки удалять самому, чтобы получить чистый текст сообщения.
← →
fishka (2002-03-07 12:09) [25]СПАСИБО!!!
← →
Korney (2002-04-09 12:43) [26]FindWindow - это конечно вариант. но далеко не лучший.
У меня самого на данный момент таким образом работает (кому интересно - http://korney.boom.ru), но хочу переделать. С Хуками похоже тут ничего не выгорит, я их уже все перепробовал, массу времени убил. Надо либо делать перехват API скорее всего MessageBoxA или MessageBoxW, либо писать снифер для сетевой карточки. Другого выхода я пока не вижу.
Хотя нарвался на прозрачную инфу о том что перехваты можно делать через интерфейсы Windows.
← →
Kirill (2002-04-09 13:37) [27]Ни за что бы не подумал, что этот вопрос так долго проживет!
А ответа все же нет.
← →
Korney (2002-04-09 15:08) [28]2 Kirill
Меня этот вопрос уже пол года мучает. Я к нему периодически возвращаюсь когда время появляется. На этот раз вроде ответ найден, в виде перехвата API, но с ним надо разбираться и разбираться. И еще неизвестно как он будет работать, ведь цель - чтобы сообщения принимались программой и тогда когда машина заблокирована.
Чуствую есть простое красивое НЕДОКУМЕНТИРОВАННОЕ решение. Но как бы его раскопать.
Есть еще API функция NetBIOS. Через нее тоже можно попробовать.
← →
Korney (2002-04-09 15:17) [29]Приходила еще мысль переписать Messenger service но я ее поскорее прогнал, ввиду того что вообще неизвестно что он там делает и как.
Хочется с ним взаимодействовать.
← →
Kirill (2002-04-10 10:26) [30]2Korney:
Меня он тоже уже волнует полгода, но решения пока нет.
То решение с хуком не очень удобен, а остановка службы вообще неприемлим.
Вашу программу с сайта не удалось загрузить, поэтому Ваших результатов не посмотрел.
Вот идея переписать Messenger service хорошая. Возникает вопрос, у кого есть исходники?
← →
Korney (2002-04-10 11:02) [31]2 Kirill
Исходники врядли у кого-то есть. Мелкомягкие жмутся за них. Разве что на каких хакерских сайтах. Гдето в прошлом году проходила информация, что кто-то стянул у них исходники чуть ли не всей винды.
А прогу, если хочешь я тебе на мыло кину. C boom.ru хреново проги качаются. Если знаешь какой бесплатный хостинг, чтобы можно было файлы размещать, подскажи.
← →
x.000.d (2002-04-11 19:30) [32]Народ подскажите на каком порту висит эта служба сообщений !?
и можно ли порграммно отпровлять мессы ? как ?
(пример типа winexec ...... не описывать :) )
← →
Kirill (2002-04-11 19:39) [33]2 Korney:
Закидывай на мой ящик.
Не знаю, шутка это или нет, но 1 апреля Мелкомягкие заявили, что следущая операционка будет open-source.
А вот сайт не посоветую - сам найти не могу.
← →
Ведмедь (2002-04-12 11:15) [34]Дык, не мучься - возьми с www.vypress.com ихний мессагер (по-моему, лучший экземпляр подобного рода прог) и наслаждайся жизнью.
← →
Korney (2002-04-15 12:46) [35]2Ведмедь
Ну ты сказал.
Это по принципу:
- Зачем тебе учиться читать, что бы прочитать "3 Мушкетера" (например), возьми в прокате касету да посмотри.
Нет уж. "Лучше день потерять, потом за 5 минут долететь."
А лишние знания еще никому не мешали.
2Kirill
Появилась новая мысль.
Перехватить вызов API MessageBoxW - через него Messanger service выплувывает на экран принятые сообщения.
Я сейчас как раз над этим работаю, правда уже на немеряное колчество граблей наступил, но пока воюю. Если что получиться толковое, сообщу.
← →
Kirill (2002-04-15 17:59) [36]2 Korney:
Прогу получил. Очень хороша. Осталось закрыть вообще появление сообщения.
2 Ведмедь:
Она платная.
← →
Linx (2002-04-23 12:41) [37]Kirill и Korney пожалуйста поделитесь проделанной работой, я вижу вы какими-то вариантами кода обмениваетесь. У меня та же проблема, умею читать сообщение из Журнала событий, закрывать нужное окно и вроде все класно, но когда комп блокирован эта схема не работает. Я тоже хочу научиться получать сообщения без окна. Кстати обнаружил интересный момент, просматривал свойство службы "Служба сообщений" и обнаружил, что эту службу можно затускать с какими-то параметрами, вот бы узнать что там за переметры, может там и вывод окна можно отключить?
← →
Ведмедь (2002-04-23 13:38) [38]2 Kirill Вся ее платность заключается в нажатии на кнопку Close при старте программы после истечения триала :)
← →
Korney (2002-05-03 10:44) [39]2 Linx
Пока нечем делиться, я посылал Kirill-у свою прогу (ссылку я давал выше), в общем то в ней все работает похоже как у тебя, нахожу окно, читаю из него сообщение, закрываю окно. И проблеммы те-же.
Но работа потихоньку продвигается, путь перехвата API похоже самый верный, другого я пока не вижу.
Однако тут еще одна проблемма возникает. чтобы перехватить API в сервисе нужны привилегии администратора, иначе ничего не выйдет.
← →
Kirill (2002-05-06 15:14) [40]2Korney:
Прога очень понравилась.
При тормозах системы окно не успевает пропадать :)
2Ведмедь:
Попробую.
Страницы: 1 2 вся ветка
Форум: "Сети";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.01 c