Как передать информацию из лаунчера в мою программу?

Вот в чем дело: я создал программу передачи данных, которая отправляет информацию на мой Arduino через последовательный порт. Я также создал простую программу запуска с базовым пользовательским интерфейсом, чтобы пользователь мог выбрать COM-порт и запустить программу. По сути, это просто приложение Windows Forms с выпадающим списком для COM-порта и кнопкой «Запуск», которая запускает программу передачи.

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

Я просмотрел файлы конфигурации, общие текстовые файлы и т. д., но не нашел ничего, кроме чрезмерно сложных программ.

Любая помощь будет оценена по достоинству!

Спасибо,

Фразич


person Frazic    schedule 09.06.2016    source источник
comment
Не слишком ли много данных для параметров командной строки?   -  person Christopher Oicles    schedule 09.06.2016
comment
@ChristopherOicles Дело в том, что я не использую int main(int argc, char* argv[]), это приложение для форм Windows, поэтому оно работает по событиям, реального основного (или, по крайней мере, я так понимаю) нет.   -  person Frazic    schedule 09.06.2016
comment
Для приложений Forms вы можете использовать Environment::GetCommandLineArgs: msdn.microsoft.com/en-us/library/   -  person Christopher Oicles    schedule 10.06.2016


Ответы (2)


Есть несколько способов сделать это.
1. Запустите программу с параметрами, используя int main(int argc, char* argv[]). Дополнительные сведения: Как анализировать параметры командной строки. И вы можете запустить свой инструмент с помощью: system("C:\\Program Files (x86)\\MyProgram\\transfer.exe ParamCOM");
2. Поместите вашу программу передачи в dll и вызовите ее из вашего графического интерфейса. С помощью этого решения вы можете передавать данные в обоих направлениях во время работы программы передачи.
Пошаговое руководство. Создание и использование динамической ссылки Библиотека (C++)
3. Запишите информацию COM из своего графического интерфейса в файл config.txt, прежде чем вызывать программу передачи. Теперь ваша программа переноса может считать информацию из файла.
4. Чтение памяти из другого процесса с помощью WinAPI. Это не обычный способ, но он работает. Поиск правильных значений не так прост, поэтому я бы предпочел пункты 1-3.

person codeflag    schedule 09.06.2016

Вы можете передавать данные в качестве аргументов командной строки.

Вы можете передавать данные в среду.

Вы можете передать данные в файл на диске.

Вы можете передавать данные через каналы или сокеты между двумя программами.

Вы можете передавать данные через общую память.

И еще... Вариантов много.

person Jesper Juhl    schedule 09.06.2016