Запуск процесса

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Razr
Новичок
Новичок
Аватара пользователя
 
Сообщения: 37
Зарегистрирован: 24.08.2008 (Вс) 20:22
Откуда: Брянская обл, Клинцы

Запуск процесса

Сообщение Razr » 27.08.2008 (Ср) 16:50

У меня тут еще вопрос.
Вот код:
Process.Start("C:\main.exe") - если этот файл существует все ок, а если нет выдается ошибка. А как сделать так, что если этого файла нет, то этот код не обрабатывается, а обрабатывается что-то типа:
MsgBox("Данный файл не найден",48+0,"Ошибка")

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Запуск процесса

Сообщение dr.MIG » 27.08.2008 (Ср) 17:02

Заценить конструкцию

Код: Выделить всё
        Try

        Catch ex As Exception

        End Try
Salus populi suprema lex

Razr
Новичок
Новичок
Аватара пользователя
 
Сообщения: 37
Зарегистрирован: 24.08.2008 (Вс) 20:22
Откуда: Брянская обл, Клинцы

Re: Запуск процесса

Сообщение Razr » 27.08.2008 (Ср) 17:08

Я новичок в VB .NET А можно прислать код именно в моем случае? И еще можете ли вы дать ссылочку на какой - либо учебник по VB .NET

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Запуск процесса

Сообщение dr.MIG » 27.08.2008 (Ср) 17:17

Там же ровно две пустые строчки под две предложенные тобой :)

Код: Выделить всё
Try
      Process.Start("C:\main.exe")
Catch ex As Exception
      MsgBox("Данный файл не найден",48+0,"Ошибка")
End Try


Про учебники посмотри соответствующий раздел на этом форуме, там и спроси, если что. А вообще, сейчас я там вот это обнаружил.
Salus populi suprema lex

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Запуск процесса

Сообщение Williams » 27.08.2008 (Ср) 20:14

dr.MIG писал(а):Там же ровно две пустые строчки под две предложенные тобой :)

Код: Выделить всё
Try
      Process.Start("C:\main.exe")
Catch ex As Exception
      MsgBox("Данный файл не найден",48+0,"Ошибка")
End Try

.


Точнее Catch ex As System.ComponentModel.Win32Exception
И вы думаете, что вас оставят в живых после прочтения этого поста?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: Запуск процесса

Сообщение Sebas » 27.08.2008 (Ср) 21:37

Williams писал(а):
dr.MIG писал(а):Там же ровно две пустые строчки под две предложенные тобой :)

Код: Выделить всё
Try
      Process.Start("C:\main.exe")
Catch ex As Exception
      MsgBox("Данный файл не найден",48+0,"Ошибка")
End Try

.


Точнее Catch ex As System.ComponentModel.Win32Exception


а ещё точнее FileNotFoundException

а ещё можно и проверить io.file.exists
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Запуск процесса

Сообщение Williams » 27.08.2008 (Ср) 22:33

Sebas писал(а):
Точнее Catch ex As System.ComponentModel.Win32Exception

а ещё точнее FileNotFoundException

а ещё можно и проверить io.file.exists


Код: Выделить всё
       Try

            Process.Start("c:\NonExistingFile.ext")

        Catch ex As System.IO.FileNotFoundException

            MsgBox(ex.Message)

        End Try



FileNotFoundException не ловит в данном случае
И вы думаете, что вас оставят в живых после прочтения этого поста?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Запуск процесса

Сообщение ANDLL » 27.08.2008 (Ср) 22:40

Sebas писал(а):а ещё можно и проверить io.file.exists
Этого как раз не нужно. Может быть так что файл есть, а прав нет и тп, так что лучше сразу ловить исключение чем предугадывать его
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Запуск процесса

Сообщение Williams » 27.08.2008 (Ср) 22:42

ANDLL писал(а):
Sebas писал(а):а ещё можно и проверить io.file.exists
Этого как раз не нужно. Может быть так что файл есть, а прав нет и тп, так что лучше сразу ловить исключение чем предугадывать его




MSDN писал(а):
Код: Выделить всё
Try
            ' Get the path that stores user documents.
            Dim myDocumentsPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal)

            myProcess.StartInfo.FileName = myDocumentsPath + "\MyFile.doc"
            myProcess.StartInfo.Verb = "Print"
            myProcess.StartInfo.CreateNoWindow = True
            myProcess.Start()
         Catch e As Win32Exception
            If e.NativeErrorCode = ERROR_FILE_NOT_FOUND Then
               Console.WriteLine((e.Message + ". Check the path."))

            Else
               If e.NativeErrorCode = ERROR_ACCESS_DENIED Then
                  ' Note that if your word processor might generate exceptions
                  ' such as this, which are handled first.
                  Console.WriteLine((e.Message + ". You do not have permission to print this file."))
               End If
            End If
         End Try



В вышеуказанном примере обрабатываются оба основных исключения - ошибка доступа и отсутствие файла.
И вы думаете, что вас оставят в живых после прочтения этого поста?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: Запуск процесса

Сообщение Sebas » 28.08.2008 (Чт) 8:03

ANDLL писал(а):
Sebas писал(а):а ещё можно и проверить io.file.exists
Этого как раз не нужно. Может быть так что файл есть, а прав нет и тп, так что лучше сразу ловить исключение чем предугадывать его


ЭХ, коллега, Вы совершенно забываете о времени выполнения, исключение может отнимать приличные ресурсы.
Конечно же, обработку исключения никто не отменял.
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 88

    TopList