Yanıtlar:
Bu bağlantıyı buldum: Bir DLL dosyasının kayıtlı olup olmadığını nasıl anlarım? :
DLL kaydının isteğe bağlı işlemleri kapsayabileceği göz önüne alındığında, kaydın rastgele bir DLL için gerçekleştirilip gerçekleştirilmediğini belirlemenin genel amaçlı bir yolu yoktur.
Bir DLL dosyasının kayıtlı olup olmadığını belirlemek için, etki alanına özgü bilgileri getirmeniz gerekir. Bir DLL'nin belirli bir CLSID'ye sahip bir COM nesnesini kaydettiğini biliyorsanız, CLSID'nin gerçekten kayıtlı olup olmadığını kontrol edebilirsiniz.
Tamam, imkansız, ama DLL genellikle kendilerini kayıt defterinde bir giriş oluşturarak kaydeder. Bir geçici çözüm şudur:
reg query HKCR\CLSID | find /i "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"
Daha iyi bir cevap GUID'i dosyadan önce doğrudan dosyadan bulmama izin verir. En azından bu şekilde, başarıyla yüklenip yüklenmediğini doğrulamak için bir komut dosyası oluşturabilirsiniz.
REG QUERY
DLL dosya adını aramak için kullanın .
Belirli bir adda bir DLL dosyasının kayıtlı olup olmadığını kontrol etmem gerekiyordu ve bu komutu BAT'ımda kullandım:
reg query HKLM\SOFTWARE\Classes /s /f whatever.dll
if errorlevel 1 goto DLL_MISSING
Errorlevel ile reg query
hiçbir şey bulamadığında etikete kontrol gönderdi . Kayıt defterinin aradığınız bölümünü değiştirmeniz gerekebilir (benim durumumda HKLM'...
ne kadar belirgin olursa o kadar hızlı, aksi takdirde gerçekten uzun sürer).
Gerekirse çıktı işlenebilir, girdi için GUID elde edilebilir, ancak bu reg query komutunun kapsamı dışındadır.
Komut satırından bir DLL dosyasının kayıt defteri girdilerini (ve isteğe bağlı olarak COM nesnelerini) bulmak için , @ virgo47 ve @ neves tarafından verilen yanıtların bir kombinasyonu benim için en iyi sonucu verdi.
reg sorgu HKLM \ YAZILIM \ Sınıflar / s / f whatever.dll
/s /f "{GUID}"
daha hızlı olmalıdır | findstr /i "{GUID}"
. Ve | find /i "{GUID}"
bir yazım hatası gibi görünüyor (ancak henüz Serverfault hakkında yorum yazamıyorum)
"HKCR \ CLSID / s / f" için sorgu sorgu "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"