Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разное поведение процесса в Win7 и в Win10, скрытые процессы в Win7 и в Win10 
:(
    Опции темы
kuzyaka
Дата 5.12.2015, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 17.12.2006

Репутация: нет
Всего: нет



Вкратце суть проблемы: если процесс скрытый, то под Win7 возникает исключение на Process.Kill, а под Win10 нет.
Если процесс открытый, то разночтений нет.
Вот пример функции, где это проявилось. :
Код
  Function ПроверкаРегистрацииSSH() As Boolean

    Dim MyProcessPlink As Process
Начало:
    MyProcessPlink = New Process
    MyProcessPlink.StartInfo.FileName = "plink.exe"
    MyProcessPlink.StartInfo.Arguments = "192.168.0.1"
    MyProcessPlink.StartInfo.UseShellExecute = False
    MyProcessPlink.StartInfo.RedirectStandardError = True
    MyProcessPlink.StartInfo.RedirectStandardOutput = True
    MyProcessPlink.StartInfo.CreateNoWindow = True
    AddHandler MyProcessPlink.OutputDataReceived, AddressOf NetOutputDataHandler
    AddHandler MyProcessPlink.ErrorDataReceived, AddressOf NetErrorDataHandler
    strOutputSSH = ""
    strErrorSSH = ""
    MyProcessPlink.Start()
    MyProcessPlink.BeginOutputReadLine()
    MyProcessPlink.BeginErrorReadLine()

    For n As Integer = 1 To 25
      If strErrorSSH.Length > 0 Then
        If strErrorSSH.Contains("The server's rsa2 key fingerprint is:") Or strErrorSSH.Contains("The new rsa2 key fingerprint is:") Then
          Try
            MyProcessPlink.Kill()
            MyProcessPlink.WaitForExit()
            MyProcessPlink.Close()
          Catch ex As Exception
          End Try
          If РегистрацияSSH("192.168.0.1") Then
            GoTo Начало
          Else
            sbОшибкиАрхивации.AppendLine(Now.ToShortTimeString.ToString + " Ошибка регистрации SSH:" + vbCrLf + strErrorSSH)
            Return False
          End If
        End If
      End If
      Application.DoEvents()
      Thread.Sleep(100)
    Next
    Try
      MyProcessPlink.Kill()
      MyProcessPlink.WaitForExit()
      MyProcessPlink.Close()
    Catch ex As Exception
    End Try
    If strOutputSSH.Length > 0 Then
      If strOutputSSH.Contains("login as:") Then
        Return True
      End If
    Else
      sbОшибкиАрхивации.AppendLine(Now.ToShortTimeString.ToString + " Ошибка регистрации SSH:" + vbCrLf + strErrorSSH)
      Return False
    End If

  End Function

В этой функции проблемным местом оказался этот кусок:
Код
    Try
      MyProcessPlink.Kill()
      MyProcessPlink.WaitForExit()
      MyProcessPlink.Close()
    Catch ex As Exception
    End Try

здесь под Win7 возникает исключение на Process.Kill, а под Win10 нет
Если процесс запускается открытым, то убивать вручную его надо и там и там.
Целевая платформа - .NET 4.0.
Что такого в этом плане стало не так в 10-ке по сравнению с 7-кой?

Это сообщение отредактировал(а) kuzyaka - 6.12.2015, 20:18
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1140 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.