1 | |
Запуск программы через командную строку с одним аргументом05.07.2017, 07:17. Показов 2053. Ответов 6
Метки нет (Все метки)
Здравствуйте, возникла необходимость реализовать следующее:
При запуске программы через командную строку с одним аргументом, этот аргумент проходит через Main (string[] args), где создается объект главной формы, вызывая конструктор с одним параметром, являющимся как раз этим аргументом. Этот аргумент осуществляет определенное действие на форме. Теперь вопрос, как осуществить, чтобы при повторном запуске программы (так же через командную строку, но с другим аргументом) на той же форме выполнилось второе действие (нового аргумента) с сохранением всего, включая результат первого действия.
0
|
05.07.2017, 07:17 | |
Ответы с готовыми решениями:
6
Передача значений аргументов через командную строку Запуск exe с аргументом Запуск программы через командную строку Цикл в цикле, зацикливание, запуск программы через командную строку |
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
||||||||||||||||
05.07.2017, 12:39 | 2 | |||||||||||||||
Нужно сохранять состояние формы между запусками. Можно через настройки, но лучше не нужно, т.к. вычисления к настройкам не относятся.
Поэтому нужна модель данных. Состояние этой модели нужно читать при старте, изменять в соответствии с параметрами командной строки, передавать в форму для отображения и сохранять при выходе из приложения. Итого: Модель данных, которая хранит целое число.
1
|
05.07.2017, 21:12 [ТС] | 3 |
Спасибо вам большое, реализация подошла для первоначальной задачи. Однако недавно выяснилось, что все необходимо делать в одной форме, то есть открыв один раз, больше не создавать объектов Form. Можно ли как-нибудь подогнать ваш метод?
0
|
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
06.07.2017, 07:00 | 4 |
это называется синглтон, если речь идёт о форме, т.е. объекте существующем в единственном экземпляре, пока запущено приложение.
Ежели речь идёт об одном экземпляре приложения, то это совсем другая задача.
0
|
06.07.2017, 07:38 [ТС] | 5 |
В данный момент речь идет все-таки об одном экземпляре приложения. То есть запусков через командную строку может быть более одного с разными аргументами, а приложение должно запуститься только один раз (при первом запуске), и аргументы должны выполнять соответствующие действия каждый раз именно в открытом приложении.
Пробовал реализовать это при помощи findWindow() и SendMessage(), но никак не выходит. Не подскажете какую-нибудь идею реализации, возможно, стоит что-то изучить для этого
0
|
8940 / 4852 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
|
|
06.07.2017, 09:43 | 6 |
Сообщение было отмечено Donil как решение
Решение
Donil, это посложнее. Есть вариант
1
|
06.07.2017, 13:45 [ТС] | 7 |
Большое спасибо вам, все получилось!
0
|
06.07.2017, 13:45 | |
06.07.2017, 13:45 | |
Помогаю со студенческими работами здесь
7
Запуск через командную строку Запуск через командную строку Запуск через командную строку Запуск через командную строку Запуск програмки через командную строку Запуск через командную строку с параметрами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |