Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Dectect a Grid on a Form
Message
 
 
To
07/12/2005 04:26:07
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Network:
Windows XP
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01075605
Message ID:
01075693
Views:
19
>Hi all ,
>
>How can I detect a Grid on a form ?
>How can I detect MS excel ?
>
>Best Regards
* CheckServer.PRG
* Published in _Microsoft Office Automation with Visual FoxPro_,
* Hentzenwerke Publishing, June, 2000.
* www.hentzenwerke.com
* lWordExists = CheckServer("Word.Application")
* Copyright 2000 by Tamar E. Granor and Della Martin All Rights Reserved

LPARAMETER cServerName
if vartype(cServerName)<>"C"
   cServerName = "Word.Application" && Default check for Word
endif   
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
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform