Come posso trovare in Visual C++ se un file OCX (ad esempio flash.ocx) è registrato o meno?Come posso trovare in Visual C++ se un file OCX (ad esempio flash.ocx) è registrato o meno?
risposta
Se vuoi dire dal file ocx in sé, probabilmente si sono due opzioni:
leggere la libreria dei tipi dal OCX, analizzare le UUID degli oggetti e di interfaccia e vedere se tutto esistere nel registro HKCR \ CLSID, HKCR \ TypeLib ecc
loop attraverso tutti gli oggetti registrati negli HKCR \ CLSID nel registro di sistema e vedere se qualcuno di loro riferimento vostra oCX come riferimento InprocServer32. Potrebbe essere necessario eseguire un'espansione delle variabili di percorso e di ambiente sul percorso che si legge per testare la corrispondenza.
Il primo metodo non necessariamente dire se è la stessa versione del .OCX installato, anche se (anche se è possibile verificare il percorso sul disco per ciascuno). Il secondo è, purtroppo, molto lento.
Probabilmente è più semplice registrare nuovamente l'ocx che penserei.
È possibile verificare se il clsid di ocx è in HKEY_CLASSES_ROOT. Ecco un semplice codice che uso per rilevare su runtime per verificare se un ocx specificato è registrato.
#include<windows.h>
...
//Check if an ocx is resisted, and push warning
HKEY subKey = NULL;
LONG ret = RegOpenKeyEx(HKEY_CLASSES_ROOT, _T("CLSID\\{XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX}"), NULL, KEY_QUERY_VALUE|KEY_WOW64_32KEY, &subKey);
//Note that some CLSID of versioned ocx is under HKEY_CLASS_ROOT\TypeLib\{XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX}
if(ret != ERROR_SUCCESS)
{
TCHAR message[512];
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,ret,0,message,512,NULL);
CString msgStr = message;
#ifdef DEBUG //Extra message on DEBUG mode
AfxMessageBox(msgStr.GetBuffer());
#endif
AfxMessageBox(_T("OCX not registered"), MB_OK);
}
else
{
AfxMessageBox(_T("OCX is registered"), MB_OK);
RegCloseKey(subKey); //Remember to close opened key handle.
}
- 1. Come posso verificare se un file è o meno un'immagine?
- 2. Python - Controlla se un file è vuoto o meno
- 3. come trovare Sidekiq è in esecuzione o meno
- 4. Come verificare se NFC è abilitato o meno in Android?
- 5. python: scopri se è in esecuzione o meno nella shell (ad esempio la coda del motore della griglia solare)
- 6. Come verificare se un carattere è cifra o meno in Objective-C?
- 7. Come verificare se un'attività è in esecuzione o meno
- 8. Determinare se una parola è un nome o meno
- 9. Come rilevare se Java Runtime è installato o meno
- 10. Se utilizzare CMS o meno
- 11. Come verificare se 3g è attivo o meno in Android
- 12. verifica se un pacchetto è presente o meno
- 13. Come ottenere se un osservatore è registrato in Swift
- 14. Come sapere se node.js è installato o meno
- 15. Controlla se l'url è valido o meno
- 16. Come leggere i file .rej, ad esempio
- 17. Come si rileva se un file è stato rinominato utilizzando Cocoa o meno?
- 18. Come posso determinare se un determinato file è in realtà un file MP3?
- 19. Come posso verificare se un identificatore di riutilizzo è già stato registrato con un UITableView?
- 20. Controllare se un bit è impostato o meno
- 21. Come posso rilevare se una finestra del browser è focalizzata o meno?
- 22. come verificare se allow_url_fopen è abilitato o meno
- 23. come scoprire se esiste o meno un attributo in XSL
- 24. Come posso verificare se un enum è definito o meno ignorando il caso?
- 25. Come posso avviare un processo che non è un file in Go (ad esempio, aprire una pagina web)
- 26. Come posso fare una visualizzazione ad albero ripensare se è necessaria o meno una barra di scorrimento orizzontale?
- 27. Controlla se il dominio è registrato
- 28. Come identificare se un processo è java o c o C++ process in linux?
- 29. "AnalyticsReceiver non è registrato o è disabilitato."
- 30. È possibile animare un PolyLineSegment in Silverlight, ad esempio PointCollection?