![]() |
![]() |
![]() |
|
КомандаСистемы() | ☑ | ||
---|---|---|---|---|
0
Zixxx
22.12.09
✎
13:38
|
Есть ли какие-то варианты выполнить КомандаСистемы("net send...") параллельно с рабочим процессом пользователя и не на сервере?
|
|||
1
shuhard
22.12.09
✎
13:40
|
(0) параллельно - т.е. асинхронно, через scrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
не на сервере - это как |
|||
2
Zixxx
22.12.09
✎
13:42
|
(1) Да просто сначало начал через регламентные задания делать, но потом вспомнил что на сервере этот метод недоступен.
Ну да наверное асинхронно, т.е. net send у меня может выполнятся больше 9 секунд, но пользователю нужно работать дальше. А более подробно можно пример? |
|||
3
shuhard
22.12.09
✎
13:52
|
(0) пошукай по форуму вероятно по WScript.Shell
|
|||
4
Zixxx
22.12.09
✎
14:03
|
(3) Что делаю не так?
scrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl"); scrptCtrl.Language="vbscript"; scrptCtrl.AddCode(" |var x = new ActiveXObject (""WScript.Shell""); |var messaga=""Test""; |x.Run (""net snd auto2 ""+ messaga,1);"); ScrptCtrl.Run(); Ругается на компиляцию |
|||
5
lxs
22.12.09
✎
14:05
|
net snd ?
|
|||
6
Zixxx
22.12.09
✎
14:12
|
(5) Нет не в этом деле
scrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl"); scrptCtrl.Language = "vbscript"; scrptCtrl.AddCode(" |Procedure Test() | var x = new ActiveXObject(""WScript.Shell""); | var messaga=""Test""; | x.Run (""net send auto2 ""+ messaga, 1); |End Procedure |"); ScrptCtrl.Run("Test"); Пишет: Предпологается наличие окончание инструкции |
|||
7
Zixxx
22.12.09
✎
14:24
|
up
|
|||
8
EasyRider
22.12.09
✎
14:42
|
scrptCtrl.AddCode("
|Procedure Test() | var x = new ActiveXObject(""WScript.Shell"") | var messaga=""Test"" | x.Run (""net send auto2 ""+ messaga, 1) |End Procedure |"); Так попробуй |
|||
9
Zixxx
22.12.09
✎
14:43
|
(8) Ага добил уже. А можно ли как-то на момент выполнение скрипта прятать черное окно cmd ?
|
|||
10
EasyRider
22.12.09
✎
14:45
|
(9)Не думаю...
|
|||
11
Zixxx
22.12.09
✎
14:55
|
(10) Если запустить Run с параметром 0 тогда окошко не будет появляться...
ScrptCtrl = Новый COMОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language = "vbscript"; ScrptCtrl.AddCode(" |Function Test(UserName, Message) | Set WshShell = CreateObject(""WScript.Shell"") | WshShell.Run ""net send "" + UserName + "" "" + Message + """", 0 |End Function |"); ScrptCtrl.Run("Test", "РомашовА", "123"); |
|||
12
EasyRider
22.12.09
✎
14:56
|
(11)Спасибо за совет!Будем знать :)
|
|||
13
MaxS
22.12.09
✎
14:57
|
(2) а у меня на сервере выполняется ;)
Процедура фКомандаСистемы(СтрокаКоманды,ФоновыйРежим=Ложь,sReturn=Неопределено) Экспорт //#Если Клиент Тогда // глЗаписьВЖР("Команда системы: "+СтрокаКоманды,,"РегламентныеПроцедуры.КомандаСистемы"); // КомандаСистемы(СтрокаКоманды); // //ЗапуститьПриложение(СтрокаКоманды,,Истина); //#Иначе глЗаписьВЖР("Запуск Wscript: "+СтрокаКоманды,,"РегламентныеПроцедуры.КомандаСистемы"); WshShell=Новый COMОбъект("Wscript.Shell"); Если ФоновыйРежим=Истина Тогда sReturn = WshShell.run(СтрокаКоманды,1,False); Иначе sReturn = WshShell.run(СтрокаКоманды,1,True); КонецЕсли; глЗаписьВЖР(sReturn,,"РегламентныеПроцедуры.КомандаСистемы"); //#КонецЕсли КонецПроцедуры |
|||
14
Zixxx
22.12.09
✎
15:03
|
(13) Ну скрипты и так будут выполняться на сервере а метод КомандаСистемы нет
|
|||
15
MaxS
22.12.09
✎
15:05
|
(14) Ну в (2) вы написали, что >но потом вспомнил что на сервере этот метод недоступен.
В (13) показано, что метод выполняющий те же функции доступен на сервере. |
|||
16
Zixxx
22.12.09
✎
15:08
|
(15) Может там чего напутано? Просто мне регламентное задание на сервере писало что процедура или функция не обнаружена "КомандаСистемы" да и самом синтаксисе написано что Доступность: Тонкий клиент, толстый клиент
|
|||
17
shuhard
22.12.09
✎
15:09
|
(16) ты ответы не читаешь ?
В (13) показано, что метод выполняющий те же функции доступен на сервере. ключевое слово ТЕ ЖЕ функции |
|||
18
Zixxx
22.12.09
✎
15:09
|
(15) У тебя КомандаСистемы(СтрокаКоманды); в коментах
|
|||
19
Zixxx
22.12.09
✎
15:11
|
(17) А ну тогда о другом подумал, ладно проехали, всем спасибо
|
|||
20
MaxS
22.12.09
✎
15:18
|
(18) можно раскомментировать, работать будет во всех вариантах - серверном и клиентском:
#Если Клиент Тогда КомандаСистемы(СтрокаКоманды); Иначе WshShell=Новый COMОбъект("Wscript.Shell"); WshShell.run(СтрокаКоманды,1,False); #КонецЕсли |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |