none
Имя объектов потока RRS feed

  • Вопрос

  • Добрый день, у меня возникла сложная ситуация с возможностью определения имени конечного обекта потока, то есть, от куда идет поток в (любом) процессе (стартовый адрес) я мого определить а вот к чему этот поток обращаеться файл, библиотека.... (если не замыкаеться на себя) я не в состоянии найти, как это можно реализовать при использовании C#/WMI/WinAPI.

    PS. За раниие благодарен, можно хотя бы ссылочку.
    29 ноября 2014 г. 19:46

Ответы

Все ответы

  • Есть такая утилита - Process Monitor (ProcMon). Можно попробовать вызывать её из своего приложения в командном режиме и парсить логи от неё.
    29 ноября 2014 г. 21:16
  • Нашел утилиту для решения проблемы но ни как не могу получить вывод

    public async void ProcessHandle()
                {
                    Process InfoHandle = new System.Diagnostics.Process();
                    InfoHandle.StartInfo.FileName = "cmd.exe";
                    //InfoHandle.StartInfo.Arguments = "Ping 192.168.1.1";
                    InfoHandle.StartInfo.RedirectStandardInput = true;
                    InfoHandle.StartInfo.RedirectStandardOutput = true;
                    InfoHandle.StartInfo.UseShellExecute = false;
                    InfoHandle.StartInfo.CreateNoWindow = true;
                    InfoHandle.StartInfo.WorkingDirectory = Environment.SystemDirectory;
                    InfoHandle.Start();
                    InfoHandle.StandardInput.WriteLineAsync("handle -a -p " + RequestWMI_Process.AbbreName[Form1.BufIndex].ToString());
                    Task <string> StringsHandle = InfoHandle.StandardOutput.ReadToEndAsync();
                    InputFromPropertyProcess.textBox1.Text = await StringsHandle;
                    //InputFromPropertyProcess.listBox6.Items.Add(StringsHandle[1]);
                    //InputFromPropertyProcess.listBox6.Items.Add(StringsHandle[2]);
                }

    В Win7 перехват вывода строки ещё как то работает а Win8.1 оно (Окно) зависает, без результата.


    1 декабря 2014 г. 16:55
  • Он зависает на этой строке Task <string> StringsHandle = InfoHandle.StandardOutput.ReadToEndAsync(); Попробовал зделать так string StringsHandle = InfoHandle.StandardOutput.ReadToEnd(); то же самое, то есть на сколько понимаю он не может завершить операцию чтения вывода.
    1 декабря 2014 г. 22:42