8 / 8 / 2
Регистрация: 26.07.2009
Сообщений: 28
|
|
1 | |
Отследить копию программы01.06.2011, 19:11. Показов 1739. Ответов 7
Метки нет Все метки)
(
Знаю как сделать, чтобы не запускалась копия программы, используя mutex. Но нужно отследить запуск второй программы. Для чего нужно? Запустил программу. Потом запускаешь ещё раз (ещё одну копию но с каким-то параметром), и в первой проге должно поменяться состояние в зависимости от параметра запуска копии. Естественно копию проги не разрешать запускать. Для чего это нужно, а для JumpList.
0
|
|
01.06.2011, 19:11 | |
Ответы с готовыми решениями:
7
отловить запущенную копию программы Отследить вылет сторонеей программы
Как сделать копию программы |
Заблокирован
|
||||||
01.06.2011, 19:19 | 2 | |||||
0
|
8 / 8 / 2
Регистрация: 26.07.2009
Сообщений: 28
|
|
01.06.2011, 22:10 [ТС] | 3 |
Это-то понятно. Вопрос в другом. Вот когда копия программы проверяет о создании оригинала здесь она у тебя при существовании просто выводит сообщение и выходит. А нужно чтобы оригинал изменил своё состояние. Или например накапливал счётчик сколько копий было запущенно. Вроде понятно выражаюсь или нет? Т.е запустил прогу потом ещё одну и ещё одну. В итоге последние две проги тупо завершились, и в первой счётчик стал 2.
Добавлено через 1 минуту Получается нужно как-то уметь обрабатывать событие запуска копии. Надеюсь это возможно без хуков.
0
|
мастер топоров
915 / 740 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
|
|
01.06.2011, 22:46 | 4 |
просто отследить появление можно в лоб: запустить таймер и по событию тика мониторить не появилось ли в процессах нового экземпляра программы. но это костыль. должен быть другой выход.
я не могу понять как вы отследите из первой процесса параметр, с которым запускается новый экземпляр Добавлено через 40 секунд да, а таймер запускать только в первой программе с использованием мьютекса
0
|
8 / 8 / 2
Регистрация: 26.07.2009
Сообщений: 28
|
|
01.06.2011, 23:01 [ТС] | 5 |
Использование таймера - не рационально. Жрёт процессорное время просто так.
Я задаю такой вопрос потому что это нужно для JumpList в Windows 7 для taskbar. В JumpList можно создавать только ссылки на программы или документы. Взять например Месседжер от микрософта. При нажатии правой кнопки на taskbar там можно менять статус. Или взять к примеру обычный qip - тоже можно поменять статус. Делают они как я понял это так: запускается ещё один экземпляр, который проверяет существование другого и если он есть то в нём меняет статус и завершается. Для пользователя как бы ася как была так и есть и статус поменялся. Добавлено через 2 минуты Отследить возможно 100пудова, но как. Ведать нужно WinAPI как-то использовать или хуки, или ещё чего. Может кто-нибудь прочитает и напишет ответ, или хотя бы давай те свои примеры как вы думаете это возможно сделать. Кому интересно прочитайте про JumpList поймёте откуда вытекает проблема.
0
|
44 / 45 / 15
Регистрация: 11.08.2010
Сообщений: 226
|
|
01.06.2011, 23:49 | 6 |
Я бы сделал просто: сделал бы в той программе, ну которая стартует на главном компьютере, серверный класс, а в остальных сделал бы клиент. При коннекте или при приеме одного байта(выбирай любой вариант) бы увеличивал значение переменной count, отключал клиент и все. Процессор это не нагрузит, да и память тоже.
0
|
мастер топоров
915 / 740 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
|
|
02.06.2011, 01:49 | 7 |
ну да, понмаю.
не понял сразу что вы имели в виду под JumpList. вам следует копать в WinAPI. вот ссылка: http://archive.msdn.microsoft.... PICodePack если вы там были - копайтесь ещё. у меня было желание повозиться с этим, но сейчас нет времени. если что накопаете - буду благодарен за примеры
0
|
8 / 8 / 2
Регистрация: 26.07.2009
Сообщений: 28
|
|
03.06.2011, 16:50 [ТС] | 8 |
Спасибо за пример попробую сделать так. Так же спасибо за ссылки нужно почитать и там тоже. Если продвинусь в этой теме отпишусь. На самом деле актуальный вопрос уже пора бы прогать под семёрку. Видел видео на techdays про JumpList, но там этот вопрос как раз не рассматривался.
Добавлено через 4 минуты Использовать клиент-сервер для передачи значений прикольно. Не думал никогда так передавать локально между прогами ))). Ведать на lookup нужно передавать... Всегда использовал при интернет-приложениях, но никак не в локальных... Спасибо за совет. Попробую реальзовать
0
|
03.06.2011, 16:50 | |
Помогаю со студенческими работами здесь
8
Развернуть копию программы из трея Открыть в проводнике одну копию программы. Как залить бутлоадер в китайскую копию arduino nano v3.0(CH340) через копию UNO Как можно открыть и запустить резервную копию программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |