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 Ясненько. Спасибо, попробуем :) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.