Регистрирайте DLL и ActiveX

Знаете ли как да се регистрирате за контрол OLE като динамичен звено библиотека (DLL) или ActiveX контроли (OCX) файлове от прилагането Delphi?

Една от функциите, които правят популярния Делфи - това е, в повечето случаи, когато се проектира приложение, получава само един изпълним файл, който искате да дадете на клиента.

Въпреки това, в някои случаи, като например, когато импортирате контрол ActiveX към проекта си, ще трябва да се уверите, че контрол ActiveX е регистрирано в машините от потребителите си. Ако контролът не е регистриран, той ще бъде хвърлен EOleSysError.

RegSvr32.exe

Regsvr32.exe - инструмент, който от командния ред регистрира DLL и ActiveX контроли в системата. Можете ръчно да използвате Regsvr32.exe (Windows.Pusk-> Run.) За да се регистрирате или да се отпиша OLE контроли, като DLL PLP ActiveX контрол. които са samoregistriruemymi.

Когато използвате Regsvr32.exe. той се опитва да се зареди на компонента и се обадете за регистриране на DLLSelfRegister функция. Ако опитът е успешен, Regsvr32.exe показва прозорец със съобщение за успешна регистрация.

Regsvr32.exe има следните опции за командния ред:

В Delphi код

За повикване на функцията Regsvr32.exe отвътре Delphi код, имаме нужда от функция, която може да работи изтеглен файл и да го чакам да довърши работата си.

Ето какво трябва да изглежда процедура RegisterOCX:

Забележка: ocxPath променлива указва пътя към Flash.ocx ActiveX контрол.

За да може да се създаде, ActiveX контрол трябва да изпълнява функцията DllRegisterServer. С други думи, тя създава записи в системния регистър за всички класове за управление. Ние не трябва да се притеснявате за функцията DllRegisterServer. ние просто трябва да се уверите, че това е така. За по-голяма простота, ние приемаме, че контрола ActiveX (.OCX) файл, намиращ се в същата папка като вашата кандидатура.

В съответствие ExecAndWait ( "regsvr32", "/ и" + ocxPath); в горния код се нарича Regsvr32.exe. A / S ключ се предава (не показва съобщения), както и пълния път до контрола ActiveX.

ExecAndWait функция използва ShellExecuteExAPI предизвикателство да стартирате файла.