anoniem Geplaatst: 12 januari 2003 Delen Geplaatst: 12 januari 2003 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? Quote Link naar reactie
anoniem Geplaatst: 13 januari 2003 Auteur Delen Geplaatst: 13 januari 2003 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. Quote Link naar reactie
anoniem Geplaatst: 13 januari 2003 Auteur Delen Geplaatst: 13 januari 2003 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. Quote Link naar reactie
anoniem Geplaatst: 13 januari 2003 Auteur Delen Geplaatst: 13 januari 2003 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 Quote Link naar reactie
anoniem Geplaatst: 13 januari 2003 Auteur Delen Geplaatst: 13 januari 2003 [quote:bdd7ad86ea="RubeL"]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?[/quote:bdd7ad86ea] pseudo code: [code:1:bdd7ad86ea] Created = "Creeer ActiveX object" if Created then "OK" else "Er is een probleem. Mogelijk is object x niet geregistreerd en/of aanwezig." endif [/code:1:bdd7ad86ea]of [code:1:bdd7ad86ea] on error goto errhandler obj = createobject("bla.bla.object") exit function errhandler: msgbox("kan activex object niet creeeren") [/code:1:bdd7ad86ea] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen