Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Determine existence of objects (Outlook, custom App obje
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00428456
Message ID:
00428594
Vues:
11
Use the same name you use in CreateObject() -- "Outlook.Application"

- della Martin


>Hi Tamar,
>
>Thanks for your reply. I tried your code using 'outlook.exe' as the cServerName parameter and lEXEExists returned .f. (and I do have Outlook installed on my P.C.) Should I be using another value for cServerName for this to return .t.?
>
>Al
>
>
>
>>Here's the code from Della Martin's and my book "Microsoft Office Automation with Visual FoxPro" that lets you check whether a server is present and properly registered:
>>
>>* CheckServer.prg
>>* © 2000, Tamar E. Granor and Della Martin
>>* From: Microsoft Office Automation with Visual FoxPro
>>* Hentzenwerke Publishing. www.hentzenwerke.com
>>
>>LPARAMETER cServerName
>>
>>LOCAL oRegistry, cClassID, cEXEName, lEXEExists, ;
>> aClassIDValues, aClassIDValues, aServerNameValues
>>
>>IF VERSION() = "Visual FoxPro 06"
>> oRegistry = NewObject("Registry", HOME() + "FFC\Registry")
>>ELSE
>> SET PROCEDURE TO HOME() + "samples\classes\registry.prg" ADDITIVE
>> oRegistry = CreateObject("Registry")
>>ENDIF
>>
>>lEXEExists = .F.
>>DECLARE aClassIDValues[1], aServerNameValues[1]
>>
>>WITH oRegistry
>>
>> * Find the CLSID of the server. First, look for
>> * the Class's Key.
>> IF .OpenKey(cServerName + "\CLSID") = 0
>>
>> * The Class's Key is open, now enumerate its values
>> .EnumKeyValues(@aClassIDValues)
>>
>> * The data portion of the first (only) value returned
>> * is the CLSID. Find the LocalServer32 key for the CLSID
>> IF .OpenKey("CLSID\" + aClassIDValues[1,2] + "\LocalServer32") = 0
>>
>> * Enumerate the LocalServer32 values
>> .EnumKeyValues(@aServerNameValues)
>>
>> * The EXE file is stored in the first (only) data value returned.
>> cEXEName = aServerNameValues[2]
>>
>> * The value that's returned may have " -Automation" or " /Automation" or
>> * " /AUTOMATION" & other trailing stuff at the end. Strip it off.
>> IF "AUTO" $ UPPER(cEXEName)
>> cEXEName = LEFT(cEXEName, ATC("AUTO", UPPER(cEXEName)) - 2)
>> ENDIF
>>
>> * Verify that the file exists
>> lEXEExists = FILE(cEXEName)
>>
>> ENDIF
>> ENDIF
>>ENDWITH
>>
>>RETURN lEXEExists
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform