Vraag & Antwoord

Programmeren

[vb6] OCX/DLL controle

4 antwoorden
  • Ik heb een programma met nogal wat references naar DLL- en OCX-bestanden. Als een van deze bestanden ontbreekt, geeft het programma bij het starten al een foutmelding (geen VB-melding, maar afgevangen door een On Error). Ik wil deze melding echter wat specifieker maken (bijv. "MSCOMCTL.OCX ontbreekt of is niet correct geïnstalleerd"). Is het mogelijk om met bijv. een API call uit te vragen of een bepaalde DLL of OCX geregistreerd is binnen Windows en waar (drive en pad), zodat je ook nog kan kijken of het bestand nog wel bestaat met Dir$ of een FSO?
  • Er is geloof ik een Windows API genaamd GetWindowsDir. Daarmee kan je de string van de Windows folder krijgen. Anders moet je even in de MSDN library kijken (kan ook via internet: http://msdn.microsoft.com). Ikzelf zit nu niet thuis, en heb hier dus ook niet mijn Microsoft Windows API boek.
  • Die API-functie ken ik inderdaad ook. Hiermee kan ik de Windows folder uitvragen. Dit is echter niet wat ik wil. Ik wil kijken of een OCX of DLL wel geregistreerd is bij Windows (mogelijk ken je het commando regsvr32.exe waarmee je dat soort bestanden registreert). Vervolgens kan ik dan actie ondernemen: DLL/OCX niet geregistreerd: Geef melding dat DLL/OCX ontbreekt DLL/OCX wel geregistreerd: Kijk of DLL/OCX inderdaad te vinden is op de geregistreerde plaats; zo ja programma executie normaal vervolgen, zo nee geef melding dat DLL/OCX ontbreekt. Hopelijk is dit wat duidelijker.
  • Ik weet niet hoe je kunt zien welke dll/ocx niet is geregistreerd maar je kunt ze wel stuk voor stuk aflopen en ze opnieuw registreren. Kijken of ze er zijn: stringvar = Dir("pad_en_naam", vbNormal) registreren is makkelijk, shell "regsvr32 /s pad_en_bestand", vbNormalFocus Het opnieuw registreren van bestanden kan geen kwaad en met de /s optie ziet de gebruiker alleen maar een flits en klaar is het, geen window of msgbox die zegt dat de registratie gelukt is. Daarna kun je het programma af laten sluiten en opnieuw opstarten

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.