Shadow TH Опубликовано 6 ноября, 2012 Жалоба Поделиться Опубликовано 6 ноября, 2012 (изменено) Здравствуйте. Пишу грубо говоря GUI для одной консольной программы. Очень нужно получить доступ к памяти запущенной консольной программы, получить оттуда значения некоторых переменных (по известному адресу в памяти, как в ArtMoney, например). Как такое сделать в C#? Заранее спасибо. Изменено 6 ноября, 2012 пользователем Shadow TH Ссылка на комментарий Поделиться на другие сайты Поделиться
mrBingo Опубликовано 8 ноября, 2012 Жалоба Поделиться Опубликовано 8 ноября, 2012 @Shadow TH, обычно консольные программы ведут текстовый диалог с пользователем. Так как в нашем случае пишется GUI то я так понимаю консольное приложение запускается и используется его функционал. Вполне можно воспользоваться классом Process из пространства System.Diagnostics примерно так: Process p = new Process();p.StartInfo.FileName = "файл консольного приложения";p.StartInfo.Arguments = "Аргументы командкной строки";p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; //прячем окно консольного приложенияp.StartInfo.RedirectStandardInput = true; //сообщаем, что вводом команд управляем мыp.StartInfo.RedirectStandardOutput = true; //сообщаем, что вывод ответа читаем мыp.Start();p.StandardInput.WriteLine("отправляем команду");string ret = p.StandardOutput.ReadLine(); //читаем ответ незабываем так же подключить System.IO для чтения/записи потоков если этого недостаточно, то стоит копать в сторону небезопасного кода (работа с указателями как в c++) или в сторону WinApi функции ReadProcessMemory 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Shadow TH Опубликовано 8 ноября, 2012 Автор Жалоба Поделиться Опубликовано 8 ноября, 2012 Ясненько. Спасибо, попробуем :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти