Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Como testar...????
Message
General information
Forum:
Visual FoxPro
Category:
ActiveX controls in VFP
Miscellaneous
Thread ID:
00611170
Message ID:
00611447
Views:
23
This message has been marked as a message which has helped to the initial question of the thread.
Oi Rodolfo,


A presença do arquivo em disco não é garantia que o mesmo esteja funcionando...


Concordo plenamente. O programa abaixo, que é para funcionar em um .PRG, testa as entradas no Registry para verificar se existe uma chave abaixo da chave "HKEY_CLASSES_ROOT" com o ProgID do controle a ser testado. Caso exista, deverá existir uma subchave chamada CLSID com o respectivo valor para o controle. Note que isto também não garante que o controle esteja funcionando ;-) já que poderia existir a chave mas os arquivos poderiam estar ausentes ou corrompidos. Mas, de qualquer forma já é um teste básico...
LPARAMETERS tcProgID

#DEFINE HKEY_CLASSES_ROOT -2147483648  && Extraído de REGISTRY.H

CLEAR

LOCAL lcProgID
LOCAL lcCLSID
lcProgID = IIF(EMPTY(tcProgID), "", ALLTRIM(tcProgID))

IF EMPTY(lcProgID) 
  ? "ProgID inválido" 
  RETURN 
ENDIF

LOCAL loRegistry
loRegistry = NEWOBJECT("Registry", HOME()+"\FFC\Registry.VCX")

IF loRegistry.GetRegKey("", "", lcProgID + "\CLSID", HKEY_CLASSES_ROOT) != 0
   ? "Não existe entrada no Registro para este ProdID"
   RETURN
ENDIF

lcCLSID = ""
loRegistry.OpenKey(lcProgID + "\CLSID", HKEY_CLASSES_ROOT)
loRegistry.GetKeyValue("", @lcCLSID)

IF loRegistry.GetRegKey("", lcCLSID , lcProgID + "\CLSID", HKEY_CLASSES_ROOT) != 0
   ? "Não existe CLSID para este ProdID"
   RETURN
ENDIF

? "Existe o registro para o ProgID"
-----
Fabio Vazquez
http://www.fabiovazquez.com
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform