Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

Получение 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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.022 c
1-47488
greenrul
2002-06-25 16:26
2002.07.15
Как дождаться завершения CopyFile,DeleteFile и пр.


3-47126
NaPoleOn_IV
2002-06-22 21:38
2002.07.15
Дорогие мастера, подскажите


1-47479
Alex_E
2002-07-03 18:16
2002.07.15
Удаление с панели задач лишних окон


3-47167
RID
2002-06-13 16:39
2002.07.15
Connect c базой, расположенной на Сервере с Windows 2000 NTFS


1-47580
Aleksandr
2002-06-28 13:50
2002.07.15
Как объявить процедуру, универсальную для разных объектов?