#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. Закрытие дескриптора за пределами знаний программы, которая его создала, является крайне плохой идеей, потому что эта другая программа может впоследствии получить доступ к осиротевшему дескриптору—и если его повторно использовать как что-то другое, может возникнуть много веселья (например, случайное повреждение файла).