Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Определить путь к процессу Добавлено: 27.01.09 16:05  

Автор вопроса:  AWР | Web-сайт: bomber.h17.ru | ICQ: 345685652 
s = "Путь=" + System.Diagnostics.Process.GetProcesses(My.Computer.Name)(23).StartInfo.WorkingDirectory

при этом выходит что s="Путь="
Почему? в чём ошибка объясните

Ответить

  Ответы Всего ответов: 19  

Номер ответа: 1
Автор ответа:
 Page



Вопросов: 5
Ответов: 20
 Профиль | | #1 Добавлено: 27.01.09 16:10
походу путь в начале торчит-неправильно

Ответить

Номер ответа: 2
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #2
Добавлено: 27.01.09 16:25
нет.
s = System.Diagnostics.Process.GetProcesses(My.Computer.Name)(23).StartInfo.WorkingDirectory
чему бы могла быть равна s? правильно s=""
только вот почему? может вообще код для определения пути не такой или что

Ответить

Номер ответа: 3
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #3
Добавлено: 27.01.09 16:28
нет.
s = System.Diagnostics.Process.GetProcesses(My.Computer.Name)(23).StartInfo.WorkingDirectory
чему бы могла быть равна s? правильно s=""
только вот почему? может вообще код для определения пути не такой или что

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 27.01.09 18:56
Process.GetProcesses(My.Computer.Name)(23).StartInfo.WorkingDirectory

Сдается мне, дружище, что ты тут лоханулся по крупному.. И вот почему:
1. My.Computer.Name - возвращает тебе имя компютера,а ты там должен указать имя процесса а не компьютера(к примеру если бы ты искал все процессы блокнота то ты бы там указал notepad потому что именно так называется этот процесс)! Для того, чтобы этот код сработал, у тебя должна работать программа с точно таким же названием как и твой комьютер, что мало вероятно
2. Даже если и так.. допустим, что у тебя есть программа с таким именем и она запущена, то опять таки для работоспособности твоего кода у тебя должно быть запущенно минимум ДВАДЦАТЬ ЧЕТЫРЕ экземпляра(копии) этой программы.
3. Ну и последнее.. что ты наедещься получить от WorkingDirectory? Какой путь тебя интересует? Надеюсь, ты понимаешь что, что это вовсе не тот путь из которого этот процесс запущен?

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 27.01.09 19:14
а если тебя интересует путь именно к исполняемому файлу фалй процесса, то в случае с блокнотом можно поступить следующим образом:
  1.  
  2. using System;
  3. using System.Diagnostics;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.     public class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Process[] processes = Process.GetProcessesByName("notepad");
  12.             if (processes != null && processes.Length != 0)
  13.             {
  14.                 foreach (Process process in processes)
  15.                 {
  16.                     string modulePath = process.MainModule.FileName;
  17.                     Console.WriteLine("Process (ID:{0}) startup path: {1}",process.Id, modulePath);
  18.                 }
  19.             }
  20.             else
  21.                 Console.WriteLine("Process not found...");
  22.  
  23.             /* wait for exit */
  24.             Console.WriteLine("Press any key to exit ...");
  25.             Console.ReadLine();
  26.         }
  27.     }
  28. }

Ответить

Номер ответа: 6
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #6
Добавлено: 27.01.09 22:23
Мне нужен путь к папке в которой лежит ЕХЕ файл процесса.
и не на джава(ты ведь на нем написал вроде)

Ответить

Номер ответа: 7
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #7
Добавлено: 27.01.09 22:25
My.Computer.Name - возвращает тебе имя компютера,а ты там должен указать имя процесса а не компьютера

нет! туда надо писать имя компа на котором искать процесс.

Ответить

Номер ответа: 8
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #8
Добавлено: 27.01.09 22:28
string modulePath = process.MainModule.FileName;
ВСё. по этой строчке всё получилось, спасибо тебе за нее.
надо было просто написать не
s = System.Diagnostics.Process.GetProcesses(My.Computer.Name)(i).StartInfo.WorkingDirectory
а
s = System.Diagnostics.Process.GetProcesses(My.Computer.Name)(i).MainModule.FileName.ToString

