Как определить, извлекся ли оптический привод

Я пытаюсь извлечь оптический диск на ПК с Windows, подключенным к устройству автоматической смены дисков. У меня есть следующий скрипт powershell, который работает большую часть времени:

$path=$args[0]
$sh = New-Object -Comobject "Shell.Application"
$sh.Namespace(17).Items() | 
    Where-Object { $_.Type -eq "Removable Disc" } |
    foreach { 
        if($_.Path -eq $path) { $_.InvokeVerb("Eject") }
    }

Однако иногда это не работает, предположительно потому, что Windows считает, что диск все еще используется.

Можно ли как-нибудь получить от этого код ответа, чтобы узнать, успешно ли он извлек диск? Или иначе сказать, если диск все еще установлен?

Кроме того, кто-нибудь знает хороший способ сделать это на C++, что было бы еще лучше, поскольку я мог бы избежать необходимости вызывать отдельный скрипт...

0 ответов

Другие вопросы по тегам