Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению? / 17 сообщений из 17, страница 1 из 1
18.01.2012, 14:18
    #37620040
isaeff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Собственно вопрос в теме.
Не хочется каждый раз запускать новое приложение.
Возможно ли такое в принципе или только Windows messaging pomozhet?

Спасибо заранее!
...
Рейтинг: 0 / 0
18.01.2012, 15:08
    #37620224
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Нет нельзя.
...
Рейтинг: 0 / 0
19.01.2012, 12:38
    #37621853
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
isaeff..Не хочется каждый раз запускать новое приложение..?
Подозреваю, что выводы сделаны не правильные, потому что задача поставлена не верно.
Опишите чего хотите достичь, возможно и решение найдется.
...
Рейтинг: 0 / 0
19.01.2012, 15:36
    #37622455
isaeff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Я и сам почти уверен , что нельзя, но хотелось подтверждения экспертов:)

Описание: Приложение имеет как опцию возможность запуска с кучей параметров с командной строкой. Т.е. например про старте тогда в навигаторе
ищется и открывются данные для опр. клиента и т.д.
Вопрос: Если приложение уже запущено : можно ли просто командной строкой с параметером открыть например того же клиента НЕ в новом приложении
а в уже запущенном? Типа "myapp.exe -customerid 12345"
...
Рейтинг: 0 / 0
19.01.2012, 17:08
    #37622743
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
19.01.2012 16:36, isaeff пишет:

> Вопрос: Если приложение уже запущено : можно ли просто командной строкой
> с параметером открыть например того же клиента НЕ в новом приложении

Нельзя запустить программу, не запуская программы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.01.2012, 18:35
    #37622944
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Но зато можно изменить таким образом, чтобы обрабатывались аргументы. Или у вас нет доступа к исходному коду?
...
Рейтинг: 0 / 0
20.01.2012, 12:26
    #37623762
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
isaeffОписание: Приложение имеет как опцию возможность запуска с кучей параметров с командной строкой. Т.е. например про старте тогда в навигаторе
ищется и открывются данные для опр. клиента и т.д.
Вопрос: Если приложение уже запущено : можно ли просто командной строкой с параметером открыть например того же клиента НЕ в новом приложении
а в уже запущенном? Типа "myapp.exe -customerid 12345"
Ну и сделайте в приложении сервис выбора клиента. При старте (событие open приложения) туда загоняются параметры из командной строки и обрабатываются. А когда (если) приложение уже открыто, то в окне программы вручную делается выбор клиента + Enter (запуск обработки введенных данных).
Можно, конечно, запускать новую копию программы из командной строки с параметрами, а уже запущенное находить и "грохать". Но предполагаю, что вы захотите как в веб-броузере переходить "вперед-назад" между клиентами. Тогда это не подойдет.
Что подходит и что лучше - выбор за вами, но и в 1-ом и 2-ом случае нужен доступ к исходному коду. :))

Или у вас нет доступа к исходному коду? (с) spas2001 :))
...
Рейтинг: 0 / 0
20.01.2012, 12:28
    #37623765
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
isaeff,

Поправьте, если я не правильно Вас понял...

Вы хотите, чтобы в случае, если одна копия приложения уже открыта, а пользователь пытается запустить его повторно, запускалась не новая копия приложения, а активировалась уже запущенная копия. При этом, если попытка запуска второй копии производится с передачей некого набора параметров, этот набор параметров должен быть передан в уже запущенную копию и обработан в ней.
...
Рейтинг: 0 / 0
24.02.2012, 12:27
    #37676464
isaeff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Ikar,

Прошу прощение за молчание. Не было возможности ответить.
@Ikar :
Да, это именно то, что я имел в виду. Доступ к коду у меня есть.
...
Рейтинг: 0 / 0
08.03.2012, 00:20
    #37696095
HillBilly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Дык, а в чём проблема?
1. При запуске узнаём, что запущен не первый инстанс приложения.
2. Получаем свою командную строку.
3. Передаём её старому инстансу.
4. Завершаемся.