Ответить

Номер ответа: 9
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #9
Добавлено: 27.01.09 22:30
вопрос не в тему:как определить на сколько % процесс загружает проц, и как определить насколько загружен проц вообще? в %.

Ответить

Номер ответа: 10
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #10 Добавлено: 27.01.09 23:32
вопрос не в тему

а вот это ты зря.. тут так не делается..
как определить насколько загружен проц вообще?

Это сделать сделать достаточно просто подключившись стандартному счетчику производительности в системе либо достать эти данные через WMI..
вот один из способов
  1.  
  2. using System;
  3. using System.Diagnostics;
  4. using System.Threading;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     public class Program
  9.     {
  10.         private static PerformanceCounter cpuCounter = null;
  11.  
  12.         static void Main(string[] args)
  13.         {
  14.             /* create counter */
  15.             cpuCounter = new PerformanceCounter();
  16.             cpuCounter.CategoryName = "Processor";
  17.             cpuCounter.CounterName = "% Processor Time";
  18.             cpuCounter.InstanceName = "_Total";
  19.  
  20.             Thread thread = new Thread(DoWork);
  21.             thread.IsBackground = true;
  22.             thread.Start();
  23.  
  24.             /* wait for exit */
  25.             Console.WriteLine("Press any key to exit ...");
  26.             Console.ReadLine();
  27.         }
  28.  
  29.         private static void DoWork()
  30.         {
  31.             do
  32.             {
  33.                 Console.WriteLine("Current CPU Usage: {0:F2}%", cpuCounter.NextValue());
  34.                 Thread.Sleep(1000);
  35.             } while (true);
  36.         }
  37.     }
  38. }



как определить на сколько % процесс загружает проц

тут вообще все просто.. настолько просто, что я даже код писать не стану.
Подробности найдешь тут:
http://www.codeproject.com/KB/system/processescpuusage.aspx

Ответить

Номер ответа: 11
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #11
Добавлено: 28.01.09 11:58
# Console.ReadLine();
# }
#
# private static void DoWork()
# {
# do
# {
# Console.WriteLi


Eros, пиши по VB а не по джава, пожалста.
я смог перевести только это
        ;Dim cpu As New Diagnostics.PerformanceCounter()
        cpu.CategoryName = "Processor"
        cpu.CounterName = "% Processor Time"
        cpu.InstanceName = "_Total"
        MsgBox(cpu.NextValue())
а как перевести на нормальный язык это:
# Thread thread = new Thread(DoWork);
# thread.IsBackground = true;
# thread.Start();
?

Ответить

Номер ответа: 12
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #12
Добавлено: 28.01.09 12:01
       вот я написал, а выводит 0 всёравно




 ;Dim th As New Threading.Thread()

        ;Dim cpu As New Diagnostics.PerformanceCounter()
        cpu.CategoryName = "Processor"
        cpu.CounterName = "% Processor Time"
        cpu.InstanceName = "_Total"
        th.IsBackground = True
        th.Start()
        MsgBox(cpu.NextValue())

Ответить

Номер ответа: 13
Автор ответа:
 AWР



ICQ: 345685652 

Вопросов: 38
Ответов: 106
 Web-сайт: bomber.h17.ru
 Профиль | | #13
Добавлено: 28.01.09 12:02
       вот я написал, а выводит 0 всёравно




 ;Dim th As New Threading.Thread()

        ;Dim cpu As New Diagnostics.PerformanceCounter()
        cpu.CategoryName = "Processor"
        cpu.CounterName = "% Processor Time"
        cpu.InstanceName = "_Total"
        th.IsBackground = True
        th.Start()
        MsgBox(cpu.NextValue())

Ответить

Номер ответа: 14
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #14 Добавлено: 28.01.09 13:03

Offtop:
Сцк нервный человек)) Клацает "Сохранить" по пару раз)

Ответить

Номер ответа: 15
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #15 Добавлено: 28.01.09 14:37
Eros, пиши по VB а не по джава

ну раз ты мою "джаву" не понимаешь, то я бессилен тебе чем либо помочь..
удачи

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам