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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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