Jump to content

C#. Доступ к памяти другого процесса


Recommended Posts

Здравствуйте. Пишу грубо говоря GUI для одной консольной программы. Очень нужно получить доступ к памяти запущенной консольной программы, получить оттуда значения некоторых переменных (по известному адресу в памяти, как в ArtMoney, например). Как такое сделать в C#?

Заранее спасибо.

Edited by Shadow TH
Link to comment
Share on other sites

@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

  • Upvote 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...