|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Собственно вопрос в теме. Не хочется каждый раз запускать новое приложение. Возможно ли такое в принципе или только Windows messaging pomozhet? Спасибо заранее! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2012, 14:18 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Нет нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2012, 15:08 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
isaeff..Не хочется каждый раз запускать новое приложение..? Подозреваю, что выводы сделаны не правильные, потому что задача поставлена не верно. Опишите чего хотите достичь, возможно и решение найдется. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2012, 12:38 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Я и сам почти уверен , что нельзя, но хотелось подтверждения экспертов:) Описание: Приложение имеет как опцию возможность запуска с кучей параметров с командной строкой. Т.е. например про старте тогда в навигаторе ищется и открывются данные для опр. клиента и т.д. Вопрос: Если приложение уже запущено : можно ли просто командной строкой с параметером открыть например того же клиента НЕ в новом приложении а в уже запущенном? Типа "myapp.exe -customerid 12345" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2012, 15:36 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
19.01.2012 16:36, isaeff пишет: > Вопрос: Если приложение уже запущено : можно ли просто командной строкой > с параметером открыть например того же клиента НЕ в новом приложении Нельзя запустить программу, не запуская программы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2012, 17:08 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Но зато можно изменить таким образом, чтобы обрабатывались аргументы. Или у вас нет доступа к исходному коду? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2012, 18:35 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
isaeffОписание: Приложение имеет как опцию возможность запуска с кучей параметров с командной строкой. Т.е. например про старте тогда в навигаторе ищется и открывются данные для опр. клиента и т.д. Вопрос: Если приложение уже запущено : можно ли просто командной строкой с параметером открыть например того же клиента НЕ в новом приложении а в уже запущенном? Типа "myapp.exe -customerid 12345" Ну и сделайте в приложении сервис выбора клиента. При старте (событие open приложения) туда загоняются параметры из командной строки и обрабатываются. А когда (если) приложение уже открыто, то в окне программы вручную делается выбор клиента + Enter (запуск обработки введенных данных). Можно, конечно, запускать новую копию программы из командной строки с параметрами, а уже запущенное находить и "грохать". Но предполагаю, что вы захотите как в веб-броузере переходить "вперед-назад" между клиентами. Тогда это не подойдет. Что подходит и что лучше - выбор за вами, но и в 1-ом и 2-ом случае нужен доступ к исходному коду. :)) Или у вас нет доступа к исходному коду? (с) spas2001 :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2012, 12:26 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
isaeff, Поправьте, если я не правильно Вас понял... Вы хотите, чтобы в случае, если одна копия приложения уже открыта, а пользователь пытается запустить его повторно, запускалась не новая копия приложения, а активировалась уже запущенная копия. При этом, если попытка запуска второй копии производится с передачей некого набора параметров, этот набор параметров должен быть передан в уже запущенную копию и обработан в ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2012, 12:28 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Ikar, Прошу прощение за молчание. Не было возможности ответить. @Ikar : Да, это именно то, что я имел в виду. Доступ к коду у меня есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 12:27 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Дык, а в чём проблема? 1. При запуске узнаём, что запущен не первый инстанс приложения. 2. Получаем свою командную строку. 3. Передаём её старому инстансу. 4. Завершаемся. Пункт 1 можно организовать, например, через объекты ядра (mutex подойдет), а п. 3, скажем, через memory mapped files. Если игра стоит свеч - MSDN в руки и вперед. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2012, 00:20 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Просто не пойму, зачем тогда такие извращения, если есть доступ к коду, поменяйте как вам нужно и переоткрывайте главное окно приложения ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2012, 16:57 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
создаем в приложении скрытое окно с каким нибудь экзотическим названием. далее с помощью вин-апишной ф-ции FindWindow получаешь хендл окна по имени если с таким названием уже открыто. если хендл не нулевой, используеши PB ф-цию send ( handle, msgNo, lowword, CommandLine ) для отправки текущей коммандной строки в окно уже открытого приложения, и закрываешь текущее приложение. В принимающем окне перехватываешь custom событие которое соответствует msgNo и получаешь комантдную строку из удаленного приложения с помощью Код: sql 1.
затем делаешь чего тебе там надо... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2012, 10:56 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Dmitry., http://www.rsdn.ru/article/baseserv/avins.xml Одно из распространенных народных мнений гласит, что для запрета выполнения множества экземпляров программы можно использовать функцию API FindWindow. Использование этой функции очень опасно. Ваше приложение имеет отличные шансы навсегда зависнуть при выполнении этого вызова. В любом случае, даже если не существует условий, которые привели бы к зависанию, методы, использующие данную функцию, настолько глубоко ошибочны, что они вообще не имеют шансов нормально работать. Существует два сценария сбоя: приложение не запускается или одновременно запускаются несколько экземпляров. Оба варианта абсолютно неудовлетворительны. Но мы выходим за рамки эхотага. Да и вопрошавший, похоже, уже не читает ветку... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2012, 02:27 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
HillBilly, конечно, указывать null в параметре classname для findwindow нехорошо (но я этого и не предлагал). classname у ПБ приложений зависит только от версии ПБ. а для того чтобы не зависеть от меняющихся заголовков окон, я предложил создать скрытое окно со статическим заголовком. по вопросу подвисания скажу следующее: в любом случае второму приложению надо пообщаться с первым доступными методами для ПБ, и если первое приложение висит, то решение решение mutex никак не поможет. резюме: с определенными умениями можно подвесить приложение при использовании любой технологии. ---- кстати в задаче не было условия необходимости блокировки второго экземпляра приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2012, 18:18 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Можно было бы так сделать (прошу не принимать за истину в конечной инстанции:) ) 1. При запуске приложения - проверить через Mutex запущен ли уже клиент 2. Если запущен положить какой-нибудь темповый файл с параметрами 3. В клиенте организовать проверку по таймеру в параллельном потоке 4. При получении файла, распарсить аргументы и в клиенте уже выполнить то, что требуется ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2012, 18:37 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
spas2001, Дык конечно можно. Только темповый файл не нужон. Эт если вы про него в буквальном смысле... Немного генерализируя тему, тяпница как-никак, скажу, что топикстартер, возможно сам того не подозревая, поднял небезынтересную тему - межпроцессное взаимодействие систем, написанных на нашем до слёз любимом PB. Пока мудрый Sybase не прихлопнул distributed PB, межпроцессный обмен любой сложности, локально и распределённо решался штатными средствами PB. Но нынче не то, что давеча. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2012, 03:04 |
|
Можно ли послать командную строку уже запущенному(!) PowerBuilder приложению?
|
|||
---|---|---|---|
#18+
Dmitry., Вас не смущает необходимость обращаться к недокументированным (это я про имя класса) фичам? Вы продолжаете настаивать, что FindWindow is good enough для межпроцессного взаимодействия? Если на оба вопроса вы отвечаете утвердительно, то предлагаю свернуть наш с Вами диалог. Спасибо за общение. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2012, 03:36 |
|
|
start [/forum/search_topic.php?author=Anton+Dymkov&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 1104ms |
total: | 1405ms |
0 / 0 |