Înregistrează-te și activex dll

Știu cum să se înregistreze un control OLE, cum ar fi biblioteca de legături dinamice (DLL) sau controale ActiveX (OCX) fișiere din aplicația Delphi?

Una dintre caracteristicile care fac popular Delphi - este, în cele mai multe cazuri, la proiectarea unei aplicații primește doar un singur fișier executabil pe care doriți să dea clientului.

Cu toate acestea, în anumite situații, cum ar fi atunci când importați un control ActiveX pentru proiectul dvs., va trebui să vă asigurați că un control ActiveX este înregistrat pe mașinile utilizatorilor dumneavoastră. În cazul în care controlul nu este înregistrat, acesta va fi aruncat EOleSysError.

RegSvr32.exe

Regsvr32.exe - un instrument care din linia de comandă înregistrează controale DLL și ActiveX în sistem. Puteți utiliza manual Regsvr32.exe (Windows.Pusk-> Executare.) Pentru a înregistra sau pentru a anula înregistrarea controalelor OLE, cum ar fi controlul ActiveX DLL PLP. care sunt samoregistriruemymi.

Când utilizați Regsvr32.exe. încearcă să încarce componenta și îi apelează funcția DLLSelfRegister. Dacă încercarea are succes, Regsvr32.exe afișează o fereastră cu mesajul despre înregistrarea cu succes.

Regsvr32.exe are următoarele opțiuni de linie de comandă:

În codul Delphi

Pentru a apela instrumentul Regsvr32.exe din cadrul Delphi cod, avem nevoie de o funcție care poate rula fișierul descărcat și așteptați pentru el să termine treaba.

Iată ce să caute procedura de RegisterOCX:

Notă: ocxPath variabilă specifică calea controlului flash.ocx ActiveX.

Pentru a fi capabil de a crea, de control ActiveX trebuie să pună în aplicare funcția DllRegisterServer. Cu alte cuvinte, se creează intrările de registry pentru toate clasele de management. Noi nu ar trebui să vă faceți griji cu privire la funcția DllRegisterServer. trebuie doar să ne asigurăm că este. Din motive de simplitate, vom presupune că fișierul controlul ActiveX (.OCX) situate în același dosar ca cererea dumneavoastră.

În linia ExecAndWait ( 'regsvr32', '/ s' + ocxPath); în codul de mai sus se numește Regsvr32.exe. un comutator / s este transmis (nu afișa mesaje), precum și calea completă la controlul ActiveX.

Funcția ExecAndWait utilizează ShellExecuteExAPI provocare pentru a rula fișierul.