У меня есть программа, написанная в foxpro (~ shudder ~), которую я унаследовал.Приведение активной программы на передний план - с завихрением
Проблема в том, что в ней есть некоторые элементы управления COM. Когда вы начинаете 2 копии, вторая копия будет вызывать ошибки. Поэтому я подумал, что это можно очистить, чтобы доставить активную копию на передний план, разрешая только один экземпляр.
Это было бы хорошо, но программа принимает параметр командной строки, позволяя ему запускаться в другом режиме. Вы можете использовать только одну копию в каждом режиме, например.
1)
"program /bos"
"program /pos" = OK
2)
"program /pos"
"program /pos" = NOT OK
То, что я хотел бы это
"program /pos"
"program /pos" - Bring currently running pos instance to the front.
"program /bos" - start a BOS instance.
"program /bos" - bring the bos instance to the front.
Я надеюсь, что имеет смысл. Что является изящным способом определить, работает ли исполняемый экземпляр программы в pos или bos режиме, чтобы я мог определить, какой процесс вывести на передний план или начать новую копию в запрошенном режиме.
Мне не обязательно нужен код foxpro здесь, хотя это было бы хорошо. Концепция - это то, что мне нужно, и некоторые подсказки в отношении функций API Windows для ее достижения также помогут. например можете ли вы определить параметры командной строки для запущенного процесса?
Я думаю, re на что-то с именованными мьютексами, и вы правы в командной строке. Наверное, я могу записать id процесса pos или bos в текстовый файл. – Matt
@Matt - Или вы можете использовать именованный раздел общей памяти для совместного использования HWND или любой другой информации, которая вам нужна ... – Aaron