Ir al contenido


Foto

[RESUELTO] Saber si tengo instalado un programa o ActiveX en específico


  • Por favor identifícate para responder
11 respuestas en este tema

#1 Fleon

Fleon

    Advanced Member

  • Miembros
  • PipPipPip
  • 172 mensajes
  • LocationRepública Dominicana

Escrito 28 septiembre 2009 - 01:24

Holas a todos, eso, necesito saber si hay alguna forma de saber si tengo instalado un programa o ActiveX en específico, el objetivo de eso es que al ejecutar mi sistema verificar si tiene algún ActiveX o programa instalado que requiera y avise al usuario en caso de no tenerlo. ¿se puede?.

Fleon xD
  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 28 septiembre 2009 - 02:38

Holas a todos, eso, necesito saber si hay alguna forma de saber si tengo instalado un programa o ActiveX en específico, el objetivo de eso es que al ejecutar mi sistema verificar si tiene algún ActiveX o programa instalado que requiera y avise al usuario en caso de no tenerlo. ¿se puede?.

Fleon xD




Una manera de hacerlo es haciendo uso de la función loadlibrary. Si te devuelve 0 es que no encuentra el activex. de otra manera si está registrado.

aquí un ejemplo:



delphi
  1. //esto te devolvera 0:
  2.  
  3. ShowMessage(IntTostr(LoadLibrary('SomeActivex.Ocx') );
  4.  
  5. //Esto te devolverá un valor diferente:
  6.  
  7. ShowMessage(IntTostr(LoadLibrary('hhctrl.ocx') );



saludos.




  • 0

#3 Fleon

Fleon

    Advanced Member

  • Miembros
  • PipPipPip
  • 172 mensajes
  • LocationRepública Dominicana

Escrito 29 septiembre 2009 - 11:55

Hola Poliburro, muchas gracias, estoy haciendo la prueba, estoy probando si tengo flash, en mi pc tengo Flash10c.ocx en la dirección C:\WINDOWS\system32\Macromed\Flash, con el code queda así:



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3. ShowMessage(IntTostr(LoadLibrary('Flash10c.ocx')));
  4. end;



Pero siempre me devuelve 0 :s, ¿qué podrá ser?¿estoy haciendo algo mal?.

Fleon xD
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 29 septiembre 2009 - 11:59

Hola, intenta colocar la ruta completa ;)
  • 0

#5 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 29 septiembre 2009 - 12:11

Hola Poliburro, muchas gracias, estoy haciendo la prueba, estoy probando si tengo flash, en mi pc tengo Flash10c.ocx en la dirección C:\WINDOWS\system32\Macromed\Flash, con el code queda así:



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3. ShowMessage(IntTostr(LoadLibrary('Flash10c.ocx')));
  4. end;



Pero siempre me devuelve 0 :s, ¿qué podrá ser?¿estoy haciendo algo mal?.

Fleon xD


prueba esa misma función amigo colocando la ruta donde se encuentra ese ocx :p en mi caso es c:\Windows\System32\Macromed\flash\Flash10c.ocx'

saludos
  • 0

#6 Fleon

Fleon

    Advanced Member

  • Miembros
  • PipPipPip
  • 172 mensajes
  • LocationRepública Dominicana

Escrito 29 septiembre 2009 - 12:33

Gracias enecumene y Poliburro, haciendolo así me da un valor de 268435456 ¿es correcto? ^o|

Fleon xD

  • 0

#7 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 29 septiembre 2009 - 01:33

Gracias enecumene y Poliburro, haciendolo así me da un valor de 268435456 ¿es correcto? ^o|

Fleon xD


totalmente correcto amigo, ese valor corresponde al handle de la libreria. Cuando el valor es cero significa que no pudo ser cargada


  • 0

#8 Fleon

Fleon

    Advanced Member

  • Miembros
  • PipPipPip
  • 172 mensajes
  • LocationRepública Dominicana

Escrito 30 septiembre 2009 - 06:11

totalmente correcto amigo, ese valor corresponde al handle de la libreria. Cuando el valor es cero significa que no pudo ser cargada


Perfecto, Muchas gracias Poliburro!

Fleon xD
  • 0

#9 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 30 septiembre 2009 - 10:37


Gracias enecumene y Poliburro, haciendolo así me da un valor de 268435456 ¿es correcto? ^o|

Fleon xD


totalmente correcto amigo, ese valor corresponde al handle de la libreria. Cuando el valor es cero significa que no pudo ser cargada



Pregunta: Y sólo puede NO cargarse porque no se encontró ? ^o| No existe alguna otra causa por la que se impida la carga y se confunda ésto con una ausencia del programa o del ActiveX ? :$ sorry, no se, por eso pregunto...

Saludox ! :D
  • 0

#10 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 30 septiembre 2009 - 10:46



Gracias enecumene y Poliburro, haciendolo así me da un valor de 268435456 ¿es correcto? ^o|

Fleon xD


totalmente correcto amigo, ese valor corresponde al handle de la libreria. Cuando el valor es cero significa que no pudo ser cargada



Pregunta: Y sólo puede NO cargarse porque no se encontró ? ^o| No existe alguna otra causa por la que se impida la carga y se confunda ésto con una ausencia del programa o del ActiveX ? :$ sorry, no se, por eso pregunto...

Saludox ! :D


Otra causa  sería que el Activex no haya sido registrado con RegServ32
  • 0

#11 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 30 septiembre 2009 - 11:02

....
Otra causa  sería que el Activex no haya sido registrado con RegServ32


Y cómo podríamos saber que fue por su ausencia y no por esto que mencionas que no se ha cargado ? :$

[off-topic]aaahhh pero qué ganas de molestar :$[/off-topic]

Saludox ! :D
  • 0

#12 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 30 septiembre 2009 - 11:08

Y cómo podríamos saber que fue por su ausencia y no por esto que mencionas que no se ha cargado ? :$


Se podría combinar con FileExists, LoadLibrary y en una lectura del registro, deja ver si encuentro tiempo de crear una función o procedimiento que combine las tres cosas.

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.