Форум » [x]Harbour » Проверка наличия в системе ОФИСА ! » Ответить

Проверка наличия в системе ОФИСА !

Andrey: Всем привет ! Подскажите, как можно проверить наличие ОФИСОВ под различные версии Windows ? Для Ms Word можно попытаться открыть через OLE свой файл. Если не открылся, значит нет его на компе ! Для Ms Excel тоже пройдет данный вариант. А как быть с OpenOffice: Write & Calc ??? Подскажите пожалуйста надежное решение.

Ответов - 39, стр: 1 2 All

Pasha: Вместо oObj := TOleAuto():new(cServer) надо вызывать: oObj := NewOle(cServer) и проверять: if oObj # nil ... Static func NewOle(cServer) Local oServer, hObj Begin sequence #ifdef __XHARBOUR__ hObj := CreateOleObject( cServer ) if OleError() == 0 oServer := TOleAuto():new( hObj ) #else hObj := Win_OleCreateObject( cServer ) if ! Empty( hObj ) oServer := Win_OleAuto():new( hObj ) #endif #ifdef __HARBOUR__ oServer:cClassName := cServer #endif endif end if oServer == nil MsgInfo('Ошибка инициализации OLE:' + cServer) endif Return oServer

Andrey: Подскажите, а как можно узнать установлен ли WinRar или WinZip в системе ?

PSP: Проверить реестр, а потом папку, указанную в реестре.


Andrey: PSP пишет: Проверить реестр А как ?

PSP: HKEY_LOCAL_MACHINE\Software\<ИмяСофта> (для 7-Zip: HKEY_LOCAL_MACHINE\Software\7-Zip) В Harbour для этого есть функция Win_RegGet(). Про xHarbour не подскажу, но тоже должна быть. Можно еще регистрацию расширения имени файла проверить в HKEY_CLASSES_ROOT. Запусти RegEdit, посмотри. Все станет ясно.

Vladimir: Консольное приложение (на скорую руку) в MiniGUI, проверяющее наличие 7-Zip #include "MiniGUI.ch" Procedure Main Local cPath7z Open registry oReg key HKEY_LOCAL_MACHINE Section 'Software\7-Zip' Get value cPath7z Name 'Path' of oReg Close registry oReg Cls If !Empty( cPath7z ) If File( cPath7z + '\7z.exe' ) ? '7-zip installed' Else ? '7-zip NO installed' Endif Else ? 'No 7-zip' Endif Wait Return Думаю, примерно так же можно поступить с WinRAR и WinZip.

Andrey: Спасибо БОЛЬШОЕ ! Буду делать.

Andrey: Подскажите пожалуйста, как можно узнать версию ОФИСА ? Т.е. мне нужно различать Excel 2003 и 2007 на хХарборе !

santy: Андрей попробуй поработать с реестром. Ветка: HKEY_CLASSES_ROOT\Word.Application\CurVer или HKEY_CLASSES_ROOT\Excel.Application\CurVer [pre] Year Released Name Version Comments 1995 Word 95 7.0 Included in Office 95 1997 Word 97 8.0 Included in Office 97 1998 Word 98 8.5 Only sold as part of Office 97 Powered By Word 98, which was only available in Japan and Korea. 1999 Word 2000 9.0 Included in Office 2000 2001 Word 2002 10.0 Included in Office XP 2003 Office Word 2003 11.0 Included in Office 2003 2006 Office Word 2007 12.0 Included in Office 2007; released to businesses on November 30, 2006, released worldwide to consumers on January 30, 2007 2010 Word 2010 14.0 Included in Office 2010 [/pre] Должно получиться.

Andrey: santy пишет: попробуй поработать с реестром. Спасибо, попробую !!!

pureproft: http://www.sysengineering.ru/Administration/AdministrationUsingWMI.aspx Он знает всё про всё. А здесь живут те кто этим пользуется. http://forum.script-coding.com/viewforum.php?id=14 http://www.script-coding.com/WMI_SoftWare.html

Andrey: pureproft Спасибо большое за информацию !!! Очень много полезного... С ходу нашел то что так долго искал на русском - "Win32 API по шагам.chm" и "VBA-первые шаги.chm" !!!

Andrey: Всем привет ! Понадобилось проверить программно есть ли WinMerge на компе пользователя. Как это сделать ? И как получить полный путь к установленному WinMerge ? А то развелось куча всяких версий виндов, и не знаешь как поступать .... Заранее спасибо за помощь. Проверял так: cPath := win_regRead( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinMerge.exe" ) Возвращает NIL Хотя у меня запускается WinMerge из своей программы.

Haz: Andrey пишет: Проверял так: проверь через WMI , пример в tsb_filter

Andrey: Haz пишет: проверь через WMI , пример в tsb_filter Запустил пример. В нем НЕТ WinMerge, хотя на компе стоит...

Haz: Andrey пишет: , хотя на компе стоит. Догадываюсь, что в списке установок в панели управления- программы и компоненты тоже нет ?

petr707: Function tst_opf_srv() Local ret:=.f. Local oServiceManager begin sequence with {|e_p| break(e_p) } oServiceManager := win_oleCreateObject("com.sun.star.ServiceManager" ) lopf := !( oServiceManager = NIL ) ret :=lopf recover ret:=.f. end sequence return ret

Andrey: Haz пишет: в списке установок в панели управления- программы и компоненты тоже нет ? Есть.

Haz: Andrey пишет: Есть. чудеса тогда должен быть в WMI Скачай какой нить простенький фришный WMI Explorer и скорми ему запрос SELECT * FROM Win32_Product покажет все поля , мож не в Caption искать надо

Andrey: Нашёл WMI Explorer Version 1.16 KS-Soft Запустил, в списке нет WinMerge и WinRar тоже нет... Хотя в панели тоже WinRar так же присутствует. У меня Win8.1 32bit



полная версия страницы