On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 3084
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 21:05. Заголовок: Как передать результат между ДВУМЯ exe-никами ?


Как решить задачу: есть 2 моих ехе-ника, как вернуть результат действия второго ехе-ника в первый, который вызывает второй ?
Ну типа такой задачи - из основного модуля вызывается доп.модуль EXE-ник (печать или почтовик и т.д.).
Вот результат действий доп.модуля (отпечатал юзер документ или нет, ушло письмо на почту или нет) нужно вернуть в основной модуль, и результат записать с той записи в базе, откуда вызывался доп.модуль.
Просто юзер может уйти с этой записи, или как то запретить уходить с этой записи, пока запущен Доп.модуль ?
Может это и извращение, но нужно в базе видеть что было сделано с этой записью.
Как можно реализовать такой алгоритм ?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 16 [только новые]





Пост N: 77
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 12.11.13 21:15. Заголовок: В этой же таблице в этой же записи


А что мешает - В этой же (совместной расшаренной) таблице в этой же записи
заполнить поле-отметку результата выполнения дочернего exe
( он ее и заполнит, если запись не будет блокирована )

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3712
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.13 21:25. Заголовок: Andrey пишет: Как м..


Andrey пишет:

 цитата:
Как можно реализовать такой алгоритм ?


как вариант результат работы дочернего модуля записать в массив и сохранить его в файл а из основного модуля
считать данные массива.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3086
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 21:41. Заголовок: petr707 пишет: ( он..


petr707 пишет:

 цитата:
( он ее и заполнит, если запись не будет блокирована )


Запись блокирована в основной программе.

Dima пишет:

 цитата:
как вариант результат работы дочернего модуля записать в массив и сохранить его в файл а из основного модуля
считать данные массива.


А как быть, если юзер уйдет с этой записи ? Или вообще закроет базу ?
А в доп.модуле еще ничего не сделает ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 79
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 12.11.13 21:59. Заголовок: Вопросы не вполне понятны


какое дело дочернему процессу , что будет делать родитель?

Вы передайте ему - номер или ИД записи таблицы, в которую нужно занести результат.
У дочернего процесса - свой контекст исполнения, как будто это еще один юзер
основной проги.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3713
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.13 22:51. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как быть, если юзер уйдет с этой записи ? Или вообще закроет базу ?
А в доп.модуле еще ничего не сделает ?


Ну мона устроит ожидание если то что делает дочерняя прога не длится очень долго . Ждать результата от нее
и анализировать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3087
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.11.13 23:34. Заголовок: Dima пишет: Ну мона..


Dima пишет:

 цитата:
Ну мона устроит ожидание если то что делает дочерняя прога не длится очень долго .


Каким образом ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3714
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.13 23:51. Заголовок: Andrey пишет: Каким..


Andrey пишет:

 цитата:
Каким образом ?


Мы этот вопрос уже похоже проходили.
Создай файлик какой нить из основной проги и жди пока его не удалит дочерняя прога
Возможно мьютексы можно заюзать.............(не проверял)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 991
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 13.11.13 09:55. Заголовок: Еще можно вести для ..


Еще можно вести для таких целей самостоятельную базу-журнал-лог-событий и там смотреть кто что и когда сделал.
А результат можно вернуть след. образом:
 
func main()
local cOut, cErr, cCommand
cCommand := "mingw32-make.exe"
t1 := hb_processRun( cCommand, , @cOut, @cErr )
?"cOut=",cOut
?"cErr=",cErr
?"t1=",t1
return nil

результат:
C:\dev\test\hb_procces\>aa.exe 

cOut=
cErr= mingw32-make.exe: *** No targets specified and no makefile found. Stop.

t1= 2


с другой прогой:
func main() 
local cOut, cErr, cCommand
cCommand := "arj t arh.arj"
t1 := hb_processRun( cCommand, , @cOut, @cErr )
?"cOut=",cOut
?"cErr=",cErr
?"t1=",t1
return nil


результат:
C:\dev\test\hb_procces\>aa.exe 

cOut= ARJ32 v 3.10, Copyright (c) 1998-2004, ARJ Software Russia. [23 Jun 2005]

Extended attributes enabled
Can't find arh.arj

Found 1 error(s)!

cErr=
t1= 6


т.е. смотреть cOut и cErr

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3088
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.11.13 12:59. Заголовок: AlexMyr То что нужн..


AlexMyr
То что нужно !
Спасибо БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3038
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.11.13 13:51. Заголовок: Функцией ErrorLevel(..


Функцией ErrorLevel( <nValue> ) можно установить значение ErrorLevel 2-й программы, которое потом проанализировать после вызова __Run() или hb_processRun() в вызывающей программе.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3089
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.11.13 14:06. Заголовок: Pasha, спасибо ! Хоч..


Pasha, спасибо !
Хочется большего, передать не только код, но и еще строковые данные...

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3715
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.11.13 14:34. Заголовок: Andrey пишет: Хочет..


Andrey пишет:

 цитата:
Хочется большего, передать не только код, но и еще строковые данные...


Вариант FT_SAVEARR, FT_RESTARR

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3090
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.11.13 17:16. Заголовок: Dima пишет: Вариант..


Dima пишет:

 цитата:
Вариант FT_SAVEARR, FT_RESTARR



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 81
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 13.11.13 17:48. Заголовок: dbf- не только...


dbf - Это не только место хранения данных (обмена) для разных юзеров одной программы,
но и разных программ одного юзера! :-)

P/s/ Cмайлики почему-то перестали вставляться!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3091
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.11.13 16:57. Заголовок: petr707 пишет: но и..


petr707 пишет:

 цитата:
но и разных программ одного юзера! :-)



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 9
Зарегистрирован: 22.09.13
ссылка на сообщение  Отправлено: 02.01.16 00:06. Заголовок: AlexMyr пишет: func..


AlexMyr пишет:

 цитата:
func main()
local cOut, cErr, cCommand
cCommand := "mingw32-make.exe"
t1 := hb_processRun( cCommand, , @cOut, @cErr )
?"cOut=",cOut
?"cErr=",cErr
?"t1=",t1
return nil



Подскажите, где посмотреть про hb_processRun() более подробно?
Особенно нужен перечень и трактовка возвращаемых значений, здесь t1
Как понимаю, по ним можно судить об удачности выполнения запускаемого процесса.
Спасибо!


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 240
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет