|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Уважаемые гуру, здравствуйте! Мне необходимо отправлять/получать сообщения от пользователей при помощи NET SEND При таком запуске: Код: plsql 1.
мелькает окно, файл создается, а так: Код: plsql 1.
окно свернуто, но и файл не создается!!! , " > res.txt" добавляется к сообщению :( Подскажите, pls, как сделать так, чтобы и окна не было, и файл создавался. PS. Sent и WinSent Messenger не подходят, только NET SEND ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2012, 10:39 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Отказаться от RUN Возможно ShellExecute поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2012, 14:25 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Dag, Кроме кода завершения от ShellExecute больше ничего не дождешься, а мне нужен файл с текстом ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2012, 15:00 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Jonny540, в порядке бреда - пишете "net send * "Текст сообщения" > res.txt" в батник, запускаете батник шеллэкзекьютом... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2012, 15:35 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Если и отправка и получение выполняется из среды FoxPro, то зачем Вам вообще внешняя утилита? Делайте запись сообщений в DBF-таблицы общего доступа и периодически просматривайте ее содержимое из приложений FoxPro. Если там есть сообщение и оно адресовано текущему пользователю, то отображайте сообщение. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2012, 16:05 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
ВладимирМ, Мысль, конечно, интересная, я уже думал над этим Для просмотра придется использовать таймер, мне этого очень не хотелось бы, там их и так уже 3 штуки, к тому же надо доставлять сообщения оперативно, а не через несколько минут (меньше интервал поставить не могу) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2012, 17:23 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
tanglir, " > res.txt" добавляется к сообщению , как ни крутись... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2012, 17:25 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Я не гуру, но помочь попробую. Я тоже давно отправлял сообщения пользователям ч/з run, но потом сис.админы эту службу у нас заблоктровали, и я сделал по другому отправку сообщений. Достоинства отправки сообщений ч-з run - простота. Как конкретно сделать, чтоб окно не выскакивало я тебе не скажу, но посоветую посмотреть на сайте forum.foxclub.ru, найди там по поиску, что тебе надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2012, 23:38 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
RUN без /N вызывает виртуальную ДОС-машину (CMD.EXE) а она выполняет команду. RUN с /N вызывает виндовую функцию CreateProcess() "... > res.txt" это синтаксис который понимает только CMD.EXE, для CreateProcess() это просто параметры которые надо передать в вызываемое приложение. Поэтому надо так запускать: Код: sql 1.
"... > res.txt" это указание перехватить вывод в консоль net.exe и сохранить в файл res.txt Получить вывод можно еще так: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2012, 14:48 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
PS Пример с Wscript.Shell не проверял, взял тут . ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2012, 14:53 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Браво, Dima T, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2012, 14:59 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Jonny540ВладимирМ, Мысль, конечно, интересная, я уже думал над этим Для просмотра придется использовать таймер, мне этого очень не хотелось бы, там их и так уже 3 штуки, к тому же надо доставлять сообщения оперативно, а не через несколько минут (меньше интервал поставить не могу) А что, кто-то бьет по рукам? Какая собственно разница сколько таймеров в приложении и с каким интервалом они работают? Это никак и ни на что не влияет. Интервал срабатывания таймера секунд в 30 вполне себе можно считать оперативным. На всякий случай напомню, что FoxPro - это однопоточное приложение. События выстраиваются в очередь. Это значит, что пока не отработает событие одного таймер событие другого таймера не будет исполнено. Будет ждать своей очереди. Вмешаться в процесс выполнения "чужого" события - не сможет. Разумеется, если только это специально не предусмотрено программистом. И еще, если в системе много процессов, которые должны срабатывать периодически по таймеру, то я бы сделал общий диспетчер для подобных процессов. Т.е. один таймер - и список процессов, которые он должен вызывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2012, 17:26 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
есть ещё варианты.... можно написать свою функцию, что-то типа такого Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
в этом случае мелькать окно не будет *-или так loWsShell=CREATEOBJECT("Wscript.Shell") loWsShell.Run('net send 169.255.0.1 Вася, привет!') только не стоит забывать, что в любом случае требуется запуск службы сообщений на получателе ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2012, 10:38 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
Jonny540ВладимирМ, Мысль, конечно, интересная, я уже думал над этим Для просмотра придется использовать таймер, мне этого очень не хотелось бы, там их и так уже 3 штуки, к тому же надо доставлять сообщения оперативно, а не через несколько минут (меньше интервал поставить не могу) но зато при использовании разных вариантов net send (будь-то АПИ, будь-то Wscript), если служба сообщений на клиенте не запущена, то никакой оперативности не будет, т.к. клиент просто напросто не получит никакого сообщения... такшта в варианте, предложенном Владимиром, есть свой плюс, т.к. нет зависимости от этой службы... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2012, 10:48 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
КонецЦиклаесли служба сообщений на клиенте не запущена, то никакой оперативности не будет, т.к. клиент просто напросто не получит никакого сообщения... Если служба не запущена, она запускается автоматически из приложения КонецЦиклаloWsShell=CREATEOBJECT("Wscript.Shell") loWsShell.Run('net send 169.255.0.1 Вася, привет!') В этом случае не будет формироваться файл (см. топик) КонецЦиклаPROCEDURE SendMessage Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
А надо ли "из пушки по воробьям", если можно обойтись одной командой? КонецЦиклав варианте, предложенном Владимиром, есть свой плюс, т.к. нет зависимости от этой службы... Я ведь не отвергаю этот вариант в принципе ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2012, 12:03 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
когда-то была у меня подобная задача с оповещениями... была она сначала сделана в лоб через WshShell Object... да, всего пара-тройка строк кода, но потом пользователей стало напрягать мелькание черного окна... тогда сделал через netapi.. да из пушки по воробьям, но все красиво... одна проблема вот только была, надо было постоянно контролировать запущена служба приложений или нет... запускать её постоянно не вариант, т.к. хер знает запустилась она или нет, у кого-то не было вообще прав на запуск служб... запускать её от имени администратора, но надо знать его имя и пароль на каждом компьютере и хранить это все надо к тому же, т.к. компьютеры были не в домене.... так, сборная солянка была... поэтому в итоге все-таки была сделана таблица, где для каждого пользователя были какие-то сообщения, которая периодически просматривалась... ЗЫ. ну уж добавить ещё строчку, чтобы формировался файл, я думаю, тут все в состоянии... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2012, 17:05 |
|
Консольная утилита NET SEND
|
|||
---|---|---|---|
#18+
КонецЦиклано потом пользователей стало напрягать мелькание черного окна При /N2 окно не мелькает (свернуто) КонецЦиклау кого-то не было вообще прав на запуск служб... запускать её от имени администратора, но надо знать его имя и пароль на каждом компьютере и хранить это все надо к тому же, т.к. компьютеры были не в домене В данном конкретном случае все путём КонецЦиклав итоге все-таки была сделана таблица, где для каждого пользователя были какие-то сообщения, которая периодически просматривалась... Я же говорил, что не отвергаю этот вариант, но, я думаю, не стоит использовать всегда какое-то универсальное решение... У нас должно быть как у хороших врачей - к каждому "пациенту" свой подход ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2012, 17:22 |
|
|
start [/forum/topic.php?fid=41&msg=37753922&tid=1583725]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 277ms |
total: | 423ms |
0 / 0 |