Закрывающие ручки внешней программы (VB)

#vb.net #handle

#vb.net #справляться

Вопрос:

Я очень новичок в Visual Basic и хочу создать простой пользовательский интерфейс для закрытия 1 определенного дескриптора в приложении, отличном от того, которое я создаю.

Я искал везде в Интернете, но не смог найти решение. Я работаю с Visual Studio 2019 и хочу иметь функцию, аналогичную Process Explorer.

Комментарии:

1. Вы не можете этого сделать… Вы не можете закрыть ручку внешней программы так же, как не можете закрыть двери в доме вашего соседа из своей гостиной. Ваша программа может закрывать только те дескрипторы, которые у нее открыты.

2. @CodyGray Итак, как это делает ProcessExplorer?

3. @Dai Process Explorer использует для этого драйвер ядра. (Вот почему эта опция доступна только при запуске Проводника процессов с повышенными правами, поскольку для установки драйвера ядра требуются права администратора.) Естественно, невозможно написать драйвер ядра в VB или VB.NET, так что этот конкретный подход недоступен для задающего этот вопрос.

4. @CodyGray VB.NET можно было бы использовать для написания обертки handle.exe , хотя

5. Закрытие дескриптора за пределами знаний программы, которая его создала, является крайне плохой идеей, потому что эта другая программа может впоследствии получить доступ к осиротевшему дескриптору—и если его повторно использовать как что-то другое, может возникнуть много веселья (например, случайное повреждение файла).