PDA

Ver la Versión Completa : Liberar un objeto Com


marcosl
24-10-2007, 22:57:24
Estoy creando un objeto "x"

var
MiObj: OleVariant;
begin
try
MiObj := CreateOleObject('x');
finnally
MiObj := Unassigned;
end
end;


El tema es que abro es Administrador de tareas y sigue corriendo "x"

¿Como puedo hacer para liberarlo?.

cHackAll
25-10-2007, 00:10:19
procedure TForm1.Button1Click(Sender: TObject);
var Word: OleVariant;
begin
Word := CreateOleObject('Word.Application');

...

Word.Quit;
end;

Creo que es un tema relacionado al ActiveX con el que estes trabajando, en el ejemplo anterior SI finaliza el proceso independientemente de la asignación del objeto porque tiene el método 'Quit' que finaliza el proceso.

Te recomiendo: tienes el nombre de la Clase ('x'), abres el regedit, te vas a HKEY_CLASSES_ROOT y buscas tal cadena SOLO en los Datos, no en Claves ni Valores, al encontrarlo veras una Clave que dice LocalServer32, en el caso de ejemplo del 'DAO.DBEngine.36' verías algo como 'C:\Archivos de programa\Archivos comunes\Microsoft Shared\DAO\dao360.dll', con eso obtendrás el archivo que es el ActiveX... lo abres con Delphi y podrás ver todos sus métodos... talvez con ello encuentres un "Quit", "Exit", "Free", o algo que sea lo que buscas.

PD: Gracias por ayudarme a contestar egostar ;).

Saludos