powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработка команд в одном процессе
7 сообщений из 7, страница 1 из 1
Обработка команд в одном процессе
    #36916202
Здравствуйте.
Ситуация: прога запускается через контекстное меню проводника и в качестве $Command получает имя файла.

Подскажите пожалуйста как быть если файлов было выбрано несколько (соответственно будет запущено несколько копий программы), но при этом требуется обработать их по очереди в одном процессе, кот. не был запущен (для экономии ресурсов) и должен быть убит после окончания обработки файлов?

Надеюсь изложил более - менее понятно :)
Спасибо за внимание.
...
Рейтинг: 0 / 0
Обработка команд в одном процессе
    #36916205
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое, что приходит в голову.
Прога при запуске дописывает полученный параметр в специальный файлик, опосля чего через FindWindow ищет запущенный экземпляр самой себя. Если находит - закрывается. Если не находит начинает обрабатывать файлик, удаляя оттуда записи по мере их обработки и каждый раз проверяя, не появилось ли там что-нибудь еще.
...
Рейтинг: 0 / 0
Обработка команд в одном процессе
    #36916251
Shocker.Pro,
В принципе тоже вариант.
А вот что я придумал: допустим у нас есть 2 программы. Назовем их Clnt и Srv. Clnt запускается проводником с именем файла в качестве команды. Далее Clnt записывает полученную команду в реестр, после чего ищет среди запущеных процессов Srv (например по имени .EXE), если не находит - запускает, если находит - END. Srv проверяет не был ли он уже запущен. Если да, то закрывается, если нет, то читает из реестра записанные туда команды и обрабатывает их. После того, как все они обработаны Srv ещё немного висит в ожидании новых команд и если не получает их, то закрывается.
Нормально или лучше сделать как Вы посоветовали?
...
Рейтинг: 0 / 0
Обработка команд в одном процессе
    #36916257
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, в общем, это то же самое
...
Рейтинг: 0 / 0
Обработка команд в одном процессе
    #36916351
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реестр, файлы... нафиг-нафиг-нафиг.

Программа при старте пытается открыть соединение с localhost:someport.
Если смогла, кидает туда команду и завершается.
Если не смогла, запускает вторую нитку которая открывает серверный сокет на someport и ждет команд. А главная нить в это время обрабатывает стартовую команду. По завершению спрашивает у дочерней нити есть ли там какие команды в очереди - и если есть начинает их обрабатывать. Если дочка отвечает что команд нет - все закрывается.

А если по уму, то надо думать над дизайном прежде чем начинать кодить и почитать вот тут: // http://msdn.microsoft.com/en-us/library/cc144067%28VS.85%29.aspx
...
Рейтинг: 0 / 0
Обработка команд в одном процессе
    #36916406
Фотография alex77755
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор (соответственно будет запущено несколько копий программы)
Может передавать в качестве аргументов список файлов?
Правда я не знаю как это сделать через виндовские возможности так как работаю исключительно через Total Commander, а там это просто:Ctrl+Enter
...
Рейтинг: 0 / 0
Обработка команд в одном процессе
    #36916717
White OwlПрограмма при старте пытается открыть соединение с localhost:someport.
Если смогла, кидает туда команду и завершается.
Если не смогла, запускает вторую нитку которая открывает серверный сокет на someport и ждет команд. А главная нить в это время обрабатывает стартовую команду. По завершению спрашивает у дочерней нити есть ли там какие команды в очереди - и если есть начинает их обрабатывать. Если дочка отвечает что команд нет - все закрывается.
Честно говоря сложновато

White Owlнад дизайном прежде чем начинать кодить
Я этим и занимаюсь

White Owlпочитать вот тут: http://msdn.microsoft.com/en-us/library/cc144067%28VS.85%29.aspx
А это можно реализовать на VB6?

alex77755Может передавать в качестве аргументов список файлов?
Да. Было бы неплохо. Возможно COM как раз и предоставляет такие возможности

alex77755Правда я не знаю как это сделать
Такая же фигня :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обработка команд в одном процессе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]