FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9268
Вход
Функции для проверки установлено ли (word,excel, ...) на компьютере пользователя

написаны для скрытия кнопок в тоолбаре при его инициализации если программа отсутствует


 
Прислал: oav   Категория: Разное


&& Функции для проверки - установлено ли (word,excel, ...) на компьютере пользователя
&& написано для скрытия кнопок в тоолбаре при его инициализации если программа отсутствует.
&& 16-01-2007 Автор: Омеличев А.В. написаны по материалам конференции www.foxclub.ru
&& если будут комментарии, то напишите свои отзывы

  
  SET TALK OFF  
  CLEAR  
    
  ? 'WordExists() = '  
  ?? WordExists()  
  ? 'ExcelExists() = '  
  ?? ExcelExists()  
  ? 'OfficeReg("Word") = '  
  ?? OfficeReg("Word")  
  ? 'OfficeReg("EXCEL") = '  
  ?? OfficeReg("EXCEL")  
  ? 'OfficeReg("aCCeSS") = '  
  ?? OfficeReg("aCCeSS")  
  ? 'OfficeReg("publisher") = '  
  ?? OfficeReg("publisher")  
  ? 'OfficeReg("poWerPOint") = '  
  ?? OfficeReg("poWerPOint")  
  ?  
  ? 'OfficeReg("MyProg") = '  
  ?? OfficeReg("MyProg")  
  ?? ' - ошибка, заданый параметр lcOfficeType не входит в число искомых'  
  ?  
  ? 'OfficeReg(1234) = '  
  ?? OfficeReg(1234)  
  ?? ' - ошибка, заданый параметр lcOfficeType не текст'  
  ?  
  ? 'Перечень ошибок возвращаемых функцией OfficeReg()'  
  ? 'RETURN -1 - ошибка, заданый параметр lcOfficeType не текст'  
  ?  
  ? 'RETURN -2 - ошибка, заданый параметр lcOfficeType не входит в число искомых'  
  ?  
  ? 'RETURN -3 - ошибка OLE или в реестре нет ключа для заданного параметра'  
  ? '                   на компьютере пользователя данная программа не установлена'  
  ?  
  ? 'RETURN 0  - в реестре ключ найден, но используется программа не Microsoft Office'  
  ?  
  ? 'RETURN 1  - Ок. ключ реестре найден и используется программа Microsoft Office'  
    
    
  FUNCTION WordExists  
  PRIVATE poReg1, poReg2,poShell  
  TRY  
  	poShell = CreateObject("WScript.Shell")  
  	poReg1  = poShell.RegRead("HKEY_CLASSES_ROOT\\.doc\\")  
  	poReg2  = poShell.RegRead("HKEY_CLASSES_ROOT\\.doc\\Content Type")  
  CATCH  
  	EXIT  
  ENDTRY  
  IF (VARTYPE(poReg1) = "C" .AND. !ISNULL(poReg1)) .AND.;  
     (VARTYPE(poReg2) = "C" .AND. !ISNULL(poReg2))  
  	RETURN IIF(("WORD" $ UPPER(poReg1)) .AND.;  
  	           ("WORD" $ UPPER(poReg2)),.T.,.F.)  
  ELSE  
  	RETURN .F.  
  ENDIF  
  ENDFUNC  
    
  FUNCTION ExcelExists  
  PRIVATE poReg1, poReg2, poShell  
  TRY  
  	poShell = CreateObject("WScript.Shell")  
  	poReg1  = poShell.RegRead("HKEY_CLASSES_ROOT\\.xls\\")  
  	poReg2  = poShell.RegRead("HKEY_CLASSES_ROOT\\.xls\\Content Type")  
  CATCH  
  	EXIT  
  ENDTRY  
  IF (VARTYPE(poReg1) = "C" .AND. !ISNULL(poReg1)) .AND.;  
     (VARTYPE(poReg2) = "C" .AND. !ISNULL(poReg2))  
  	RETURN IIF(("EXCEL" $ UPPER(poReg1)) .AND.;  
  	           ("EXCEL" $ UPPER(poReg2)),.T.,.F.)  
  ELSE  
  	RETURN .F.  
  ENDIF  
  ENDFUNC  
    
  FUNCTION OfficeReg  
  PARAMETERS lcOfficeType  
  PRIVATE poReg1, poReg2, poShell, pcExtension  
  IF VARTYPE(lcOfficeType) = "C" .AND. !ISNULL(lcOfficeType)  
  	lcOfficeType = UPPER(ALLTRIM(lcOfficeType))  
  	DO CASE  
  		CASE lcOfficeType == "WORD"  
  			pcExtension = "doc"  
  		CASE lcOfficeType == "EXCEL"  
  			pcExtension = "xls"  
  		CASE lcOfficeType == "ACCESS"  
  			pcExtension = "mdb"  
  		CASE lcOfficeType == "POWERPOINT"  
  			pcExtension = "ppt"  
  		CASE lcOfficeType == "PUBLISHER"  
  			pcExtension = "pub"  
  	OTHERWISE  
  		RETURN -2 && ошибка, заданый параметр lcOfficeType не входит в число искомых  
  	ENDCASE  
  	TRY  
  		poShell = CreateObject("WScript.Shell")  
  		poReg1  = poShell.RegRead("HKEY_CLASSES_ROOT\\.&pcExtension\\")  
  		poReg2  = poShell.RegRead("HKEY_CLASSES_ROOT\\.&pcExtension\\Content Type")  
  	CATCH  
  		EXIT  
  	ENDTRY  
  	IF (VARTYPE(poReg1) = "C" .AND. !ISNULL(poReg1)) .AND.;  
  	   (VARTYPE(poReg2) = "C" .AND. !ISNULL(poReg2))  
  		RETURN IIF((lcOfficeType $ UPPER(poReg1)) .AND.;  
  		           (lcOfficeType $ UPPER(poReg2)),1,0)  
  	ELSE  
  		RETURN -3 && ошибка OLE или в реестре нет ключа для заданного параметра  
                    && на компьютере пользователя данная программа не установлена'		  
  	ENDIF  
  ELSE  
  	RETURN -1 && ошибка, заданый параметр lcOfficeType не текст  
  ENDIF  
  ENDFUNC  
    
  

 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (2.375) Вложение [1.26]kb
Дополнения пользователей
Функции для проверки установлено ли (word,excel, ...) на компьютере пользователя
[+][?]
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика