2015-09-16 4 views
0

Я создаю программу типа менеджера задач, и мне нужно получить путь к каждому файлу. Я не хочу, чтобы узнать каталог из моего собственного исполняемого файла. Просто внешние файлы.Получить путь к execuatble в vb.net?

Это начало получения исполняемого файла:

For Each OneProcess As Process In Process.GetProcesses 
+0

Какой язык вы используете? –

+0

Пожалуйста, введите код отступа в четыре пробела, вместо того чтобы сделать его полужирным. Кроме того, было бы полезно знать, на каком языке вы кодируете. Добавьте это к своему вопросу путем редактирования, а также добавьте соответствующий тег. – Anders

+0

@ Anders Спасибо за комментарий. Я изменил название. Надеюсь, теперь это лучше. Иногда я могу получить код в поле «код», но иногда я не могу заставить его работать. Но еще раз спасибо :) – jumper

ответ

0

Чтобы найти имя каталога и файла любого использования MainModule.FileFileName Здесь Process пример кода, чтобы помочь

System.Diagnostics.Process mm22= System.Diagnostics.Process.GetProcessesByName("notepad")[0]; 
string stp = mm22.MainModule.FileName; //location of the executable with filename 
+0

Большое спасибо за ответ. Я сейчас возвращаюсь на эту страницу. Еще новичок здесь и не знал, что все мои вопросы были на моей странице «профиля»? – jumper

+0

Исключение было выбрано на второй строке. Я делаю vb.net и на самом деле не знаю C# слишком много. Я запускал код через конвертер C# в VB, и это то, с чем он пришел ... это тугая часть stp, которая генерирует исключение. Dim mm22 Как System.Diagnostics.Process = Process.GetProcessesByName (OneProcess.ProcessName) (0) Dim СТП As String = mm22.MainModule.FileName – jumper

+0

Вот ошибка: System.ComponentModel.Win32Exception было необработанное ErrorCode = -2147467259 HResult = -2147467259 Сообщение = Доступ запрещен NativeErrorCode = 5 – jumper

0

У меня было то же самое проблема .. найти ответы, получить близко, но это было не то, что я был за исключением, то я увидел GetProcessesByName, который напомнил мне javascript..so я изменил его на GetProcessById.

For Each p In System.Diagnostics.Process.GetProcesses() 
    ListBox1.Items.Add(p.ProcessName & " - " & p.Id.ToString() & " - ") 
Next 
Dim id = ListBox1.SelectedItem.ToString.Split("-")(1).Trim 
Dim p As System.Diagnostics.Process = System.Diagnostics.Process.GetProcessById(id) 
MsgBox(p.MainModule.FileName)