Пункт 1 можно организовать, например, через объекты ядра (mutex подойдет), а п. 3, скажем, через memory mapped files. Если игра стоит свеч - MSDN в руки и вперед.
...
Рейтинг: 0 / 0
10.03.2012, 16:57
    #37697870
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Просто не пойму, зачем тогда такие извращения, если есть доступ к коду, поменяйте как вам нужно и переоткрывайте главное окно приложения
...
Рейтинг: 0 / 0
20.03.2012, 10:56
    #37712955
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
создаем в приложении скрытое окно с каким нибудь экзотическим названием.
далее с помощью вин-апишной ф-ции FindWindow получаешь хендл окна по имени если с таким названием уже открыто.

если хендл не нулевой, используеши PB ф-цию send ( handle, msgNo, lowword, CommandLine ) для отправки текущей коммандной строки в окно уже открытого приложения, и закрываешь текущее приложение.

В принимающем окне перехватываешь custom событие которое соответствует msgNo
и получаешь комантдную строку из удаленного приложения с помощью
Код: sql
1.
cmd=string(lparam,'address')


затем делаешь чего тебе там надо...
...
Рейтинг: 0 / 0
22.03.2012, 02:27
    #37717061
HillBilly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Dmitry.,
http://www.rsdn.ru/article/baseserv/avins.xml Одно из распространенных народных мнений гласит, что для запрета выполнения множества экземпляров программы можно использовать функцию API FindWindow. Использование этой функции очень опасно. Ваше приложение имеет отличные шансы навсегда зависнуть при выполнении этого вызова. В любом случае, даже если не существует условий, которые привели бы к зависанию, методы, использующие данную функцию, настолько глубоко ошибочны, что они вообще не имеют шансов нормально работать. Существует два сценария сбоя: приложение не запускается или одновременно запускаются несколько экземпляров. Оба варианта абсолютно неудовлетворительны. Но мы выходим за рамки эхотага. Да и вопрошавший, похоже, уже не читает ветку...
...
Рейтинг: 0 / 0
23.03.2012, 18:18
    #37720587
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
HillBilly,

конечно, указывать null в параметре classname для findwindow нехорошо (но я этого и не предлагал).
classname у ПБ приложений зависит только от версии ПБ.
а для того чтобы не зависеть от меняющихся заголовков окон, я предложил создать скрытое окно со статическим заголовком.
по вопросу подвисания скажу следующее:
в любом случае второму приложению надо пообщаться с первым доступными методами для ПБ,
и если первое приложение висит, то решение решение mutex никак не поможет.

резюме: с определенными умениями можно подвесить приложение при использовании любой технологии.
----

кстати в задаче не было условия необходимости блокировки второго экземпляра приложения.
...
Рейтинг: 0 / 0
23.03.2012, 18:37
    #37720614
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Можно было бы так сделать (прошу не принимать за истину в конечной инстанции:) )
1. При запуске приложения - проверить через Mutex запущен ли уже клиент
2. Если запущен положить какой-нибудь темповый файл с параметрами
3. В клиенте организовать проверку по таймеру в параллельном потоке
4. При получении файла, распарсить аргументы и в клиенте уже выполнить то, что требуется
...
Рейтинг: 0 / 0
24.03.2012, 03:04
    #37721077
HillBilly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
spas2001,
Дык конечно можно. Только темповый файл не нужон. Эт если вы про него в буквальном смысле...

Немного генерализируя тему, тяпница как-никак, скажу, что топикстартер, возможно сам того не подозревая, поднял небезынтересную тему - межпроцессное взаимодействие систем, написанных на нашем до слёз любимом PB. Пока мудрый Sybase не прихлопнул distributed PB, межпроцессный обмен любой сложности, локально и распределённо решался штатными средствами PB. Но нынче не то, что давеча.
...
Рейтинг: 0 / 0
24.03.2012, 03:36
    #37721089
HillBilly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
Dmitry.,
Вас не смущает необходимость обращаться к недокументированным (это я про имя класса) фичам?
Вы продолжаете настаивать, что FindWindow is good enough для межпроцессного взаимодействия?
Если на оба вопроса вы отвечаете утвердительно, то предлагаю свернуть наш с Вами диалог. Спасибо за общение.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению? / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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