8 / 8 / 2
Регистрация: 26.07.2009
Сообщений: 28
|
|
1 | |
Отследить копию программы01.06.2011, 19:11. Показов 1795. Ответов 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
|
мастер топоров
916 / 741 / 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
|
мастер топоров
916 / 741 / 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 | |
03.06.2011, 16:50 | |
Помогаю со студенческими работами здесь
8
Развернуть копию программы из трея Открыть в проводнике одну копию программы. Как залить бутлоадер в китайскую копию arduino nano v3.0(CH340) через копию UNO Как можно открыть и запустить резервную копию программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |