Форум » GUI » Как предотвратить второй запуск программы в МиниГуи ? » Ответить

Как предотвратить второй запуск программы в МиниГуи ?

Andrey: Делаю программу на МиниГуи, типа меню запуска других программ. Хочу вызывать свои доп. ЕХЕ-ники (терминалки на хХарборе) из главного меню программы на МиниГуи. Вызовом ShellExecute(). Как сделать, чтоб повторно нельзя было запускать уже запущенную программу ? Я пока знаю 2 варианте: 1) Можно было бы писать файл-семафора что запущена программа, а при завершении терминалки удалять этот файл. Но это как-то не солидно... И при случайном сбое, нельзя будет запустить программу. 2) Поискать в памяти запущенный процесс (окно с именем). Но это ТОРМОЗА - я уже наталкивался на эти грабли. По России уже наблюдал 3 случая "тормозов" при проверке повторного запуска программы (я писал об этом в другой ветке, здесь на форуме). Какие еще варианты можно использовать ?

Ответов - 27, стр: 1 2 All

Andrey: Нет не надо так, это слишком много. Достаточно типа такого: харбор-переходник для стандартной winapi-функции (см. MSDN) - выводит заданное окно на передний план ! Самое главное здесь (см. MSDN) Я думаю и другие поймут, где дальше искать !

SergKis: Andrey пишет: не хочется связываться с внешними программами. На мой взгляд, это тот случай, когда можно воспользоваться внешними программами, т.к. по мере обрастания мясом (кодом) основной программы, эти куски спокойно выкидываются - зато времени экономится много. И если в HB и МиниГуи основным является (gfilatov2002 пишет): 1) главное руководство для программиста - это исходники библиотеки (см. файл h_controlmisc.prg) 2) см. файл c_windows.c ... Т.е. требуется неплохое знание C, WinApi, ... . А если этого нет, то надо искать альтернативы, пока не накопятся знания по C, WinApi, ... . Повторюсь в AutoIt3 есть хорошая РУССКАЯ документация с примерами. AutoIt в Википедии

Andrey: SergKis пишет: На мой взгляд, это тот случай, когда можно воспользоваться внешними программами, т.к. по мере обрастания мясом (кодом) основной программы, эти куски спокойно выкидываются - зато времени экономится много. Ну конечно в чем то вы и правы. Хотя после объяснения gfilatov2002 я понял как мне можно реализовать "свои желания" в данном меню запуска других программ !!! Сделаю самодостаточный пример для других и отправлю его gfilatov2002 !


Andrey: Сделал самодостаточный пример ! Кому интересно смотрите - http://files.mail.ru/KNQW28

busiki: Andrey пишет: Сделал самодостаточный пример ! Кому интересно смотрите - http://files.mail.ru/KNQW28 Файл не найден.

gfilatov2002: Andrey пишет: Сделал самодостаточный пример Этот пример будет доступен в следующей сборке библиотеки Минингуи

Andrey: busiki пишет: Файл не найден. Выложил временно здесь http://zalil.ru/33053195



полная версия страницы