Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Device Manager (Диспетчер Устройств) не открывается нормально из кода на Win10 1709 / 3 сообщений из 3, страница 1 из 1
07.12.2017, 16:01
    #39566006
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Device Manager (Диспетчер Устройств) не открывается нормально из кода на Win10 1709
При программной установке "девайсов",
у меня прога показывает юзеру Device Manager (Диспетчер Устройств), даб ему не сильно скушно было (что-то происходит, девайсы какие-то устанавливаются).

В основе - командная строка, вот эта:
Код: vbnet
1.
rundll32.exe devmgr.dll, DeviceManager_Execute



Код простенький, лет 10 ему, всегда и везде работал:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    Shell_Net("rundll32.exe", "devmgr.dll, DeviceManager_Execute", ProcessWindowStyle.Normal)


  Public Sub Shell_Net(ByVal PathName As String, _
                       Optional ByVal Parameters As String = vbNullString, _
                       Optional ByVal Style As ProcessWindowStyle = ProcessWindowStyle.Normal)
    Dim ExecInfo As New ProcessStartInfo
    With ExecInfo
      .FileName = PathName
      .Arguments = Parameters
      .WindowStyle = Style
    End With
    Process.Start(ExecInfo)
  End Sub



На сборке Win10 v.1709 стал выводить msgbox (как на скриншоте),
типа "диспетчер работает только для чтения"
это при том что код всегда вызывается под администратором .

Мне в принципе пофиг как он работает, моя цель его показать на экран и мне этот msgbox (который к слову еще и с кнопками в classic-стиле!!! MS жжет) нафиг не нужен.

Пробовал другие варианты:
Код: vbnet
1.
2.
3.
    Shell("rundll32.exe devmgr.dll, DeviceManager_Execute", AppWinStyle.NormalFocus)

    Shell("cmd /c rundll32.exe devmgr.dll, DeviceManager_Execute", AppWinStyle.NormalFocus)


(что в общем тоже самое). На 1709 выводит это дебильное окно. Под админом!!! в том числе. До 1709 такого не было.

А вот если
Пуск -> Выполнить
Пуск -> Командная строка
Пуск -> Командная строка (администратор)
и там вбить эту команду,
то ничего подобного не выводится, просто запускает Device Manager.

И че стало не хватать приложению? Привилегий каких?
Есть идеи? (кроме идеи не пытаться вообще выводить диспетчер)
...
Рейтинг: 0 / 0
07.12.2017, 16:50
    #39566064
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Device Manager (Диспетчер Устройств) не открывается нормально из кода на Win10 1709
Дмитрий77,
Сообщение окну по win api close?
...
Рейтинг: 0 / 0
07.12.2017, 17:24
    #39566099
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Device Manager (Диспетчер Устройств) не открывается нормально из кода на Win10 1709
Petro123Дмитрий77,
Сообщение окну по win api close?
Не, эта хрень (в смысле диспетчер устройств) по другому закрывается:
Код: vbnet
1.
2.
    'закрываем Диспетчер Устройств
    Shell_Net("cmd", "/c taskkill.exe /f /im mmc.exe", ProcessWindowStyle.Hidden)


(уродину - msgbox на 1709 эта команда кстати тоже закроет)
по "win api close" ты его как ловить будешь? С учетом локализации?

Короче разрулил, вот так выводит "диспетчер" без msgbox на 1709:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    'открываем Диспетчер Устройств
    If sys_WinXP Or sys_Win2003 Then
      Try : Shell_Net("mmc.exe", "devmgmt.msc", ProcessWindowStyle.Normal) : Catch : End Try
    Else
      If sys_Win10 And Environment.OSVersion.Version.Build > 16298 Then ' 16299 == 1709 == Fall Creator Update
        Try : Shell_Net("mmc.exe", "devmgmt.msc", ProcessWindowStyle.Normal) : Catch : End Try
      Else
        Try : Shell_Net("rundll32.exe", "devmgr.dll, DeviceManager_Execute", ProcessWindowStyle.Normal) : Catch : End Try
      End If
    End If


А вообще я этот код на XP еще использовал
Я вот честно уже не помню с какого перепоя я поменял "mmc.exe devmgmt.msc" на "rundll32.exe devmgr.dll, DeviceManager_Execute" начиная с висты.
Но перепроверять на всем что между XP и 1709 неохота, поэтому сойдет двойное условие.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Device Manager (Диспетчер Устройств) не открывается нормально из кода на Win10 1709 / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]