Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отправка сообщений по локальной сети / 25 сообщений из 33, страница 1 из 2
26.04.2016, 12:53
    #39224678
Отправка сообщений по локальной сети
Есть таблица с именами компьютеров в локальной сети, нужно отправить выбранным сообщение.
Пытаюсь командой msg

...
soob = "Это тест!"
stName = "cmd /c msg * /server: имя_компьютера """ & soob & """"

i = ExecCmd(stName)
If i <> 0 Then '
MsgBox "Произошла ошибка при выполнении команды:" & vbCrLf & _
stName, vbCritical, "Внешнее приложение"
End If
...

Получаю ошибку, i=1

Процедуру ExecCmd взяла здесь на форуме, уже успешно ею пользовалась для запуска приложений,
а как запустить для msg не могу сообразить
...
Рейтинг: 0 / 0
26.04.2016, 13:59
    #39224757
Отправка сообщений по локальной сети
Попробовала еще так:

Set objShell = CreateObject("WScript.Shell")

i = objShell.Run("cmd /c msg * /server test", vbHide, True)

If i = 0 Then
MsgBox True
Else
MsgBox False
End If


Получаю False, сообщение не приходит.
Может есть какой-то работающий способ отправлять сообщения?
...
Рейтинг: 0 / 0
26.04.2016, 14:03
    #39224764
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
Да Вы сперва хотя бы из командной строки сообщение отправьте, ё моё...
...
Рейтинг: 0 / 0
26.04.2016, 14:28
    #39224809
Отправка сообщений по локальной сети
Akina, из командной строки прекрасно отправляются все буквы алфавита, в том числе ваше ё.
...
Рейтинг: 0 / 0
26.04.2016, 15:10
    #39224869
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
ЛесноеОзероиз командной строки прекрасно отправляютсяВот именно такой командной строкой, что в коде показано? не верю! За параметрами следите... пробелы лишние не напихивайте - и будет Вам счастье...
...
Рейтинг: 0 / 0
26.04.2016, 15:32
    #39224903
Отправка сообщений по локальной сети
Akina, да, именно такой командной строкой.

Про "лишние пробелы" поподробнее, вы говорите загадками.
Хотелось бы обещанного счастья, особенно если для этого достаточно сократить количество пробелов.

Если не затруднит, можете привести пример работающего кода, отправляющего сообщения на компьютер в сети?
...
Рейтинг: 0 / 0
26.04.2016, 15:40
    #39224911
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
ЛесноеОзероПро "лишние пробелы" поподробнее, вы говорите загадками.
Посмотрите код в первом своём сообщении. Вторая строка. Цитирую, обернув тегом "SRC":
Код: vbnet
1.
2.
soob = "Это тест!"
stName = "cmd /c msg * /server: имя_компьютера """ & soob & """"


Там между двоеточием и символом "и" присутствует пробел - видите его? А его там быть не должно.
А в коде во втором сообщении Вы вообще сервер не указали.

ЛесноеОзерода, именно такой командной строкой.
В следующий раз после проверки в командной строке не пальцами набирайте код, а копипастите из окна компроцессора. Меньше шанс накосячить...
...
Рейтинг: 0 / 0
26.04.2016, 16:33
    #39224952
Отправка сообщений по локальной сети
Akina, даже если вставить 10 пробелов после двоеточия перед именем компьютера, у меня все равно работает из командной строки. Что я делаю не так? А server без имени означает послать самому себе, попробуйте. А по существу вопроса ничего?
...
Рейтинг: 0 / 0
26.04.2016, 17:12
    #39224976
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
ЛесноеОзеро,
у меня так работает :)
Код: vbnet
1.
2.
3.
4.
5.
Public Function fff()
soob = "Это тест!"
stName = "cmd /c msg * """ & soob & """"
i = Shell(stName)
End Function
...
Рейтинг: 0 / 0
26.04.2016, 17:28
    #39224993
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
ЛесноеОзеродаже если вставить 10 пробелов после двоеточия перед именем компьютера, у меня все равно работает из командной строки. Что я делаю не так?
Да неправду говорите, вот что.
Если вставить хотя бы один пробел - то имя_компьютера будет интерпретировано не как имя компьютера назначения, а как начальные символы пересылаемого сообщения.

ЛесноеОзероserver без имени означает послать самому себе, попробуйте
Мне даже пробовать не надо - если указать, как во втором посте, просто server, без двоеточия, то msg запросит строку сообщения с консоли, после чего уйдёт в глубокий даун, который закончится сообщением типа "Ошибка 1707 при получении имен сеанса"...

Так что по существу вопроса могу сообщить лишь одно - все Ваши проблемы от неаккуратности.
...
Рейтинг: 0 / 0
26.04.2016, 17:36
    #39225001
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
Вот первый вариант:
...
Рейтинг: 0 / 0
26.04.2016, 17:37
    #39225002
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
И вот второй:
...
Рейтинг: 0 / 0
26.04.2016, 17:50
    #39225011
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
AkinaИ вот второй:
Попробуйте test взять в кавычки. :)
...
Рейтинг: 0 / 0
26.04.2016, 17:55
    #39225015
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
Легко... вот только не влияет.
...
Рейтинг: 0 / 0
26.04.2016, 18:00
    #39225020
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
А у меня вот так:
...
Рейтинг: 0 / 0
26.04.2016, 18:10
    #39225025
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
Ты тоже внимательностью явно не страдаешь. После звёздочки отсутствует пробел, посему значение */server было воспринято как имя сеанса, а все символы в нём после звёздочки игнорируются.
...
Рейтинг: 0 / 0
27.04.2016, 09:44
    #39225275
Отправка сообщений по локальной сети
guest_rusimportЛесноеОзеро,
у меня так работает :)
Код: vbnet
1.
2.
3.
4.
5.
Public Function fff()
soob = "Это тест!"
stName = "cmd /c msg * """ & soob & """"
i = Shell(stName)
End Function



Пробовала вчера для понимания происходящего и вашу stName, и даже такую, еще проще
Код: vbnet
1.
2.
stName = "cmd /c msg * 12345"
i = Shell(stName)



и с кавычками, перед ""12345"

... и никак, не работает :(
Уже не доверяя себе, сегодня скопировала ваш вариант - не работает. Окно access конвульсивно дергается, вроде как реагирует на вызов, и ничего не выводится на экран.
Ну, почему??? Access 2010, Windows 7 Pro 64 ... у меня.
...
Рейтинг: 0 / 0
27.04.2016, 09:55
    #39225289
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
Для обмена сообщениями необходимо разрешить службу MSG, поскольку по умолчанию она выключена. Для включения надо в каждом ПК который может/должен принимать сообщения внести изменения в реестр Windows, изменив параметр HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\AllowRemoteRPC на 1 . А потом перезагрузить БД для включения MSG.

Возможно в 64-битной системе иной адрес в реестре.
...
Рейтинг: 0 / 0
27.04.2016, 09:56
    #39225290
Отправка сообщений по локальной сети
Akina,
на данном этапе я была согласна на любую интерпретацию параметров msg - хоть что-то на экране получить, посланное из процедуры, пусть даже не такое, как ожидалось, было бы положительным результатом. Поэтому, по прежнему не понятно, отчего из командной строки сообщение приходит, а оно же скопированное в процедуру, нет. Даже совсем упрощенный вариант, в котором нет шансов проявить невнимательность "msg * 12345" не срабатывает.
...
Рейтинг: 0 / 0
27.04.2016, 10:35
    #39225336
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
Блин, да чем вы там код набираете?
...
Рейтинг: 0 / 0
27.04.2016, 10:56
    #39225367
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
А меня так:
...
Рейтинг: 0 / 0
27.04.2016, 11:04
    #39225375
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
xax_nv , проверьте, доступен ли msg.exe (установки PATH, права). Попробуйте указать полный путь с расширением.
Ошибка времени исполнения 53 - это именно "файл не найден", т.е. либо его нет по путям, указанным в PATH (исходно он лежит в %WINDIR%\System32), либо недостаточно прав для его обнаружения в каталоге, либо он подменён (возможно, вышележащим по PATH одноимённым файлом) и пытается запустить дочерний процесс, а его модуль отсутствует по аналогичным причинам ("родной" msg.exe дочерних модулей не загружает).
...
Рейтинг: 0 / 0
27.04.2016, 11:12
    #39225392
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
msg.exe на месте. И из командной строки работает нормально. Не хочет именно из кода.
...
Рейтинг: 0 / 0
27.04.2016, 11:16
    #39225398
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
Тогда запустите вот в таком виде:
Код: vbnet
1.
Shell "cmd.exe /k c:\windows\system32\msg.exe * /server: test message", vbNormalFocus


и посмотрите, что показывается в окне компроцессора. Из него же пробуйте запуск без указания пути и ищите источник проблемы.
Если у Вас другой путь в каталог системы - внесите соотв. корректировку.
...
Рейтинг: 0 / 0
27.04.2016, 11:17
    #39225401
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка сообщений по локальной сети
Теоретически возможно, что UAC запрещает запуск дочернего процесса. Или проблема в иных настройках ОС.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отправка сообщений по локальной сети / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]