Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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.013 c
1-47351
Ivan2
2002-07-01 19:07
2002.07.15
Как получить доступ к private-полю из блока asm?


14-47763
RIV
2002-06-12 14:37
2002.07.15
Кто лучший гитарист в мире?


1-47521
mazepa
2002-06-27 19:00
2002.07.15
Как быстро сохранить инф. из s:string {H+} в file.txt


3-47097
id_privin
2002-06-20 19:55
2002.07.15
Загрузка данных в Oracle


3-47082
Костян
2002-06-20 14:47
2002.07.15
Вычислимое поле во время выполнения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский