Jump to content
СофтФорум - всё о компьютерах и не только

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


Recommended Posts

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

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

Edited by Shadow TH
Link to post
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 post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...